{"version":3,"sources":["../node_modules/pdfjs-dist/build sync","history.js","constants/action_types.js","constants/configuration.js","actions/redux_data.js","actions/index.js","components/dialogs/mae_auxiliares_tipo_zona/edit_cv_tipo_zona.js","components/dialogs/mae_auxiliares_grupo_partida/edit_cv_grupo_partida.js","components/dialogs/mae_auxiliares_tipo_zona_iva/edit_cv_tipo_zona_iva.js","components/int_number_input_formatter.js","components/dialogs/mae_auxiliares_tipo_partida/edit_cv_tipo_partida.js","components/dialogs/mae_auxiliares_tipo_articulos/edit_cv_tipo_articulos.js","components/dialogs/mae_auxiliares_tipo_gasto/edit_cv_tipo_gasto.js","components/dialogs/mae_auxiliares_tipo_maquina/edit_cv_tipo_maquina.js","components/dialogs/mae_auxiliares_modelo_maquina/edit_v_modelo_maquina.js","components/dialogs/mae_auxiliares_perfiles_usuario/edit_centro_usuario.js","components/dialogs/mae_centro/edit_caja_centro.js","components/float_number_input_formatter.js","components/utils/DatePicker.js","components/dialogs/mae_centro/edit_zonaiva_centro.js","components/dialogs/mae_centro/edit_contab_centro.js","components/dialogs/mae_centro/edit_zona_centro.js","components/dialogs/mae_centro/edit_centro_centro.js","dataLib.js","components/dialogs/mae_centro/edit_fondo.js","components/dialogs/mae_maquina/edit_maquina_contador.js","components/dialogs/mae_maquina/edit_maquina_incidencia.js","components/dialogs/mae_maquina/edit_maquina_licencia.js","components/dialogs/mae_maquina/edit_maquina_itv.js","components/dialogs/mae_maquina/edit_maquina_centro.js","components/dialogs/mae_zona/edit_zona_tipopartida.js","components/dialogs/mae_zona/edit_zona_productos.js","components/dialogs/mae_zona/edit_zona_productos_caja.js","actions/centro_actions.js","containers/dialogs/centro_new.js","components/dialogs/mae_centro/more_details_centro.js","components/dialogs/simple_message.js","components/dialogs/confirmation_dialog.js","actions/cierre_diario_actions.js","components/float_grid_cell_editor.js","components/int_grid_cell_editor.js","components/float_percent_input_formatter.js","components/percent_grid_cell_editor.js","components/neurite_grid.js","containers/acc_cierre_diario/cierre_diario_mkt_grid.js","components/dialogs/cierre_diario_mkt_grid_edit.js","components/int_number_text_formatter.js","containers/acc_cierre_diario/cierre_diario_arcade_grid.js","components/dialogs/cierre_diario_arcade_grid_edit.js","containers/acc_cierre_diario/cierre_diario_gastos_grid.js","components/dialogs/cierre_diario_gastos_grid_edit.js","containers/acc_cierre_diario/cierre_diario_por_horas.js","actions/grupo_partida_actions.js","containers/acc_cierre_diario/cierre_diario_partidas_tipo_grid.js","components/dialogs/cierre_diario_partidas_tipo_grid_edit.js","components/float_number_text_formatter.js","components/dialogs/cierre_diario_observaciones.js","containers/arqueo.js","actions/cierre_semanal_actions.js","containers/acc_cierre_semanal/cierre_semanal_lect_arcade.js","containers/acc_cierre_semanal/cierre_semanal_lect_arcade_detail.js","components/dialogs/cierre_semanal_lect_arcade_edit.js","containers/acc_cierre_semanal/cierre_semanal_resumen_gastos.js","containers/acc_cierre_semanal/cierre_semanal_resumen_visas.js","containers/acc_cierre_semanal/cierre_semanal_resumen_mkt.js","containers/acc_cierre_semanal/cierre_semanal_resumen_banco.js","components/dialogs/cierre_semanal_calendario.js","actions/tipos_zona_actions.js","containers/mae_auxiliares_tipo_zona/mae_auxiliares_tipo_zona.js","components/dialogs/presupuestos_incr.js","actions/presupuesto_actions.js","containers/ent_presupuestos/presupuesto_detalle.js","components/dialogs/select_maquina.js","components/dialogs/ent_alertas_edit_inicidencia.js","containers/mae_maquina/edit_lecturas_contador.js","containers/mae_centro/lista_movimientos.js","containers/mae_centro/centro_mailing.js","components/dialogs/pdf_viewer.js","actions/centro_dia_actions.js","containers/report_generic.js","containers/report_ranking_maquinas.js","containers/report_regalos_entregados.js","components/dialogs/textbox_dialog.js","components/dialogs/mae_redemption_familia/edit_familia.js","components/dialogs/mae_redemption_sub_familia/edit_sub_familia.js","components/dialogs/mae_redemption_tipo_ficha/edit_tipo_ficha.js","components/dialogs/mae_redemption_tipo_ficha_sub/edit_tipo_ficha_sub.js","components/dialogs/mae_redemption_tipo_mov_redem/edit_tipo_mov_redem.js","reducers/reducer_promocion.js","components/dialogs/mae_redemption_promocion/edit_promocion.js","components/dialogs/ent_albaran_pdte/edit_nuevo_albaran.js","components/dialogs/ent_pedido/edit_lista_albaran.js","components/dialogs/acc_inventario/edit_inventario.js","reducers/reducer_motivo.js","components/dialogs/mae_redemption_motivo/edit_motivo.js","components/dialogs/mae_redemption_articulo/edit_codigo_barras.js","components/dialogs/mae_redemption_articulo/list_articulos_dialog.js","components/dialogs/mae_redemption_segmentacion/edit_segmentacion.js","components/Snackbar/Snackbar.js","containers/change_password_dialog.js","containers/report_datagrid.js","containers/dialogs_root.js","KDgeneric.js","userManager.js","components/callback_page.js","components/callback_page_kd.js","components/utils/Loading.js","containers/main.js","constants/drawer_options.js","containers/ilusiona_header.js","containers/left_drawer.js","containers/ini_mi_muro.js","containers/ini_mi_muro_kd.js","containers/ini_noticias.js","containers/ini_ventas.js","containers/ini_arcades.js","containers/ini_cierres.js","containers/ini_cierres_kd.js","containers/ini_ventas_kd.js","containers/ini_desconexion.js","containers/acc_kd_importar.js","containers/mae_auxiliares_grupo_partida/mae_auxiliares_grupo_partida.js","actions/tipos_maquina_actions.js","containers/mae_auxiliares_tipo_maquina/mae_auxiliares_tipo_maquina.js","actions/modelos_maquina_actions.js","containers/mae_auxiliares_modelo_maquina/mae_auxiliares_modelo_maquina.js","actions/tipos_partida_actions.js","containers/mae_auxiliares_tipo_partida/mae_auxiliares_tipo_partida.js","actions/tipo_articulos_actions.js","containers/mae_auxiliares_tipo_articulos/mae_auxiliares_tipo_articulos.js","actions/tipos_gasto_actions.js","containers/mae_auxiliares_tipo_gasto/mae_auxiliares_tipo_gasto.js","actions/tipo_zona_iva_actions.js","containers/mae_auxiliares_tipo_zona_iva/mae_auxiliares_tipo_zona_iva.js","actions/perfiles_usuario_actions.js","containers/mae_auxiliares_perfiles_usuario/mae_auxiliares_perfiles_usuario.js","actions/perfiles_usuario_centros_actions.js","containers/mae_auxiliares_perfiles_usuario/usuario_centros.js","containers/mae_auxiliares_perfiles_usuario/usuario_action_buttons.js","containers/mae_auxiliares_perfiles_usuario/usuario_edit.js","actions/empresa_actions.js","containers/mae_empresa/mae_empresa.js","containers/mae_empresa/empresa_edit.js","containers/mae_centro/mae_centro.js","actions/cajas_centro_actions.js","containers/mae_centro/centro_cajas.js","actions/zonas_centro_actions.js","containers/mae_centro/centro_zonas.js","actions/contab_centro_actions.js","actions/zona_iva_centro_actions.js","containers/mae_centro/centro_contab.js","containers/mae_centro/centro_zonaiva.js","containers/mae_centro/centro_action_buttons.js","actions/centros_centro_actions.js","containers/mae_centro/centro_centros.js","containers/mae_centro/centro_edit.js","containers/mae_zona/mae_zona.js","actions/zona_tipos_partida_actions.js","containers/mae_zona/zona_tipopartidas.js","actions/zona_productos_actions.js","containers/mae_zona/zona_productos.js","actions/zona_productos_caja_actions.js","containers/mae_zona/zona_productos_caja.js","containers/mae_zona/zona_maquinas.js","actions/zona_actions.js","containers/mae_zona/zona_action_buttons.js","containers/mae_zona/zona_edit.js","actions/maquina_detalle_actions.js","containers/mae_maquina/mae_maquina.js","actions/maquina_centros_actions.js","containers/mae_maquina/maquina_centros.js","actions/maquina_itvs_actions.js","containers/mae_maquina/maquina_itv.js","actions/maquina_licencias_actions.js","containers/mae_maquina/maquina_licencias.js","actions/maquina_incidencias_actions.js","containers/mae_maquina/maquina_incidencias.js","actions/maquina_contadores_actions.js","containers/mae_maquina/maquina_contadores.js","containers/mae_maquina/maquina_action_buttons.js","containers/mae_maquina/maquina_edit.js","containers/centro_dia.js","containers/acc_cierre_diario/cierre_diario_item.js","containers/acc_cierre_diario/cierre_diario_datos.js","containers/acc_cierre_diario/cierre_diario_otros_datos_components/cumpleaños_table.js","containers/acc_cierre_diario/cierre_diario_otros_datos_components/satisfaccion_table.js","containers/acc_cierre_diario/cierre_diario_otros_datos_components/Apertura.js","containers/acc_cierre_diario/cierre_diario_otros_datos_components/Operativa.js","containers/acc_cierre_diario/cierre_diario_otros_datos_components/Cierre.js","containers/acc_cierre_diario/cierre_diario_otros_datos_components/first_row_papers.js","containers/acc_cierre_diario/cierre_diario_otros_datos_components/second_row_papers.js","containers/acc_cierre_diario/cierre_diario_otros_datos_components/top5.js","containers/acc_cierre_diario/cierre_diario_otros_datos_components/third_row_papers.js","containers/acc_cierre_diario/cierre_diario_otros_datos.js","containers/acc_cierre_diario/cierre_diario_resumen.js","containers/acc_cierre_diario/acc_cierre_diario.js","containers/acc_mover_maquinas/acc_mover_maquinas.js","containers/acc_cierre_semanal/cierre_semanal_maq_arcade.js","containers/acc_cierre_semanal/cierre_semanal_arcade.js","containers/acc_cierre_semanal/cierre_semanal_tokens_fondo.js","containers/acc_cierre_semanal/cierre_semanal_tokens_centro.js","containers/acc_cierre_semanal/cierre_semanal_euros.js","containers/acc_cierre_semanal/cierre_semanal_datos.js","containers/acc_cierre_semanal/cierre_semanal_otrosdatos_components/TopSection.js","containers/acc_cierre_semanal/cierre_semanal_otrosdatos_components/CentreSection.js","containers/acc_cierre_semanal/cierre_semanal_otrosdatos_components/RightSection.js","containers/acc_cierre_semanal/cierre_semanal_otros_datos.js","containers/acc_cierre_semanal/cierre_semanal_resumen_item.js","containers/acc_cierre_semanal/cierre_semanal_resumen.js","containers/acc_cierre_semanal/acc_cierre_semanal.js","containers/acc_exportar_contabilidad/acc_exportar_contabilidad.js","containers/acc_desbloquear_contabilidad/acc_desbloquear_contabilidad.js","containers/ent_gastos/ent_gastos.js","containers/ent_mkt/ent_mkt.js","containers/ent_lectura_maq_cambio/ent_lectura_maq_cambio.js","containers/ent_partidas_por_tipo/ent_partidas_por_tipo.js","containers/ent_lectura_maq_arcade/ent_lectura_maq_arcade.js","containers/ent_ingresos_banco/ingresos_banco.js","containers/ent_ingresos_banco/ent_ingresos_banco.js","containers/ent_presupuestos/ent_presupuestos.js","containers/ent_alertas/ent_alertas.js","containers/inf_resumen_diario/inf_resumen_diario.js","containers/report_list.js","containers/inf_resumen_semanal/inf_resumen_semanal.js","containers/inf_resumen_ventas/inf_resumen_ventas.js","containers/inf_ventas/inf_ventas.js","containers/inf_arcade/inf_arcade.js","containers/inf_redemption/inf_redemption.js","containers/inf_dias_anyo/inf_dias_anyo.js","containers/inf_descuadres_caja/inf_descuadres_caja.js","containers/test_component.js","actions/familia_actions.js","containers/mae_redemption_familia/mae_redemption_familia.js","actions/sub_familia_actions.js","containers/mae_redemption_sub_familia/mae_redemption_sub_familia.js","actions/tipo_ficha_actions.js","containers/mae_redemption_tipo_ficha/mae_redemption_tipo_ficha.js","actions/tipo_ficha_sub_actions.js","containers/mae_redemption_tipo_ficha_sub/mae_redemption_tipo_ficha_sub.js","actions/tipo_mov_redem_actions.js","containers/mae_redemption_tipo_mov_redem/mae_redemption_tipo_mov_redem.js","actions/promocion_actions.js","containers/mae_redemption_promocion/mae_redemption_promocion.js","actions/motivo_actions.js","containers/mae_redemption_motivo/mae_redemption_motivo.js","containers/mae_redemption_articulo/mae_redemption_articulo.js","containers/mae_redemption_articulo/articulo_desc.js","containers/mae_redemption_articulo/articulo_edit.js","actions/segmentacion_actions.js","containers/mae_redemption_segmentacion/mae_redemption_segmentacion.js","containers/ent_pedido/ent_pedido.js","containers/ent_albaran_pdte/ent_albaran_pdte.js","containers/acc_inventario/acc_inventario.js","containers/ent_albaran_hist/ent_albaran_hist.js","App.js","serviceWorker.js","reducers/reducer_dialogs.js","reducers/reducer_section.js","reducers/reducer_tipos_zona.js","reducers/reducer_tipos_partida.js","reducers/reducer_grupo_partida.js","reducers/reducer_tipos_maquina.js","reducers/reducer_modelos_maquina.js","reducers/reducer_all_articulos.js","reducers/reducer_tipos_articulos.js","reducers/reducer_tipo_gasto.js","reducers/reducer_tipo_zona_iva.js","reducers/reducer_centros.js","reducers/reducer_centro_detalle.js","reducers/reducer_cajas_centro.js","reducers/reducer_zonasiva_centro.js","reducers/reducer_centros_centro.js","reducers/reducer_tipos_zonas_iva.js","reducers/reducer_zonas_centro.js","reducers/reducer_zona_detalles.js","reducers/reducer_zona_detalles_tipo_partida.js","reducers/reducer_zona_detalles_productos.js","reducers/reducer_zona_detalles_productos_caja.js","reducers/reducer_zona_maquinas.js","reducers/reducer_maemaquinas.js","reducers/reducer_maquina_detalles.js","reducers/reducer_maquina_detalles_contadores.js","reducers/reducer_maquina_detalles_incidencias.js","reducers/reducer_maquina_detalles_licencias.js","reducers/reducer_maquina_detalles_itvs.js","reducers/reducer_maquina_detalles_centros.js","reducers/reducer_contab_centro.js","reducers/reducer_empresas.js","reducers/reducer_datos_cierre_diario.js","reducers/reducer_centro_dia_selected.js","reducers/reducer_otros_datos_cierre_diario.js","reducers/reducer_art_gastos.js","reducers/reducer_art_mkt.js","reducers/reducer_tipo_gastos_cierre.js","reducers/reducer_acc_mover_maquinasOrigen.js","reducers/reducer_acc_mover_maquinasDestino.js","reducers/reducer_otros_datos_cierre_semanal.js","reducers/reducer_resumen_cierre_semanal.js","reducers/reducer_resumen_cierre_diario.js","reducers/reducer_datos_cierre_semanal.js","reducers/reducer_presupuesto.js","reducers/reducer_presupuesto_detalle.js","reducers/reducer_perfiles_usuario.js","reducers/reducer_perfiles_usuario_detalles.js","reducers/reducer_perfiles_usuario_centro.js","reducers/reducer_save_state.js","reducers/reducer_user_profile.js","reducers/reducer_navigation.js","reducers/reducer_familia.js","reducers/reducer_sub_familia.js","reducers/reducer_tipo_ficha.js","reducers/reducer_tipo_ficha_sub.js","reducers/reducer_tipo_mov_redem.js","reducers/reducer_segmentacion.js","reducers/index.js","reducers/reducer_loading.js","index.js"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","module","exports","id","createBrowserHistory","OPEN_DIALOG","HIDE_DIALOG","CHANGE_SECTION","NAVIGATION","SET_SECTIONS","GET_TIPOS_ZONA","UPDATE_TIPOS_ZONA","ADD_TIPO_ZONA","MODIFY_TIPO_ZONA","DELETE_TIPO_ZONA","GET_GRUPO_PARTIDA","UPDATE_GRUPO_PARTIDA","ADD_GRUPO_PARTIDA","MODIFY_GRUPO_PARTIDA","DELETE_GRUPO_PARTIDA","GET_TIPO_ZONA_IVA","UPDATE_TIPO_ZONA_IVA","ADD_TIPO_ZONA_IVA","MODIFY_TIPO_ZONA_IVA","DELETE_TIPO_ZONA_IVA","GET_TIPOS_PARTIDA","UPDATE_TIPOS_PARTIDA","ADD_TIPO_PARTIDA","MODIFY_TIPO_PARTIDA","DELETE_TIPO_PARTIDA","GET_TIPOS_MAQUINA","UPDATE_TIPOS_MAQUINA","ADD_TIPO_MAQUINA","MODIFY_TIPO_MAQUINA","DELETE_TIPO_MAQUINA","GET_MODELOS_MAQUINA","MODIFY_MODELO_MAQUINA","ADD_MODELO_MAQUINA","DELETE_MODELO_MAQUINA","UPDATE_MODELOS_MAQUINA","GET_TIPOS_ARTICULO","MODIFY_TIPO_ARTICULO","ADD_TIPO_ARTICULO","DELETE_TIPO_ARTICULO","UPDATE_TIPOS_ARTICULO","GET_TIPOS_GASTO","ADD_TIPO_GASTO","DELETE_TIPO_GASTO","UPDATE_TIPOS_GASTO","MODIFY_TIPO_GASTO","GET_EMPRESAS","CREATE_EMPRESA","UPDATE_EMPRESA","DELETE_EMPRESA","GET_ZONA_DETALLE","MODIFY_FIELD_DETALLE_ZONA","UPDATE_ZONA_DE_UN_CENTRO","GET_ALL_ARTICULOS","MODIFY_ZONA_TIPO_PARTIDA","ADD_ZONA_TIPO_PARTIDA","DELETE_ZONA_TIPO_PARTIDA","MODIFY_PRODUCTO_DE_ZONA","ADD_PRODUCTO_DE_ZONA","DELETE_PRODUCTO_DE_ZONA","ADD_PRODUCTO_CAJA_DE_ZONA","MODIFY_PRODUCTO_CAJA_DE_ZONA","DELETE_PRODUCTO_CAJA_DE_ZONA","GET_MAQUINAS_OF_MAE_MAQUINA","GET_MAQUINA_DETALLES","MODIFY_FIELD_DETALLE_MAQUINA","DELETE_MAQUINA","ADD_NEW_MAQUINA","UPDATE_DETALLES_MAQUINA","UPDATE_DETALLES_NEW_MAQUINA","ADD_CONTADOR_MAQUINA","MODIFY_CONTADOR_MAQUINA","DELETE_CONTADOR_MAQUINA","ADD_INCIDENCIA_MAQUINA","DELETE_INCIDENCIA_MAQUINA","MODIFY_INCIDENCIA_MAQUINA","ADD_LICENCIA_MAQUINA","DELETE_LICENCIA_MAQUINA","MODIFY_LICENCIA_MAQUINA","ADD_ITV_MAQUINA","DELETE_ITV_MAQUINA","MODIFY_ITV_MAQUINA","ADD_CENTRO_MAQUINA","DELETE_CENTRO_MAQUINA","MODIFY_CENTRO_MAQUINA","GET_CENTROS","GET_CENTRO","MODIFY_FIELD_DETALLE_CENTRO","MODIFY_FIELDS_CENTRO_DIALOG","UPDATE_CENTRO","CREATE_CENTRO","COPY_CENTRO","DELETE_CENTRO","GET_CAJAS_CENTRO","GET_ZONAS_CENTRO","GET_CONTAB_CENTRO","MODIFY_CONTAB_CENTRO","ADD_CONTAB_CENTRO","REMOVE_CONTAB_CENTRO","MODIFY_CAJA_CENTRO","ADD_CAJA_CENTRO","REMOVE_CAJA_CENTRO","MODIFY_ZONA_CENTRO","ADD_ZONA_CENTRO","REMOVE_ZONA_CENTRO","GET_TIPOSZONASIVA_CENTRO","GET_ZONAIVA_CENTRO","MODIFY_ZONAIVA_CENTRO","ADD_ZONAIVA_CENTRO","REMOVE_ZONAIVA_CENTRO","GET_CENTROS_CENTRO","ADD_CENTRO_CENTRO","REMOVE_CENTRO_CENTRO","GET_CIERRE_DIARIO","MODIFY_DATOS_CIERRE_DIARIO","UPDATE_DATOS_CIERRE_DIARIO","SET_CENTRO_DIA","INVALIDATE_CENTRO_DIA","ENABLE_CENTRO_DIA","GET_ARTGASTOS","GET_ARTMKT","GET_TIPO_GASTOS_CIERRE","GET_OTROS_DATOS_CIERRE_DIARIO","MODIFY_FIELD_OTROSDATOS_CIERRE","NEW_OTROSDATOS","UPDATE_OTROSDATOS_CIERRE","DESBLOQUEAR_CIERRE_DIARIO","CIERRE_DIARIO_CERRAR_DIA","GET_RESUMEN_CIERRE_DIARIO","GET_MAQUINAS_CENTRO_ORIGEN","GET_MAQUINAS_CENTRO_DESTINO","MOVE_MAQUINA_TO_CENTRO_DESINO","GET_CIERRE_SEMANAL_DATOS","GET_OTROS_DATOS_CIERRE_SEMANAL","MODIFY_FIELD_OTROSDATOS_CIERRE_SEMANAL","MODIFY_ARQUEO_CIERRE_SEMANAL","MODIFY_BANCO_2_CIERRE_SEMANAL","MODIFY_VARIACION_EUROS","MODIFY_VARIACION_TOKENS","MODIFY_VARIACION_TOKENS_CENTRO","UPDATE_DATOS_CIERRE_SEMANAL","UPDATE_OTROS_DATOS_CIERRE_SEMANAL","DESBLOQUEAR_CIERRE_SEMANAL","CIERRE_SEMANAL_CERRAR_SEMANA","GET_RESUMEN_CIERRE_SEMANAL","MODIFY_MAQ_ARCADE_CIERRE_SEMANAL","RESET_CIERRE_SEMANAL_DATOS","UPDATE_BILLARES_CIERRE_SEMANAL","GET_PRESUPUESTO","GET_PRESUPUESTO_DETALLE","GET_NEW_PRESUPUESTO_DETALLE","GENERATE_PRESUPUESTO","UPDATE_PRESUPUESTO_DETALLE","COPIAR_PRESUPUESTO","CAMBIAR_BLOQUEO_PRESUPUESTO","SET_SAVE_STATE_PENDING","GET_USER_PROFILE","SET_SELECTED_USER_CENTRO_PROFILE","GET_USUARIOS","GET_USUARIOS_KD","GET_USUARIO_DETALLES","MODIFY_USUARIO_DETALLES","UPDATE_USUARIO_DETALLES","ADD_NEW_USUARIO","ADD_CENTRO_USUARIO","DELETE_CENTRO_USUARIO","MODIFY_CENTRO_USUARIO","GET_FAMILIA","UPDATE_FAMILIA","ADD_FAMILIA","MODIFY_FAMILIA","DELETE_FAMILIA","GET_MOTIVO","UPDATE_MOTIVO","ADD_MOTIVO","MODIFY_MOTIVO","DELETE_MOTIVO","GET_SUB_FAMILIA","UPDATE_SUB_FAMILIA","ADD_SUB_FAMILIA","MODIFY_SUB_FAMILIA","DELETE_SUB_FAMILIA","GET_TIPO_FICHA","UPDATE_TIPO_FICHA","ADD_TIPO_FICHA","MODIFY_TIPO_FICHA","DELETE_TIPO_FICHA","GET_TIPO_FICHA_SUB","UPDATE_TIPO_FICHA_SUB","ADD_TIPO_FICHA_SUB","MODIFY_TIPO_FICHA_SUB","DELETE_TIPO_FICHA_SUB","GET_TIPO_MOV_REDEM","UPDATE_TIPO_MOV_REDEM","ADD_TIPO_MOV_REDEM","MODIFY_TIPO_MOV_REDEM","DELETE_TIPO_MOV_REDEM","GET_PROMOCION","UPDATE_PROMOCION","ADD_PROMOCION","MODIFY_PROMOCION","DELETE_PROMOCION","GET_SEGMENTACION","UPDATE_SEGMENTACION","ADD_SEGMENTACION","MODIFY_SEGMENTACION","DELETE_SEGMENTACION","LOADING","API_URI","REPORTS_API_URI","AUTH","getData","uri","actionType","meta","showError","arguments","length","undefined","dispatch","getState","type","payload","token","oidc","user","access_token","axios","get","config","headers","Authorization","then","response","console","log","catch","error","errorMessage","data","message","modalType","modalProps","exception","ex","dialogid","postData","thenHandler","errorHandler","post","JSON","stringify","putData","put","openDialog","disableBackdrop","maxWidth","hideDialog","loading","value","changeSelectedSection","newSection","setSections","sections","navigate","location","history","push","setSaveState","pending","getUserProfile","kd","setUserProfileUsuarioCentro","EditCvTipoZona","props","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","handleValueChange","event","field","setState","objectSpread","state","defineProperty","target","cvTipoZona","uuidv4","description","descr","iKindElemImp","_this2","classes","react_default","a","createElement","className","root","containerPair","FormControl","formControl","TextField","label","placeholder","textField","margin","autoFocus","onChange","buttonsContainer","Button","buttonsBottom","variant","color","onClick","tipoZona","checkTipoZona","okHandler","React","Component","withStyles","theme","height","width","display","justifyContent","alignItems","minWidth","padding","marginRight","borderRadius","textTransform","border","boxShadow","rtl","textAlign","withTheme","EditCvGrupoPartida","cvGrupoPartida","grupoPartida","checkGrupoPartida","EditCvTipoZonaIva","cvTipoZonaIva","tipoZonaIva","checkTipoZonaIva","IntNumberFormatInput","inputRef","other","objectWithoutProperties","react_number_format_es","assign","getInputRef","onValueChange","values","decimalSeparator","thousandSeparator","isNumericString","decimalScale","EditCvTipoPartida","fillSelectOptionList","map","gp","key","handleChangeSelect","parseInt","iGrupoPartida","cvGrupoPartidaDescr","find","cvTipoPartida","divisor","Tooltip","title","TransitionComponent","Fade","TransitionProps","timeout","tooltip","InputProps","input","inputComponent","concat","InputLabel","htmlFor","Select","native","tipoPartida","checkTipoPartida","marginTop","fontSize","backgroundColor","fontWeight","EditCvTipoArticulo","handleCheckbox","checked","iTipoZona","cvTipoZonaDescr","tiposZona","tz","cvTipoArticulo","isMovCaja","iKind","name","checkbox","placement","FormControlLabel","style","marginLeft","control","Checkbox","tipoArticulo","checkCvTipoArticulo","marginBottom","paddingTop","EditCvTipoGasto","handleBooleanChange","cvTipoGasto","isContab","tipoGasto","checkTipoGasto","EditCvTipoMaquina","cvTipoMaquina","cambio","checkedA","checkedB","iRecaudacion","tipoMaquina","regalo","tipoB","checkTipoMaquina","EditVModeloMaquina","tieneContador","iTipoMaquina","cvTipoMaquinaDescr","tiposMaquina","modelomaquina","tipoRegalo","modeloMaquina","checkVModeloMaquina","EditCentroUsuario","fillCentrosOptions","centros","c","i","centro","fillPerfilesOptions","perfiles","perfil","usuarioId","iPerfil","centroId","Input","checkCentro","EditCajaCentro","fillTiposZona","handleChange","canInput","handleTipoZonaChange","cajaCentro","autoComplete","caja","centroid","checkCaja","FloatNumberFormatInput","decimal","fixedDecimalScale","useStyles","makeStyles","renderDay","background","&:hover","lineHeight","letterSpacing","DatePicker","_ref","onBlur","onKeyPress","disabled","required","datesToEnabled","datesToRender","isSemanal","_useState","useState","_useState2","slicedToArray","daysEnabled","setDaysEnabled","_useState3","_useState4","errorDP","setErrorDP","_useState5","_useState6","daysRendered","setDaysRendered","dateParseTime","dates","d","getTime","useEffect","useUtils_cfb96ac9","utils","DateFnsUtils","locale","esLocale","fullWidth","format","invalidDateMessage","minDateMessage","maxDateMessage","date","dateWithoutTime","Date","getFullYear","getMonth","getDate","includes","isNaN","KeyboardButtonProps","aria-label","minDate","shouldDisableDate","getDay","day","selectedDate","isInCurrentMonth","dayComponent","isRendered","selected","Day","children","current","hidden","Typography","EditZonaIvaCentro","fillSelect","tiposZonaIva","tzi","iva","handleValueChangeDate","handleSelect","iTipoZonaIva","zonaIva","zonaiva","fIni","slice","toJSON","fEnd","DatePicker_DatePicker","UTC","toISOString","checkZonaIva","EditContabCentro","fillSelectMaquina","t","fillSelectIva","handleSelectChange","contabCentro","ctaDebe","ctaHaber","ctaIva","contab","checkContab","EditZonaCentro","activo","zonaCentro","checkZona","EditCentroCentro","fillCentros","filter","isGroup","handleCentroChange","hijo","centroCentro","hijoId","padreId","url","absoluteURL","callURL","deleteData","delete","createReport","suffix","responseType","EditFondo","updateFondo","valor","fecha","EditContadorMaquina","iTipo","tipoContador","contador","maquina","maquinaId","dcLectura","numOrden","ultMultiplicador","ultPrecio","activa","anulado","contadorCompra","contadorCompraSalidas","redsysMachineId","inputProps","checkContador","EditIncidenciaMaquina","incidencia","usuarioIncidencia","fechaDiagnostico","diagnostico","usuarioDiagnostico","fechaResolucion","resolucion","usuarioResolucion","textArea","multiline","rows","divider","checkIncidenciaFields","EditLicenciaMaquina","licencia","fechaInicio","fechaFin","checkLicencia","EditItvMaquina","itv","fechaCaducidad","checkItv","EditCentroMaquina","EditZonaTipoPartida","fillTiposPartida","alltipospartida","tp","handleCheckboxChange","handleChangeTipoPartidaSelect","iTipoPartida","tipopartida","elemId","elemNoCajaId","EditZonaProduct","iTipoArticulo","allproductos","p","handleChangeTipoZonaIVASelect","tiposzona","compareDescr","b","fillTiposProductos","toConsumableArray","sort","producto","l","checkProducto","EditZonaProductCaja","elemCajaId","checkProductoCaja","getAllCentros","copyCentroDB","newName","euros","tokens","fondoEuros","fondoTokens","createNewCentroDB","empresa","grupo","empresaId","updateCentroDB","deleteCentroDB","status","getCentroDetalle","modifyFieldDetalleCentro","modifyFieldsCentroDialog","details","CentroNew","centro_copia","createCopySelectOptions","index","MenuItem","createEmpresaSelectOptions","empresas","emp","empresa1","handleGrupoChange","nombre","Grid","container","spacing","formSelect","RadioGroup","Radio","radiobuttonLabel","formSelectRadio","connect","bindActionCreators","MoreDetailsCentro","handleCheckboxNumber","handleCheckboxBool","updateHandler","checkMoreDetailsDialog","a_norm","normalize","replace","b_norm","provinciaList","tf","iProvincia","telfCentro","mobilCentro","gerente","aforo","alias","ctaDescuadre","ctaFondo","ctaTotalsemanal","emailCentro","esCasino","esCentral","iAreaGeografica","numPistas","pais","periodicidad","propio","tienePartidas","sigfrid","tecbrain","idCc","nombrePublicoCc","nombrePrivadoCc","activoCc","centroDetalle","reopa","inputImporte","chkControl","descrControl","profile","sub","SimpleMessage","componentDidMount","myRef","focus","renderException","gutterBottom","align","createRef","whiteSpace","buttonContainer","buttonRef","button","ConfirmationDialog","cancelHandler","acceptHandler","span","minHeight","getDatosCierreDiario","modifyDatosCierreDiario","item","getArtGastosCentro","getArtMktCentro","getTipogastosCierre","getOtrosDatosCierreDiario","newOtrosDatosDB","otrosDatos","modifyFieldOtrosDatos","updateOtrosDatosDB","updateCierreDiarioDatosDB","cierreDiario","centro_id","getResumenCierreDiario","unlockCierreDiario","cerrarDiaCierreDiario","FloatCellEditor","handleChangeComplete","onCommit","column","Number","ReactDOM","findDOMNode","getElementsByTagName","preventDefault","propTypes","PropTypes","object","IntCellEditor","FloatPercentFormatInput","PercentCellEditor","selectors","Data","Selectors","FloatCellFormatter","row","admin","grayField","isGray","backColor","paddingRight","displayType","FloatPercentFormatter","IntCellFormatter","CustomFormatter","OptionsFormatter","options","val","o","text","DateFormatter","toLocaleDateString","year","month","sortRows","initialRows","sortColumn","sortDirection","r","grid_index","handleFilterChange","filters","newFilters","filterTerm","localStorage","setItem","window","pathname","getRows","NeuriteGrid","context","processColumns","columns","CheckboxEditor","Editors","DropDownEditor","forEach","col","formatter","readOnly","onCellChange","rowIdx","columnKey","editable","editor","_ref2","_ref3","_ref4","dropdownOptions","_ref5","_ref6","_ref7","headerRenderer","buttonEdit","buttonDelete","sortable","filterable","filteredRows","onRowsUpdated","fromRow","toRow","fromRowData","updated","handleGridRowsUpdated","_ref8","rowToUpdate","updatedRow","update","$merge","handleDeleteRow","indexToDelete","rowIndex","handleAddNewRow","_ref9","handleNewRowClick","getCellActions","icon","Icon","callback","onEditClick","onDeleteClick","_index","handleMoreClick","handleLaunchClick","onRowsSelected","selectByKeys","selectedIds","onSelection","selectedIndexes","onRowsDeselected","rowIds","rowIndexes","indexOf","sumedWidths","result","enableSelection","RowRenderer","_ref10","renderBaseRow","idx","oddRow","evenRow","downloadCsvData","csvData","strValue","toString","toLocaleString","minimumFractionDigits","maximumFractionDigits","link","document","href","encodeURIComponent","setAttribute","body","appendChild","click","calculateTotal","newRow","onRowsUpdatedController","rowAtr","currentColumnIndex","entries","_ref11","_ref12","cellKey","currentRowIndex","controlUpdate","tabulation","grid","openCellEditor","parent","getElementsByClassName","miliseconds","getHours","getMinutes","getSeconds","getMilliseconds","selectAllCheckbox","nextSibling","parse","getItem","prevProps","prevState","snapshot","activeElement","myActions","focusVisible","_this3","_this$props","buttonNew","rowHeight","addTotal","pop","react_data_grid_default","ref","node","enableCellSelect","rowGetter","rowsCount","rowRenderer","alternateRows","onGridRowsUpdated","rowSelection","showCheckbox","enableShiftSelect","selectBy","rowKey","onGridSort","toolbar","enableFilter","react_data_grid_addons","onAddFilter","onClearFilters","removeItem","onCellSelected","cellSelectedHandler","_ref13","scrollToRowIndex","last","editorPortalTarget","tooltipNew","newButton","action","actions","onNewRowClick","buttonCSV","CierreDiarioMKTGrid","messageError","checkValues","factura","fechaFra","cliente","importe","modifyFactura","mkt","total","saveDisabled","editFactura","zonas","artMKT","usuario","centroDiaSelected","dia","addFactura","newFactura","articuloId","deleteFactura","f","cajasCentro","parseFloat","getMkt","mktURL","showSpinner","updateMKt","facturas","button1","deshacer","spinnerContainer","CircularProgress","spinner","divData","cover","isValid","components_neurite_grid","dragable","isDiaCerrado","bottomBtn","isDialog","borderColor","position","zIndex","opacity","EditMktGrid","cobrada","handleZonaChange","handleDateValueChange","compare","fillZonas","zona","artMKTLocked","pairContainer","IntNumberFormatText","CierreDiarioArcadeGrid","ingresos","toFixed","lectura","contadorIni","contadorFin","modifyLectura","lecturas","comentario","getLecturas","lecturasURL","zonaId","updateLecturas","tipo","handleEurosContadorChange","handleEurosContadorBlur","renderEurosRow","rowTextCell","regInterno","InputBase","inputCell","renderEurosRows","table","header","headerBox","PureComponent","paddingLeft","EditArcadeGrid","defaultValue","CierreDiarioGastosGrid","gasto","observ","modifyGasto","gastos","editGasto","artGastos","conceptos","tipoGastosCierre","addGasto","newGasto","deleteGasto","getGastos","gastosURL","updateGastos","_input","EditGastosGrid","handleConceptoChange","iTipoGasto","fillConceptos","concepto","artGastoLocked","CierreDiarioPorHoras","desglose","hora01","hora02","hora03","hora04","hora05","hora06","hora07","hora08","hora09","hora10","hora11","hora12","hora13","hora14","hora15","hora16","hora17","getDesglose","desgloseURL","updateDesglose","art2","productoRelacionado","normal","packs","button2","newDesglose","handleBlur","renderTextField","formItem","importSigfrid","hora18","hora19","hora20","hora21","hora22","hora23","hora24","dataType","formContainer","hoursContainer","divSpinner","flexFlow","alignContent","maxHeight","getGrupoPartida","modifyGrupoPartida","addGrupoPartida","removeGrupoPartida","updateGrupoPartidaDB","CierreDiarioPartidasTipoGrid","numPartidas","partida","partidasPorTipo","iTipopartidaElem","modifyPartidasPorTipo","tiposPartidaCentro","addPartidasPorTipo","deletePartidasPorTipo","updatePartidasPorTipo","partidas","partidasURL","getTiposPartidaCentro","newTipo","getPartidasPorTipo","pt","g","handleGridNewRow","newValue","renderGrid","handleTipoChange","renderNewButton","divButton","tabIndex","onFocus","getElementById","formControlSelect","grupospartida","EditPartidasPorTipoGrid","tiposPartida","FloatNumberFormatText","CierreDiarioObservaciones","obsBolera","obsBar","obsArcade","obs","Math","abs","descuadreBolera","bolera","cajaId","cajaBolera","observaciones","descuadreBar","bar","cajaBar","descuadreArcade","arcade","cajaArcade","observTextField","inputObserv","rowsMax","newObs","trim","arqueos","flexGrow","Arqueo","arqueo","billete500","billete200","billete100","billete50","billete20","billete10","billete5","moneda2","moneda1","moneda050","moneda020","moneda010","moneda005","moneda002","moneda001","getArqueo","arqueoURL","updateArqueo","newArqueo","Fecha","isManual","observDescuadre","contentContainer","flexDirection","inputTotal","getDatosCierreSemanal","resetDatosCierreSemanal","getOtrosDatosCierreSemanal","getResumenCierreSemanal","modifyArqueo","modifyBanco2","modifyVariacionEuros","modifyVariacionTokensCentro","modifyVariacionTokens","modifyFieldOtrosDatosSemanal","modifyMaqArcade","total_euros","total_euros_sin_mult","total_tickets","total_tokens","total_visas","updateCierreSemanalBillaresDB","billares","updateCierreSemanalDatosDB","cierreSemanal","updateCierreSemanalOtrosDatosDB","unlockCierreSemanal","cerrarSemana","observacionesXdescuadre","CierreSemanalLecturasArcade","getMaquinas","isSemanaCerrada","totalSinMult","maquinas","maquinasResumenArcade","modificaMaquina","ingresos_sin_mult","open_next","nextRow","openLecturas","backHandler","prevRow","nextHandler","maquinaDescr","maquinaRegInterno","recaudacionDiaria","iTipoRegalo","nuevasLecturas","iDiaCierre","partial","actualizaREDSYS","descuadre","divTotals","CierreSemanalLecturasArcadeDetail","ingresosSinMult","processRows","dif","multiplicador","isTipoB","isMaquinaRegalos","mult_reopa","controlContFin","controlContIni","multiplicadorReal","_objectSpread2","dataToUpload","tickets","regalos","visas","mult","navigation","total_euros_ini","total_tickets_ini","total_tokens_ini","total_regalos","total_regalos_ini","total_visas_ini","maquinaAnterior","maquinaSiguiente","_objectSpread3","descuadreEuros","descuadreArray","reduce","descuadreEurosRow","descuadreTokens","totalIngresosEuroTeoricos","ticketsXEuro","totalIngresos","handleTotalEurosChange","handleTotalEurosRowChange","handleTotalTicketsChange","handleTotalTokensChange","handleTotalRegalosChange","handleTotalVisasChange","handleComentariosEurosChange","handleComentariosEurosRowChange","handleComentariosTicketsChange","handleComentariosTokensChange","handleComentariosRegalosChange","handleComentariosVisasChange","handleEurosContadorSalidaChange","handleEurosContadorSalidaBlur","renderEurosRowPorContador","eurosTotalesContainer","divComentarios","inputComentarios","inputText","handleTicketsContadorChange","handleTicketsContadorBlur","renderTicketsRow","renderTicketsRows","handleTokensContadorChange","handleTokensContadorBlur","renderTokensRow","renderTokensRows","handleRegalosContadorChange","handleRegalosContadorBlur","renderRegalosRow","renderRegalosRows","handleVisasContadorChange","handleVisasContadorBlur","renderVisasRow","renderVisasRows","renderEuros","renderEurosPorContador","isLoading","maqTitle","palette","secondary","main","rowEditableCell","direction","EditLectArcade","renderIngresos","inputRight","alert","CierreSemanalResumenGastos","CierreSemanalResumenVisas","getVisas","CierreSemanalResumenMKT","getMKT","CierreSemanalResumenBanco","getBancos","bancos","arcadeCompl","sumReal","editIngreso","ingreso","newIngresos","totales","CalendarioSemanal","getCalendario","otrosJuegos","parqueInf","cumples","eventos","isGrayTotal","porcentaje","getTiposZona","modifyTipoZona","addTipoZona","removeTipoZona","updateTiposZonaDB","MaeAuxiliaresTipoZona","messageDialog","msg","checkCvTipoZona","newTipoZona","IncrPresupuestos","handleOptionChange","totalPresupuestoChange","percent","round","origen","newPresupuesto","increment","percentPresupuestoChange","oldPresupuesto","getPresupuesto","provisional","getPresupuestoDetalle","actual_year","ref_year","zona_id","real","presupuesto_id","generatePresupuesto","start_month","end_month","parametros","updatePresupuestoDetalle","valores","getNewPresupuestoDetalle","i_tipozona","factor","copiarPresupuesto","prov_to_def","cambiarBloqueoPresupuesto","months","PresupuestoDetalle","handleSelectZonasValueChange","presupuesto","z","yearRef","mes","realOrPpto","handleYearOrigenValueChange","renderSelectOrigenYears","anyos","refYearsPpto","refYearsReal","y","coefChange","coef","presupuestoDetalle","draggable","cerrado","updatePresupuesto","updating","handleRealChange","renderSpinner","reload","v","refValue","refValues","vr","date1","date2","isGray1","isGray2","isGray3","centroSelect","component","group","buttonGenera","divOptions","SelectMaquina","onMaquinaSelected","maquinaSelected","EditIncidencia","incidenciaText","diagnosticoText","resolucionText","desactivar","labelCheck","EditLecturasContador","shouldComponentUpdate","nextProps","nextState","modified","mod","handleFieldChange","renderDataGrid","renderHeaders","renderRow","precio","fichas","saveState","ListaMovimientos","getMovimientos","movimientos","handleDateIniChange","handleDateEndChange","containerControls","CentroMailing","getMailings","deleteMailing","mailing","m","updateMailings","mailings","mail","email","bCierreDiario","bCierreSemanal","bInventario","inventario","divGrid","Paper","paperNew","pdfjs","GlobalWorkerOptions","workerSrc","version","PdfViewer","numPages","bytes","onDocumentLoadSuccess","changePage","offset","pageNumber","previousPage","nextPage","entry","file","pdfFile","onLoadSuccess","Array","from","el","URL","createObjectURL","Blob","PDFdocument","setCentroDia","semanal","fromUI","invalidateCentroDiaData","enableCentroDiaData","ReportGeneric","getReportDefinition","reportId","report","loaded","iGroup","getRegalos","modelo","getModelos","toLowerCase","modelos","getDcCierres","fInventario","newValues","handleSelectCentrosValueChange","centroSelected","centroDiaCierre","handleWIniDateValueChange","validWeekday","weekEnd","wIniDate","handleWEndDateValueChange","wEndDate","handleCentroSelection","ids","handlePageValueChange","page","renderIniDateTime","dateIni","dateEnd","iniDate","renderEndDateTime","endDate","renderWeekIniDateTime","weekIni","renderWeekEndDateTime","renderCheckBox","renderSelectCentros","userProfile","selectedCentroProfile","renderSelectMaquinas","renderSelectModelos","modeloId","renderOptionList1","opt1","split","renderOptionList2","opt2","renderOption1","renderOption2","renderSelectMonth","monthEnd","renderSelectYearIni","yearIni","years","iYearsFwd","yearEnd","renderSelectYearEnd","renderSelectWeekDay","dayofweek","dw","renderDates","xs","renderWDates","renderSelectMonths","renderSelectYears","renderOptions","renderCentrosGrid","hasIdList","renderPagesOptions","files","renderPageSelector","reportFile","viewPDF","reportValues","usuarioCentro","uc","win","open","pdfLoading","downloadPDF","reportDefinition","downloadExcel","monthIni","chk1","chk2","chk3","chk4","chk5","LinearProgress","linearSpinner","buttonCerrar","ReportRankingMaquinas","handleCheckboxCasinoChange","renderEsCasinoCheckBox","ReportRegalosEntregados","option","llamada","mensaje","optionForms","TextBoxDialog","EditCvFamilia","cvFamilia","cod","familia","checkFamilia","EditCvSubFamilia","familiaList","iFamilia","familiaDescr","subFamilia","width_cod_sm","width_descr","width_cod_lg","checkSubFamilia","width_obsv","width_cod_md","EditTipoFicha","tipoFicha","checkTipoFicha","EditTipoFichaSub","tipoFichaList","iTipoficha","tipoFichaDescr","tipoFichaSub","checkTipoFichaSub","EditTipoMovRedem","tipoMovRedem","descrWeb","b_signo","signo","checkTipoMovRedem","initialState","promocionList","getDescr","EditPromocion","iTipoPromocion","tipoPromocionDescr","promocion","puntosPorEuro","puntosFijos","fAlta","obsv","width_float_sm","width_int_md","width_date","formComent","checkPromocion","EditNuevoAlbaran","nuevoAlbaran_hideDialog","a_refAlbaran","albaran","lLineas","cantidad","refAlbaran","iTipoAlbaran","a_iTipoAlbaran","fEntrega","a_fEntrega","a_obsv","iCantidadPendiente","nuevaLista","udsArray","totalArray","tot_uds","tot_albaran","imprimir","pedido","borrarAlbaran","refreshHandler","abrirAlbaran","newAlbaran","bCerrado","actualizarAbaran_hideDialog","cerrarAbaran_hideDialog","pedido_id","centroDescr","proveedorDescr","fDoc","documento","refPedido","imenu","colColorTrue","grColumns","inputElementRight","EditListaAlbaran","albaranes","ft_fEntrega","EditInventario","guarda_Inventario","fValidado","a_fInventario","refreshInventario","inventarioId","onClickAddLineInventario","articulo","idArticuloCompraCentro","cierraInventario","fCerrado","cerradoUsuarioId","cierraInventarioHandler","abreInventario","abreInventarioHandler","muestraFechaInventario","botoneraValidacionCierre","primeroAbierto","ultimoCerrado","justify","Fragment","IconButton","left","AddBox_default","motivos","EditCvMotivo","kindDescr","motivo","checkMotivo","EditCodigoBarras","updateCodigoBarras","codigo","articuloCompraId","codBarras","startsWith","MaeArticulo","getArticulos","articulos","editArticulo","c_id","cellSelectedHandlerArticulo","selectedArticle","EditSegmentacion","linea","segmentacionLineaList","handleRowsUpdated","modifyRow","iField","iOperator","param1","param2","handleNewRow","minId","readOnlyError","calcular","segmentacion","where_clause","dcSegmentacionLinea","optionsField","optionsOperator","width_where","checkSegmentacion","Snackbar","show","setShow","showSnackbar","setShowSnackbar","setTimeout","form","paddingBottom","ChangePasswordDialog","showSnackBar","snackMessage","showPassword","edit","editPassword","formValues","setFormValues","oldPassword","password","repassword","setValues","setCheckValues","prop","check","checkSpecialCondition","atribute","test","handleChangeFormValuesBoolean","handleMouseDownPassword","Snackbar_Snackbar","Box","noValidate","role","clsx","OutlinedInput","endAdornment","InputAdornment","onMouseDown","edge","Visibility_default","VisibilityOff_default","labelWidth","sm","md","ReportDataGrid","processDataSets","serverDataSets","localDataSets","ds","dataset","Page","Columns","DataType","Name","Rows","Values","serverDatasets","datasets","renderPages","pagina","renderDataGrids","dataSet","MODAL_COMPONENTS","ListArticulos","DialogsRoot","dialogs","dialog","top","SpecificModal","Dialog","onClose","aria-labelledby","modalOpen","disableBackdropClick","disableEscapeKeyDown","DialogContent","paper","shadows","GetKDfromString","nombre_empresa","HasKDpath","comesFromIframe","ancestorOrigins","IsKD_Inventario","AfterKDlogin","hasUserKD","userManager","createUserManager","client_id","redirect_uri","response_type","scope","authority","silent_redirect_uri","post_logout_redirect_uri","automaticSilentRenew","filterProtocolClaims","loadUserInfo","CallbackPage","redux_oidc","successCallback","errorCallback","signinRedirect","CallbackPageKD","querySelector","bottom","right","Loading","useSelector","loadingEmpresa","loadingCentro","loadingZonaCentro","zonasCentro","loadingGrupoPartida","loadingModeloMaq","modelosMaquina","loadingPerfilUsuario","perfilesUsuario","loadingUsuarioCentros","usuarioCentros","loadingTipoArticulo","tiposArticulo","loadingTiposMaquina","loadingTiposPartida","loadingTiposZona","loadingTiposZonaIva","loadingCajasCentro","loadingPromotion","loadingFamilia","loadingSubFamilia","loadingTipoFicha","loadingTipoFichaSub","loadingTipoMovRedem","loadingMotivo","loadingMaeMaquina","maeMaquinas","displayLoading","size","Main","isKD","imagen","process","lg","src","img","alt","drawerOptionsProfiles","INICIO","profiles","ACCIONES","ENTRADA","MAESTROS","INFORMES","drawerOptions","Admin","Other","getDrawerOptions","iProfile","iUser","optionsInicio","optionsEntrada","optionsInformes","filteredOptions","filterOptions","IlusionaHeader","login","openUserMenu","anchorEl","currentTarget","handleClose","handleTabChange","tabValue","componentDidUpdate","pjson","require","CHANGEVERSIONBUILD","centroProfile","renderSections","section","Tab","tab","onClickSaveCentro","findIndex","showSelect","openDialogChangePassword","menuOpen","_this$state","AppBar","appBar","topHeader","dashboardTitle","centrodia","Done_default","Settings_default","selectCentro","loginContainer","aria-owns","aria-haspopup","Menu","Boolean","signoutRedirect","Toolbar","bottomHeader","Tabs","indicator","bigIndicator","indicatorColor","textColor","withRouter","drawer","divButtons","overflow","outline","LeftDrawer","filterReportlistOptions","ventas_list","ventas","arcade_list","redemption_list","redemption","handleOpenClick","newOpen","handleOptionClick","mapStructure","nodes","ListItem","listItem","textSelected","textListItem","listTitleFolder","ListItemAvatar","listavatar","Avatar","avatar","Folder_default","ListItemText","listItemText","primaryTypographyProps","primary","ExpandLess_default","ExpandMore_default","Collapse","in","unmountOnExit","List","disablePadding","listItemFolder","Drawer","drawerPaper","flexShrink","borderRight","IniMiMuro","handleReportLoad","handleReportRender","workspaceId","centrosFilter","lib_default","embedType","tokenType","accessToken","embedUrl","embedId","permissions","onLoad","onRender","fullscreen","print","IniMiMuroKD","component2","extraSettings","filterPaneEnabled","component1","IniNoticias","IniVentas","IniArcades","IniCierres","IniCierresKD","IniVentasKD","IniDesconexion","KDImportar","importAux","lastExportDate","containerView","paperCentroDia","elevation","acceptContainer","MaeAuxiliaresGrupoPartida","checkCvGrupoPartida","addNewGrupoPartida","newGrupoPartida","getTiposMaquina","modifyTipoMaquina","addTipoMaquina","removeTipoMaquina","updateTiposMaquinaDB","MaeAuxiliaresTipoMaquina","checkCvTipoMaquina","newTipoMaquina","tm","tiposmaquina","getModelosMaquina","modifyModeloMaquina","addModeloMaquina","removeModeloMaquina","updateModelosMaquinaDB","MaeAuxiliaresModeloMaquina","editModeloMaquina","newModeloMaquina","modelosmaquina","getTiposPartida","modifyTipoPartida","addTipoPartida","removeTipoPartida","updateTiposPartidaDB","MaeAuxiliaresTipoPartida","checkCvTipoPartida","editTipoPartida","newTipoPartida","tipospartida","getAllArticulos","getTiposArticulo","modifyTipoArticulo","addTipoArticulo","removeTipoArticulo","updateTiposArticuloDB","MaeAuxiliaresTipoArticulo","editTipoArticulo","ta","newTipoArticulo","tiposarticulo","getTiposGasto","addTipoGasto","removeTipoGasto","modifyTipoGasto","updateTiposGastoDB","MaeAuxiliaresTipoGasto","newTipoGasto","tg","tiposgasto","getTipoZonaIva","modifyTipoZonaIva","addTipoZonaIva","removeTipoZonaIva","updateTipoZonaIvaDB","MaeAuxiliaresTipoZonaIVA","addNewTipoZonaIva","newTipoZonaIva","getUsuarios","getUsuariosKD","getUsuarioDetalle","modifyFieldDetalleUsuario","newUsuarioDB","updateDetallesUsuarioDB","addNewUsuario","defaultCenter","MaeAuxiliaresPerfilesUsuario","editUsuario","newUsuario","usuarios","columnsUser","splice","dispay","addUsuarioCentro","modifyUsuarioCentro","removeUsuarioCentro","UsuarioCentros","centros_usuario","addCentro","modifyCentroUsuario","newCentro","editCentro","removeCentro","UsuarioActionButtons","checkFields","codigoUsuario","usuarioDetalles","UsuarioEdit","onBlurCheckBox","goBack","match","params","buttonIcon","formRight","usuario_centros","usuario_action_buttons","buttonAtras","modeloSelect","getEmpresas","createNewEmpresaDB","updateEmpresaDB","deleteEmpresaDB","MaeEmpresa","editEmpresa","newEmpresa","refresh","EmpresaEdit","checkCvEmpresa","elem","direccion1","direccion2","cp","localidad","nif","empresaDetalles","MaeCentro","deleteCentro","ord_centros","getCajasCentro","modifyCajaCentro","addCajaCentro","removeCajaCentro","CentroCajas","editCaja","newCaja","removeCaja","getZonasCentro","modifyZonaCentro","addZonaCentro","removeZonaCentro","CentroZonas","editZona","newZona","removeZona","getContabCentro","modifyContabCentro","addContabCentro","removeContabCentro","getZonaIvaCentro","modifyZonaIvaCentro","tipozonaiva","addZonaIvaCentro","removeZonaIvaCentro","getTiposZonasIva","CentroContab","editContab","newContab","removeContab","CentroZonaIva","editZonaIva","newZonaIva","removeZonaIva","zonaIvaCentro","CentroActionButtons","checkRequiredFields","cajas","centrosCentro","centrodetalle","canal","zonaPpto","contabTipoMaquinaCentro","centroZonaIva","grupoCentrosPadre","getCentrosCentro","addCentroCentro","removeCentroCentro","CentroCentros","newCentros","padre","CentroEdit","handleEmpresaSelectChange","moreDetailsDialog","centro_centros","centro_cajas","centro_zonas","centro_zonaiva","centro_contab","centro_action_buttons","MaeZona","centroSelectList","deleteZona","modifyTipoPartidaDeZona","addTipoPartidaDeZona","removeTipoPartidaDeZona","ZonaTipoPartidas","tipos_partida","zonaDetallesTipoPartida","zonaDetalles","modifyProductoDeZona","addProductoDeZona","removeProductoDeZona","ZonaProductos","modifyProducto","addProducto","zonaProductos","editProduct","newProduct","removeProduct","allArticulos","modifyProductoCajaDeZona","addProductoCajaDeZona","removeProductoCajaDeZona","ZonaProductosCaja","modifyProductoCaja","addProductoCaja","zonaProductosCaja","editProductCaja","newProductCaja","removeProductCaja","productosCaja","ZonaMaquinas","zonaMaquinas","getZonaDetalles","modifyFieldDetalleZona","updateZonaDB","ZonaActionButtons","iCajaDestino","productos","tipoPartidas","ZonaEdit","fillSelectOptionZonaList","handleChangeTipoZonaSelect","fillSelectOptionCajaList","cc","handleCajaDestinoChangeSelect","recibeCobPag","zona_tipopartidas","zona_productos","zona_productos_caja","zona_maquinas","zona_action_buttons","alta","getMaquinaDetalles","modifyFieldDetalleMaquina","addNewMaquina","defaultModel","deleteMaquinaDB","updateDetallesMaquinaDB","NewMaquinaDB","getMaquinasCentroOrigen","getMaquinasCentroDestino","moveMaquinaToCentroDestino","arrayIds","centroOrigenId","centroDestinoId","MaeMaquina","editMaquina","newMaquina","checkNewMaquina","deleteMaquina","estado_maquinas","noSpinner","addMaquinaCentro","modifyMaquinaCentro","removeMaquinaCentro","MaquinaCentros","modifyCentroMaquina","maquinaCentros","addItvDeMaquina","modifyItvMaquina","removeItvDeMaquina","MaquinaItv","addItv","newItv","editItv","removeItv","maquinaItvs","addLicenciaDeMaquina","modifyLicenciaDeMaquina","removeLicenciaDeMaquina","MaquinaLicencias","addLicencia","modifyLicenciaMaquina","newLicencia","editLicencia","removeLicencia","maquinalicencias","addIncidenciaDeMaquina","modifyIncidenciaMaquina","removeIncidenciaDeMaquina","MaquinaIncidencias","addIncidencia","newIncidencia","editIncidencia","removeIncidencia","maquinaIncidencias","addContadorDeMaquina","modifyContadorDeMaquina","removeContadorDeMaquina","MaquinaContadores","dataGridScroll","addContador","modifyContadorMaquina","newContador","editContador","removeContador","maquinaContadores","maquinaDetalle","maquinadetalles","MaquinaActionButtons","fechaCompra","fechaBaja","fechaAlta","matricula","fechasCorrectas","detallesmaquina","iModeloMaquina","comentarios","regaloDirecto","contadores","incidencias","licencias","itVs","MaquinaEdit","handleModeloMaquinaChange","mm","fillModelosMaquina","maquina_contadores","maquina_incidencias","maquina_licencias","maquina_itv","maquina_centros","maquina_action_buttons","CentroDia","dataBar","dataPack","isSigfridLoaded","isTecBrainLoaded","datosCierreDiario","datos","isLoaded","showButton","handleCentroValueChange","dt","handleDiaValueChange","handleAceptarButtonClick","centroSelectOptions","desgloseId","sigfridHandler","value11","hora","value13","value9","value14","antes12","thenTecBrainCount","updateCountPersonTecBrain","start","jsstart","jsend","setDate","strStart","formatDate","strEnd","otrosDatosCierreDiario","numeroPersonas","renderDesbloquearButton","join","desbloquearContainer","buttonEnl","buttonContentEnl","select","light","CierreDiarioItem","handleImporteChange","legKind","actualizaRedSys","generateButton1","buttonContent","generateButton2","prevImporte","paperItem","leftSide","setSelectionRange","paperContainer","CierreDiarioDatos","generateCierreDiarioControls","datosCierre","cajaDescr","cajaGeneral","newDatosCierre","paperCaja","generateConceptos","cajaid","conceptoIngresos","conceptoPagos","generateConceptosIngresos","generateConceptosPagos","paperConcepto","titleConceptoIngresos","titleIngresos","generateZonas","titleConceptoPagos","titlePagos","paperZona","titleZona","containerItems","generateProductos","modifyValue","productosOK","ventasPack","cierre_diario_item","cREDSYS","hanldeOKClick","nextStep","saveHandler","first","centro_dia","mixins","gutters","borderBottom","CumpleanosTable","resultadoEncuesta","editing","resultDB","numberOfAnswers","obj","cumplesOp1M","cumplesOp2M","cumplesOp3M","cumplesOp4M","cumplesOp1R","cumplesOp2R","cumplesOp3R","cumplesOp4R","cumplesOp1B","cumplesOp2B","cumplesOp3B","cumplesOp4B","cumplesOp1E","cumplesOp2E","cumplesOp3E","cumplesOp4E","resultadoCumplesPor100","headerRow","headerRowItem","gridRow","inputsSide","lastInput","paperTitle","&:last-child","rowItem","SatisfaccionTable","ilusionaOp1M","ilusionaOp2M","ilusionaOp3M","ilusionaOp4M","ilusionaOp1R","ilusionaOp2R","ilusionaOp3R","ilusionaOp4R","ilusionaOp1B","ilusionaOp2B","ilusionaOp3B","ilusionaOp4B","ilusionaOp1E","ilusionaOp2E","ilusionaOp3E","ilusionaOp4E","resultadoIlusionaPor100","Apertura","aperturaRpta01","aperturaRpta02","aperturaRpta03","aperturaRpta04","aperturaRpta05","questions","rightSide","titleItem","q","itemContainer","radiobuttonContainer","Operativa","operativaRpta01","operativaRpta02","operativaRpta03","operativaRpta04","operativaRpta05","Cierre","cierreRpta01","cierreRpta02","cierreRpta03","cierreRpta04","cierreRpta05","FirstRowPapers","interPista","pistasParadas","paresZapatos","ventasNormalBar","maqArcadeParadas","numNinos","numAniversarios","ninosKids","singleItem","barArcadeContainer","paperHalf","center","inputlarge","SecondRowPapers","onBlurText","eventosRelevantes","horasPersonal","horasVacaciones","horasBajas","textAreaContainer","textareaInput","top5","totalPartidas","ThirdRowPapers","extrasVendidos","tokensEntregados","tieneTokens","CierreDiarioOtrosDatos","showAll","mainContainer","first_row_papers","second_row_papers","third_row_papers","encuestasContainer","cumplea_os_table","rightsideContainer","cierre_diario_otros_datos_components_Apertura","cierre_diario_otros_datos_components_Operativa","cierre_diario_otros_datos_components_Cierre","prevStep","CierreDiarioResumen","parseCierreDiarioData","ventaPacksBar","packsBar","item_cajaId","compareProductos","ingresoCorregido","cobroCorregido","descuadreBarBolera","cajaSection","cajaSectionLeft","cajaSectionFontDescr","cajaSectionItem","cajaSectionFont","cajaSectionRight","conceptTitleContainerSecondary","conceptTitleContainerblack","conceptTitleContainer","conceptTitle","conceptSectionItem","generateProductosIngresos","generateProductosPagos","tooltipText","topGrid","gridCellsHeaderleft","gridCellsHeaderCenter","gridCellsHeaderRight","gridCells","renderResumen","paperResumenTable","resumenCierreDiario","itemResume","styleClass","typoOK","iError","typoError","typoDefault","cerrarDia","obtenerObservacionesPorDescuadre","guardarObservacionesPorDescuadre","arqueoGeneralId","resumen","AccCierreDiario","activeStep","getSteps","getStepContent","stepIndex","cierre_diario_datos","handleNext","handleBack","cierre_diario_otros_datos","cierre_diario_resumen","handleStep","step","handleReset","steps","Stepper","nonLinear","alternativeLabel","stepperContainer","Step","StepButton","completed","StepLabel","labelContainer","StepIconProps","textIcon","instructions","backButton","& $alternativeLabel","MoverMaquina","handleChangeDate","compareCentros","handleSelection","rowsSelected","onclickButton","disableButton","IdSelectedCentroOrigen","IdSelectedCentroDestino","maquinasIds","maquinasOrigen","fchaCambio","refreshOrigen","refreshDestino","moveSuccess","items","gridContainer","isLoadingOrigen","centreButton","Fab","maquinasDestino","isLoadingDestino","moverMaquinasOrigen","moverMaquinasDestino","cursor","datosCierreSemanal","typography","cajaIDgeneral","bg","grey","CierreSemanalArcade","modifyDatosCierreSemanal","renderItem","handleBanco2Change","banco2","onValueBanco2Change","updateBanco2DB","renderBanco","banco","bancoArcade","cajaIDcambio","bancoArcade2","totalMaquinas","totalEurosMaq","totalEurosMaqSinMult","containeritems","totalBillares","totalCambio","CierreSemanalTokensFondo","handleVariacionChange","variacion","fondoFinal","fondoInicial","renderVariacion","fondoTokensIni","fondoTokensEnd","lastCentroDia","totalEntregado","totalTokensMaq","semanaCerrada","CierreSemanalTokensCentro","editableInput","fondoTokensCentroIni","fondoTokensCentroEnd","CierreSemanalEuros","fondoEurosIni","fondoEurosEnd","CierreSemanalDatos","handleCalendario","paperResumen","cierre_semanal_calendario","divLecturas","cierre_semanal_maq_arcade","buttonCalendario","cierre_semanal_arcade","cierre_semanal_tokens_fondo","cierre_semanal_tokens_centro","cierre_semanal_euros","TopSection","repCierraDia","otrosDatosCierreSemanal","cambioCompl","bigTable","containerRightTable","columnLeft","headerCell","diario","columnRight","gridCellsNumbers","diferencia","gridCellsNumbersGreen","gridCellsNumbersRed","otrosdatos","&:nth-child(odd)","borderLeft","CentreSection","obsResumenGeneral","obsResumenBolera","obsResumenBar","hojasReclamacion","obsResumenAniversarios","obsResumenArcade","obsResumenRRHH","obsResumenInstalaciones","ventaNormalBar","entrKids","resenyas123","resenyas45","cumplesOnline","altasPersonal","bajasPersonal","amonestaciones","paperFull","inputprop","maxLength","greenTitle","containerThirdRow","thirRowElement","purpleTitle","halfPaperInsidePanel","textfieldHalf","inputpropHalf","righText","thirdRowCenter","halfPaper","lastRow","paperlast","textfieldLast","&:first-child","textfieldthirdRowSide","inputthirdRowSide","blackTitle","RightSection","porcPartidasPack","pack2Partidas","conteoPersonas","aniversarios","ticketsEuros","promedioEuroMaq","averias","kids","kidsAniv","eurosKid","titlePaper","textfield","CierreSemanalOtrosDatos","cierre_semanal_otrosdatos_components_TopSection","cierre_semanal_otrosdatos_components_CentreSection","cierre_semanal_otrosdatos_components_RightSection","numberTextfield","numberTextfieldRightSide","textAreaCenter","resize","CierreSemanalResumenItem","generateButton","orden","gastosGeneral","renderLabel","CierreSemanalResumen","resumenCierreSemanal","itemsCierreSemanal","cierre_semanal_resumen_item","renderBancos","handleObsChange","acumBancos","acumIngresos","acumFondos","boxesContainer","existeCierreSemanal","AccCierreSemanal","cierre_semanal_datos","cierre_semanal_otros_datos","cierre_semanal_resumen","ExportarContabilidad","getLastExportDate","handleIniDateValueChange","handleEndDateValueChange","getContabilidad","dtIni","dtEnd","asientos","asyncToGenerator","regenerator_default","mark","_callee","wrap","_context","prev","next","Response","sent","stop","_x","apply","downloadContabilidad","failed","endHandler","filename","getTextFile","_callee2","_context2","_x2","bloquearContabilidad","DesbloquearContabilidad","lastDate","newDate","EntGastos","renderGastos","cierre_diario_gastos_grid","EntMkt","cierre_diario_mkt_grid","EntLecturaMaqCambio","cierre_diario_arcade_grid","EntPartidasPorTipo","cierre_diario_partidas_tipo_grid","EntLecturaMaqArcade","cierre_semanal_lect_arcade","IngresosBanco","getIngresos","EntIngresosBanco","ingresos_banco","EntPresupuestos","yearSelected","provisionalOrDefinitivo","yearOrigenSelected","getFirstOriginYear","fillGeneratePresupuestoValues","copied","startMonthOrigen","endMonthOrigen","totalPercent","totalRef","totalNew","newRows","diff","rowsGenerarPresupuesto","loadingGenerarGrid","totalRefPresupuesto","totalPresupuesto","totalPercentPresupuesto","reset","iTipoZonaId","getYearTotal","handleYearValueChange","actualYear","editPresupuesto","iMes","totalesZona","renderGenerarPresupuestosGrid","incrGrid","newTotal","handleProvisionalChange","renderMonths","handleStartMonthOrigenValueChange","handleEndMonthOrigenValueChange","handleLockClick","totalOrigen","buttonCopy","buttonLock","barBolera","buttonIncremento","inputRefTotal","inputNewTotal","inputPercentTotal","EntAlertas","updateIncidencia","createIncidencia","incURL","renderAlertasGrid","loadingAlertas","selectMaquinaHandler","getIncidencias","inputElementLeft","InfResumenDiario","report_generic","ReportList","getReports","reports","InfResumenSemanal","report_list","InfResumenVentas","InfVentas","InfArcade","InfRedemption","InfDiasAnyo","InfDescuadresCaja","TestComponent","getFamilia","modifyFamilia","addFamilia","removeFamilia","updateFamiliaDB","MaeAuxiliaresFamilia","addNewFamilia","newFamilia","familias","getSubFamiliaList","modifySubFamilia","addSubFamilia","removeSubFamilia","updateSubFamiliaDB","MaeAuxiliaresSubFamilia","checkCvSubFamilia","subFamiliaList","sf","editSubFamilia","newSubFamilia","getTipoFichaList","modifyTipoFicha","addTipoFicha","removeTipoFicha","updateTipoFichaListDB","MaeAuxiliaresTipoFicha","addNewTipoFicha","newTipoFicha","getTipoFichaSubList","modifyTipoFichaSub","addTipoFichaSub","removeTipoFichaSub","updateTipoFichaSubListDB","tipoFichaSubList","MaeAuxiliaresTipoFichaSub","tfs","editTipoFichaSub","newTipoFichaSub","getTipoMovRedemList","modifyTipoMovRedem","TipoMovRedem","addTipoMovRedem","removeTipoMovRedem","updateTipoMovRedemListDB","TipoMovRedemList","MaeAuxiliaresTipoMovRedem","tipoMovRedemList","addNewTipoMovRedem","newTipoMovRedem","getPromocionList","modifyPromocion","addPromocion","removePromocion","updatePromocionListDB","MaeAuxiliaresPromocion","addNewPromocion","newPromocion","editPromocion","userId","getMotivo","modifyMotivo","addMotivo","removeMotivo","updateMotivoDB","MaeAuxiliaresMotivo","checkCvMotivo","editMotivo","newMotivo","cardInActivo","cardActivo","media","backgroundSize","articulo_desc","ticketsSugeridos","stock","isActivo","fotoName","articuloCompraFoto","predeterminada","bPredeterminada","fotoId","descrPublica","descrPrivada","iSubfamiliaNavigation","iFamiliaNavigation","fBaja","dcPedidoLinea","Card","DoneOutline_default","Cancel_default","CardActionArea","CardMedia","backgroundPositionY","image","bClienteVisible","bSegstock","ArticuloEdit","getArticuloDetalles","articulo_compra_centro_id","articuloCompraCentro","proveedor","detalles","articuloCompraCentroId","getHistorico","historico","newCodigoBarras","nuevoCodigo","newCodigos","articuloCompraCodBarras","handleDeleteCodigoDeBarras","openEditCodigo","bActivo","ac","puntos","columnsStocks","columnsHistoricoCompras","columnsHistoricoMovimientos","mae_redemption_articulo_articulo_desc","min","getSegmentacionList","modifySegmentacion","addSegmentacion","removeSegmentacion","updateSegmentacionListDB","segmentacionList","MaeSegmentacion","addNewSegmentacionCallback","newSegmentacion","editSegmentacion","handleChangeSelectCentro","EntPedido","editPedido","fend","fini","pedidoList","aCentroId","aFIni","aFEnd","request","ft_fDoc","gridcols","modifyPedido","editNewAlbaran","totalAlbaran","puedeCerrarse","totalRecibido","totalPedido","cierraPedido","cierraPedidoFromPdtes","totalUnidadesPedidas","totalUnidadesRecibidas","totalEurosPedido","totalEurosRecibidos","cantidadPedido","cantidadRecibida","AccInventario","editInventario","inventarioList","newList","a_inventario","newArr","updateDB","cierraInventarioDB","abreInventarioDB","newInventario","deleteInventario","ft_fInventario","ft_fValidado","ft_fCerrado","EntAlbaranHist","editAlbaran","albaranList","createMuiTheme","dark","default","danger","useNextVariants","App","ThemeProvider","dialogs_root","react_router","ilusiona_header","left_drawer","path","MaePromocion","EntPedidoPdte","hostname","rootReducer","combineReducers","newState","removed","tiposContadores","itV","newDatos","cobrosArcade","smoveSuccess","variacionFondo","ini","entreg","newArcade","eurosSinMult","totalEuros","totalEurosSinMult","kds","store","applyMiddleware","ReduxPromise","thunk","createStore","createStoreWithMiddleware","reducers","loadUser","processSilentRenew","render","es","src_App","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.cd31245d.chunk.js","sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 122;","import { createBrowserHistory } from 'history';\r\n\r\nexport default createBrowserHistory();\r\n","//grid:\r\nexport const OPEN_DIALOG = \"OPEN_MODAL\";\r\nexport const HIDE_DIALOG = \"HIDE_MODAL\";\r\nexport const CHANGE_SECTION = \"CHANGE_SECTION\";\r\nexport const NAVIGATION = \"NAVIGATION\";\r\nexport const SET_SECTIONS = \"SET_SECTIONS\";\r\n\r\n//aux tipo zona:\r\nexport const GET_TIPOS_ZONA = \"GET_TIPOS_ZONA\";\r\nexport const UPDATE_TIPOS_ZONA = \"UPDATE_TIPOS_ZONA\";\r\nexport const ADD_TIPO_ZONA = \"ADD_TIPO_ZONA\";\r\nexport const MODIFY_TIPO_ZONA = \"MODIFY_TIPO_ZONA\";\r\nexport const DELETE_TIPO_ZONA = \"DELETE_TIPO_ZONA\";\r\n\r\n//aux grupo partida:\r\nexport const GET_GRUPO_PARTIDA = \"GET_GRUPO_PARTIDA\";\r\nexport const UPDATE_GRUPO_PARTIDA = \"UPDATE_GRUPO_PARTIDA\";\r\nexport const ADD_GRUPO_PARTIDA = \"ADD_GRUPO_PARTIDA\";\r\nexport const MODIFY_GRUPO_PARTIDA = \"MODIFY_GRUPO_PARTIDA\";\r\nexport const DELETE_GRUPO_PARTIDA = \"DELETE_GRUPO_PARTIDA\";\r\n\r\n//aux tipo zona iva:\r\nexport const GET_TIPO_ZONA_IVA = \"GET_TIPO_ZONA_IVA\";\r\nexport const UPDATE_TIPO_ZONA_IVA = \"UPDATE_TIPO_ZONA_IVA\";\r\nexport const ADD_TIPO_ZONA_IVA = \"ADD_TIPO_ZONA_IVA\";\r\nexport const MODIFY_TIPO_ZONA_IVA = \"MODIFY_TIPO_ZONA_IVA\";\r\nexport const DELETE_TIPO_ZONA_IVA = \"DELETE_TIPO_ZONA_IVA\";\r\n\r\n//aux tipo partida:\r\nexport const GET_TIPOS_PARTIDA = \"GET_TIPOS_PARTIDA\";\r\nexport const UPDATE_TIPOS_PARTIDA = \"UPDATE_TIPOS_PARTIDA\";\r\nexport const ADD_TIPO_PARTIDA = \"ADD_TIPO_PARTIDA\";\r\nexport const MODIFY_TIPO_PARTIDA = \"MODIFY_TIPO_PARTIDA\";\r\nexport const DELETE_TIPO_PARTIDA = \"DELETE_TIPO_PARTIDA\";\r\n\r\n//aux tipo maquina:\r\nexport const GET_TIPOS_MAQUINA = \"GET_TIPOS_MAQUINA\";\r\nexport const UPDATE_TIPOS_MAQUINA = \"UPDATE_TIPOS_MAQUINA\";\r\nexport const ADD_TIPO_MAQUINA = \"ADD_TIPO_MAQUINA\";\r\nexport const MODIFY_TIPO_MAQUINA = \"MODIFY_TIPO_MAQUINA\";\r\nexport const DELETE_TIPO_MAQUINA = \"DELETE_TIPO_MAQUINA\";\r\n\r\n//aux modelo maquina:\r\nexport const GET_MODELOS_MAQUINA = \"GET_MODELOS_MAQUINA\";\r\nexport const MODIFY_MODELO_MAQUINA = \"MODIFY_MODELO_MAQUINA\";\r\nexport const ADD_MODELO_MAQUINA = \"ADD_MODELO_MAQUINA\";\r\nexport const DELETE_MODELO_MAQUINA = \"DELETE_MODELO_MAQUINA\";\r\nexport const UPDATE_MODELOS_MAQUINA = \"UPDATE_MODELOS_MAQUINA\";\r\n\r\n//aux tipo articulo:\r\nexport const GET_TIPOS_ARTICULO = \"GET_TIPOS_ARTICULO\";\r\nexport const MODIFY_TIPO_ARTICULO = \"MODIFY_TIPO_ARTICULO\";\r\nexport const ADD_TIPO_ARTICULO = \"ADD_TIPO_ARTICULO\";\r\nexport const DELETE_TIPO_ARTICULO = \"DELETE_TIPO_ARTICULO\";\r\nexport const UPDATE_TIPOS_ARTICULO = \"UPDATE_TIPOS_ARTICULO\";\r\n\r\n//aux tipo gasto:\r\nexport const GET_TIPOS_GASTO = \"GET_TIPOS_GASTO\";\r\nexport const ADD_TIPO_GASTO = \"ADD_TIPO_GASTO\";\r\nexport const DELETE_TIPO_GASTO = \"DELETE_TIPO_GASTO\";\r\nexport const UPDATE_TIPOS_GASTO = \"UPDATE_TIPOS_GASTO\";\r\nexport const MODIFY_TIPO_GASTO = \"MODIFY_TIPO_GASTO\";\r\n\r\n//mae empresa:\r\nexport const GET_EMPRESAS = \"GET_EMPRESAS\";\r\nexport const CREATE_EMPRESA = \"CREATE_EMPRESA\";\r\nexport const UPDATE_EMPRESA = \"UPDATE_EMPRESA\";\r\nexport const DELETE_EMPRESA = \"DELETE_EMPRESA\";\r\n\r\n//mae zona:\r\nexport const GET_ZONA_DETALLE = \"GET_ZONA_DETALLE\";\r\nexport const MODIFY_FIELD_DETALLE_ZONA = \"MODIFY_FIELD_DETALLE_ZONA\";\r\nexport const UPDATE_ZONA_DE_UN_CENTRO = \"UPDATE_ZONA_DE_UN_CENTRO\";\r\nexport const GET_ALL_ARTICULOS = \"GET_ALL_ARTICULOS\";\r\n\r\nexport const MODIFY_ZONA_TIPO_PARTIDA = \"MODIFY_ZONA_TIPO_PARTIDA\";\r\nexport const ADD_ZONA_TIPO_PARTIDA = \"ADD_ZONA_TIPO_PARTIDA\";\r\nexport const DELETE_ZONA_TIPO_PARTIDA = \"DELETE_ZONA_TIPO_PARTIDA\";\r\n\r\nexport const MODIFY_PRODUCTO_DE_ZONA = \"MODIFY_PRODUCTO_DE_ZONA\";\r\nexport const ADD_PRODUCTO_DE_ZONA = \"ADD_PRODUCTO_DE_ZONA\";\r\nexport const DELETE_PRODUCTO_DE_ZONA = \"DELETE_PRODUCTO_DE_ZONA\";\r\n\r\nexport const ADD_PRODUCTO_CAJA_DE_ZONA = \"ADD_PRODUCTO_CAJA_DE_ZONA\";\r\nexport const MODIFY_PRODUCTO_CAJA_DE_ZONA = \"MODIFY_PRODUCTO_CAJA_DE_ZONA\";\r\nexport const DELETE_PRODUCTO_CAJA_DE_ZONA = \"DELETE_PRODUCTO_CAJA_DE_ZONA\";\r\n \r\n\r\n//mae maquina:\r\nexport const GET_MAQUINAS_OF_MAE_MAQUINA = \"GET_MAQUINAS_OF_MAE_MAQUINA\";\r\nexport const GET_MAQUINA_DETALLES = \"GET_MAQUINA_DETALLES\";\r\nexport const MODIFY_FIELD_DETALLE_MAQUINA = \"MODIFY_FIELD_DETALLE_MAQUINA\";\r\nexport const DELETE_MAQUINA = \"DELETE_MAQUINA\";\r\nexport const ADD_NEW_MAQUINA = \"ADD_NEW_MAQUINA\";\r\nexport const UPDATE_DETALLES_MAQUINA = \"UPDATE_DETALLES_MAQUINA\";\r\nexport const UPDATE_DETALLES_NEW_MAQUINA = \"UPDATE_DETALLES_NEW_MAQUINA\";\r\n\r\n\r\nexport const ADD_CONTADOR_MAQUINA = \"ADD_CONTADOR_MAQUINA\";\r\nexport const MODIFY_CONTADOR_MAQUINA = \"MODIFY_CONTADOR_MAQUINA\";\r\nexport const DELETE_CONTADOR_MAQUINA = \"DELETE_CONTADOR_MAQUINA\";\r\n\r\nexport const ADD_INCIDENCIA_MAQUINA = \"ADD_INCIDENCIA_MAQUINA\";\r\nexport const DELETE_INCIDENCIA_MAQUINA = \"DELETE_INCIDENCIA_MAQUINA\";\r\nexport const MODIFY_INCIDENCIA_MAQUINA = \"MODIFY_INCIDENCIA_MAQUINA\";\r\n\r\n\r\nexport const ADD_LICENCIA_MAQUINA = \"ADD_LICENCIA_MAQUINA\";\r\nexport const DELETE_LICENCIA_MAQUINA = \"DELETE_LICENCIA_MAQUINA\";\r\nexport const MODIFY_LICENCIA_MAQUINA = \"MODIFY_LICENCIA_MAQUINA\";\r\n\r\n\r\nexport const ADD_ITV_MAQUINA = \"ADD_ITV_MAQUINA\";\r\nexport const DELETE_ITV_MAQUINA = \"DELETE_ITV_MAQUINA\";\r\nexport const MODIFY_ITV_MAQUINA = \"MODIFY_ITV_MAQUINA\";\r\n\r\nexport const ADD_CENTRO_MAQUINA = \"ADD_CENTRO_MAQUINA\";\r\nexport const DELETE_CENTRO_MAQUINA = \"DELETE_CENTRO_MAQUINA\";\r\nexport const MODIFY_CENTRO_MAQUINA = \"MODIFY_CENTRO_MAQUINA\";\r\n\r\n//mae centro:\r\nexport const GET_CENTROS = \"GET_CENTROS\";\r\nexport const GET_CENTRO = \"GET_CENTRO\";\r\nexport const MODIFY_FIELD_DETALLE_CENTRO = \"MODIFY_FIELD_DETALLE_CENTRO\";\r\nexport const MODIFY_FIELDS_CENTRO_DIALOG = \"MODIFY_FIELDS_CENTRO_DIALOG\";\r\nexport const NOT_SAVED_MORE_DETAILS = \"NOT_SAVED_MORE_DETAILS\";\r\nexport const UPDATE_CENTRO = \"UPDATE_CENTRO\";\r\nexport const CREATE_CENTRO = \"CREATE_CENTRO\";\r\nexport const COPY_CENTRO = \"COPY_CENTRO\";\r\nexport const DELETE_CENTRO = \"DELETE_CENTRO\";\r\nexport const GET_CAJAS_CENTRO = \"GET_CAJAS_CENTRO\";\r\nexport const GET_ZONAS_CENTRO = \"GET_ZONAS_CENTRO\";\r\nexport const GET_CONTAB_CENTRO = \"GET_CONTAB_CENTRO\";\r\nexport const MODIFY_CONTAB_CENTRO = \"MODIFY_CONTAB_CENTRO\";\r\nexport const ADD_CONTAB_CENTRO = \"ADD_CONTAB_CENTRO\";\r\nexport const REMOVE_CONTAB_CENTRO = \"REMOVE_CONTAB_CENTRO\";\r\nexport const MODIFY_CAJA_CENTRO = \"MODIFY_CAJA_CENTRO\";\r\nexport const ADD_CAJA_CENTRO = \"ADD_CAJA_CENTRO\";\r\nexport const REMOVE_CAJA_CENTRO = \"REMOVE_CAJA_CENTRO\";\r\nexport const MODIFY_ZONA_CENTRO = \"MODIFY_ZONA_CENTRO\";\r\nexport const ADD_ZONA_CENTRO = \"ADD_ZONA_CENTRO\";\r\nexport const REMOVE_ZONA_CENTRO = \"REMOVE_ZONA_CENTRO\";\r\nexport const GET_TIPOSZONASIVA_CENTRO = \"GET_TIPOSZONASIVA_CENTRO\";\r\nexport const GET_ZONAIVA_CENTRO = \"GET_ZONAIVA_CENTRO\";\r\nexport const MODIFY_ZONAIVA_CENTRO = \"MODIFY_ZONAIVA_CENTRO\";\r\nexport const ADD_ZONAIVA_CENTRO = \"ADD_ZONAIVA_CENTRO\";\r\nexport const REMOVE_ZONAIVA_CENTRO = \"REMOVE_ZONAIVA_CENTRO\";\r\nexport const GET_CENTROS_CENTRO = \"GET_CENTROS_CENTRO\";\r\nexport const ADD_CENTRO_CENTRO = \"ADD_CENTRO_CENTRO\";\r\nexport const REMOVE_CENTRO_CENTRO = \"REMOVE_CENTRO_CENTRO\";\r\n\r\n//cierre diario:\r\nexport const GET_CIERRE_DIARIO = \"GET_CIERRE_DIARIO\";\r\nexport const MODIFY_DATOS_CIERRE_DIARIO = \"MODIFY_DATOS_CIERRE_DIARIO\";\r\nexport const UPDATE_DATOS_CIERRE_DIARIO = \"UPDATE_DATOS_CIERRE_DIARIO\";\r\nexport const SET_CENTRO_DIA = \"SET_CENTRO_DIA\";\r\nexport const SET_INITIAL_CENTRO_DIA = \"SET_INITIAL_CENTRO_DIA\";\r\nexport const INVALIDATE_CENTRO_DIA = \"INVALIDATE_CENTRO_DIA\";\r\nexport const ENABLE_CENTRO_DIA = \"ENABLE_CENTRO_DIA\";\r\nexport const GET_ARTGASTOS = \"GET_ARTGASTOS\";\r\nexport const GET_ARTMKT = \"GET_ARTMKT\";\r\nexport const GET_TIPO_GASTOS_CIERRE = \"GET_TIPO_GASTOS_CIERRE\";\r\nexport const GET_OTROS_DATOS_CIERRE_DIARIO = \"GET_OTROS_DATOS_CIERRE_DIARIO\";\r\nexport const MODIFY_FIELD_OTROSDATOS_CIERRE = \"MODIFY_FIELD_OTROSDATOS_CIERRE\";\r\nexport const NEW_OTROSDATOS = \"NEW_OTROSDATOS\";\r\nexport const UPDATE_OTROSDATOS_CIERRE = \"UPDATE_OTROSDATOS_CIERRE\";\r\nexport const DESBLOQUEAR_CIERRE_DIARIO = \"DESBLOQUEAR_CIERRE_DIARIO\";\r\nexport const CIERRE_DIARIO_CERRAR_DIA = \"CIERRE_DIARIO_CERRAR_DIA\";\r\nexport const GET_PARTIDAS_POR_TIPO = \"GET_PARTIDAS_POR_TIPO\";\r\nexport const GET_RESUMEN_CIERRE_DIARIO = \"GET_RESUMEN_CIERRE_DIARIO\";\r\n\r\n//mover_maquinas:\r\nexport const GET_MAQUINAS_CENTRO_ORIGEN = \"GET_MAQUINAS_CENTRO_ORIGEN\";\r\nexport const GET_MAQUINAS_CENTRO_DESTINO = \"GET_MAQUINAS_CENTRO_DESTINO\";\r\nexport const MOVE_MAQUINA_TO_CENTRO_DESINO = \"MOVE_MAQUINA_TO_CENTRO_DESINO\";\r\n\r\n//cierre semanal\r\nexport const GET_CIERRE_SEMANAL_DATOS = \"GET_CIERRE_SEMANAL_DATOS\";\r\nexport const GET_OTROS_DATOS_CIERRE_SEMANAL = \"GET_OTROS_DATOS_CIERRE_SEMANAL\";\r\nexport const MODIFY_FIELD_OTROSDATOS_CIERRE_SEMANAL = \"MODIFY_FIELD_OTROSDATOS_CIERRE_SEMANAL\";\r\nexport const MODIFY_ARQUEO_CIERRE_SEMANAL = \"MODIFY_ARQUEO_CIERRE_SEMANAL\";\r\nexport const MODIFY_BANCO_2_CIERRE_SEMANAL = \"MODIFY_BANCO_2_CIERRE_SEMANAL\";\r\nexport const MODIFY_VARIACION_EUROS = \"MODIFY_VARIACION_EUROS\";\r\nexport const MODIFY_VARIACION_TOKENS = \"MODIFY_VARIACION_TOKENS\";\r\nexport const MODIFY_VARIACION_TOKENS_CENTRO = \"MODIFY_VARIACION_TOKENS_CENTRO\";\r\nexport const UPDATE_DATOS_CIERRE_SEMANAL = \"UPDATE_DATOS_CIERRE_SEMANAL\";\r\nexport const UPDATE_OTROS_DATOS_CIERRE_SEMANAL = \"UPDATE_OTROS_DATOS_CIERRE_SEMANAL\";\r\nexport const DESBLOQUEAR_CIERRE_SEMANAL = \"DESBLOQUEAR_CIERRE_SEMANAL\";\r\nexport const CIERRE_SEMANAL_CERRAR_SEMANA = \"CIERRE_SEMANAL_CERRAR_SEMANA\";\r\nexport const GET_RESUMEN_CIERRE_SEMANAL = \"GET_RESUMEN_CIERRE_SEMANAL\";\r\nexport const MODIFY_MAQ_ARCADE_CIERRE_SEMANAL = \"MODIFY_MAQ_ARCADE_CIERRE_SEMANAL\";\r\nexport const RESET_CIERRE_SEMANAL_DATOS = \"RESET_CIERRE_SEMANAL_DATOS\";\r\nexport const UPDATE_BILLARES_CIERRE_SEMANAL = \"UPDATE_BILLARES_CIERRE_SEMANAL\";\r\n\r\n\r\n\r\n//presupuestos\r\nexport const GET_PRESUPUESTO = \"GET_PRESUPUESTO\";\r\nexport const GET_PRESUPUESTO_DETALLE = \"GET_PRESUPUESTO_DETALLE\";\r\nexport const GET_NEW_PRESUPUESTO_DETALLE = \"GET_NEW_PRESUPUESTO_DETALLE\";\r\nexport const GENERATE_PRESUPUESTO = \"GENERATE_PRESUPUESTO\";\r\nexport const UPDATE_PRESUPUESTO_DETALLE = \"UPDATE_PRESUPUESTO_DETALLE\";\r\nexport const UPDATE_SELECTED_ORIGIN = \"UPDATE_SELECTED_ORIGIN\";\r\nexport const COPIAR_PRESUPUESTO = \"COPIAR_PRESUPUESTO\";\r\nexport const CAMBIAR_BLOQUEO_PRESUPUESTO = \"CAMBIAR_BLOQUEO_PRESUPUESTO\";\r\n\r\n//save_state\r\nexport const SET_SAVE_STATE_PENDING = \"SET_SAVE_STATE_PENDING\";\r\n\r\n//user\r\nexport const GET_USER_PROFILE = \"GET_USER_PROFILE\";\r\nexport const SET_SELECTED_USER_CENTRO_PROFILE = \"SET_SELECTED_USER_CENTRO_PROFILE\";\r\n\r\n//perfiles usuario\r\nexport const GET_USUARIOS = \"GET_USUARIOS\";\r\nexport const GET_USUARIOS_KD = \"GET_USUARIOS_KD\";\r\nexport const GET_USUARIO_DETALLES = \"GET_USUARIO_DETALLES\";\r\nexport const MODIFY_USUARIO_DETALLES = \"MODIFY_USUARIO_DETALLES\";\r\nexport const UPDATE_USUARIO_DETALLES = \"UPDATE_USUARIO_DETALLES\";\r\nexport const ADD_NEW_USUARIO = \"ADD_NEW_USUARIO\";\r\n\r\nexport const ADD_CENTRO_USUARIO = \"ADD_CENTRO_USUARIO\";\r\nexport const DELETE_CENTRO_USUARIO = \"DELETE_CENTRO_USUARIO\";\r\nexport const MODIFY_CENTRO_USUARIO = \"MODIFY_CENTRO_USUARIO\";\r\n\r\n//aux familia:\r\nexport const GET_FAMILIA = \"GET_FAMILIA\";\r\nexport const UPDATE_FAMILIA = \"UPDATE_FAMILIA\";\r\nexport const ADD_FAMILIA = \"ADD_FAMILIA\";\r\nexport const MODIFY_FAMILIA = \"MODIFY_FAMILIA\";\r\nexport const DELETE_FAMILIA = \"DELETE_FAMILIA\";\r\n\r\n//aux familia:\r\nexport const GET_MOTIVO = \"GET_MOTIVO\";\r\nexport const UPDATE_MOTIVO = \"UPDATE_MOTIVO\";\r\nexport const ADD_MOTIVO = \"ADD_MOTIVO\";\r\nexport const MODIFY_MOTIVO = \"MODIFY_MOTIVO\";\r\nexport const DELETE_MOTIVO = \"DELETE_MOTIVO\";\r\n\r\n\r\n//aux sub familia:\r\nexport const GET_SUB_FAMILIA = \"GET_SUB_FAMILIA\";\r\nexport const UPDATE_SUB_FAMILIA = \"UPDATE_SUB_FAMILIA\";\r\nexport const ADD_SUB_FAMILIA = \"ADD_SUB_FAMILIA\";\r\nexport const MODIFY_SUB_FAMILIA = \"MODIFY_SUB_FAMILIA\";\r\nexport const DELETE_SUB_FAMILIA = \"DELETE_SUB_FAMILIA\";\r\n\r\n//aux sub tipo ficha:\r\nexport const GET_TIPO_FICHA = \"GET_TIPO_FICHA\";\r\nexport const UPDATE_TIPO_FICHA = \"UPDATE_TIPO_FICHA\";\r\nexport const ADD_TIPO_FICHA = \"ADD_TIPO_FICHA\";\r\nexport const MODIFY_TIPO_FICHA = \"MODIFY_TIPO_FICHA\";\r\nexport const DELETE_TIPO_FICHA = \"DELETE_TIPO_FICHA\";\r\n\r\n//aux sub tipo ficha sub:\r\nexport const GET_TIPO_FICHA_SUB = \"GET_TIPO_FICHA_SUB\";\r\nexport const UPDATE_TIPO_FICHA_SUB = \"UPDATE_TIPO_FICHA_SUB\";\r\nexport const ADD_TIPO_FICHA_SUB = \"ADD_TIPO_FICHA_SUB\";\r\nexport const MODIFY_TIPO_FICHA_SUB = \"MODIFY_TIPO_FICHA_SUB\";\r\nexport const DELETE_TIPO_FICHA_SUB = \"DELETE_TIPO_FICHA_SUB\";\r\n\r\n//aux sub tipo mov redem:\r\nexport const GET_TIPO_MOV_REDEM = \"GET_TIPO_MOV_REDEM\";\r\nexport const UPDATE_TIPO_MOV_REDEM = \"UPDATE_TIPO_MOV_REDEM\";\r\nexport const ADD_TIPO_MOV_REDEM = \"ADD_TIPO_MOV_REDEM\";\r\nexport const MODIFY_TIPO_MOV_REDEM = \"MODIFY_TIPO_MOV_REDEM\";\r\nexport const DELETE_TIPO_MOV_REDEM = \"DELETE_TIPO_MOV_REDEM\";\r\n\r\n//aux promociones:\r\nexport const GET_PROMOCION = \"GET_PROMOCION\";\r\nexport const UPDATE_PROMOCION = \"UPDATE_PROMOCION\";\r\nexport const ADD_PROMOCION = \"ADD_PROMOCION\";\r\nexport const MODIFY_PROMOCION = \"MODIFY_PROMOCION\";\r\nexport const DELETE_PROMOCION = \"DELETE_PROMOCION\";\r\n\r\n//aux promociones:\r\nexport const GET_SEGMENTACION = \"GET_SEGMENTACION\";\r\nexport const UPDATE_SEGMENTACION = \"UPDATE_SEGMENTACION\";\r\nexport const ADD_SEGMENTACION = \"ADD_SEGMENTACION\";\r\nexport const MODIFY_SEGMENTACION = \"MODIFY_SEGMENTACION\";\r\nexport const DELETE_SEGMENTACION = \"DELETE_SEGMENTACION\";\r\n\r\n//UTILS\r\nexport const LOADING = \"LOADING\";\r\n","// URLs\r\n// export const API_URI = 'https://taskschedulerapi20180518125042.azurewebsites.net/api/';\r\n// export const API_URI = 'http://neurite-server:5000/api/';\r\n// export const API_URI = 'https://localhost:5001/api/';\r\n// export const API_URI = 'https://ilusionaapi20190307.azurewebsites.net/api/';\r\n//export const API_URI = 'https://ilusionaapi-test.azurewebsites.net/api/';\r\n// export const API_URI = 'https://3aguas-api.azurewebsites.net/api/';\r\n// export const REPORTS_API_URI = 'http://localhost:65482/api/Reports';\r\n// export const REPORTS_API_URI = 'https://neuritereportsapi.azurewebsites.net/api/Reports';\r\n//export const REPORTS_API_URI = 'https://ilusionaredemptionreportsapi.azurewebsites.net/api/Reports';\r\n// export const REPORTS_API_URI = 'https://3aguas-reports-api.azurewebsites.net/api/Reports';\r\nexport const API_URI = () => {\r\n switch (process.env.REACT_APP_CLIENT) {\r\n case \"3aguas-local\":\r\n //return \"https://localhost:5001/api/\";\r\n return \"https://3aguas-api.azurewebsites.net/api/\";\r\n case \"3aguas\":\r\n return \"https://3aguas-api.azurewebsites.net/api/\";\r\n case \"Ilusiona-local\":\r\n return \"https://localhost:5001/api/\";\r\n //return \"https://ilusiona-api.azurewebsites.net/api/\";\r\n case \"Ilusiona\":\r\n return \"https://ilusiona-api.azurewebsites.net/api/\";\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport const REPORTS_API_URI = () => {\r\n switch (process.env.REACT_APP_CLIENT) {\r\n case \"3aguas-local\":\r\n return \"https://3aguas-reports-api.azurewebsites.net/api/Reports\";\r\n case \"3aguas\":\r\n return \"https://3aguas-reports-api.azurewebsites.net/api/Reports\";\r\n case \"Ilusiona-local\":\r\n // return \"http://localhost:65482/api/Reports\";\r\n return \"https://ilusionaredemptionreportsapi.azurewebsites.net/api/Reports\";\r\n //return \"https://neuritereportsapi.azurewebsites.net/api/Reports\";\r\n case \"Ilusiona\":\r\n return \"https://ilusionaredemptionreportsapi.azurewebsites.net/api/Reports\";\r\n default:\r\n break;\r\n }\r\n}\r\n\r\n\r\n// settings\r\nexport const AUTH = true;","import axios from 'axios';\r\nimport * as config from '../constants/configuration';\r\n\r\n\r\n\r\nimport {\r\n OPEN_DIALOG, SET_SAVE_STATE_PENDING\r\n} from '../constants/action_types';\r\n\r\n\r\nexport function getData(uri, actionType, meta, showError = true) {\r\n return (dispatch, getState) => {\r\n\r\n dispatch({ type: actionType, payload: uri, meta: meta })\r\n\r\n let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n\r\n return axios.get(config.API_URI() + uri,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n }\r\n ).then((response) => {\r\n\r\n console.log('success ' + actionType);\r\n // setTimeout(() => {\r\n dispatch({ type: actionType + \"_SUCCESS\", payload: response, meta: meta })\r\n // }, 1500)\r\n\r\n }).catch((error) => {\r\n if (error.response) {\r\n const errorMessage = error.response.data.message !== undefined ? error.response.data.message : error.response.data;\r\n if (showError) {\r\n dispatch({\r\n type: OPEN_DIALOG,\r\n modalType: 'SimpleMessage',\r\n modalProps: { message: errorMessage, exception: error.response.data.ex ? error.response.data.ex : undefined },\r\n dialogid: 'error_getting_data '\r\n });\r\n }\r\n dispatch({ type: actionType + \"_FAILURE\", error: errorMessage });\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport function postData(uri, actionType, data, message, thenHandler, showError = true, errorHandler) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: actionType, payload: data })\r\n let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n axios.post(config.API_URI() + uri, data,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n }\r\n ).then((response) => {\r\n dispatch({ type: actionType + \"_SUCCESS\", payload: response });\r\n if (message !== undefined) {\r\n dispatch({\r\n type: OPEN_DIALOG,\r\n modalType: 'SimpleMessage',\r\n modalProps: { message: message },\r\n dialogid: 'success_post_' + actionType\r\n });\r\n }\r\n if (thenHandler !== undefined) thenHandler(response);\r\n else dispatch({ type: SET_SAVE_STATE_PENDING, payload: false });\r\n }).catch((error) => {\r\n if (errorHandler !== undefined) errorHandler(error.response)\r\n if (error.response) {\r\n const errorMessage = error.response.data.message !== undefined ? error.response.data.message : typeof error.response.data === 'string' ? error.response.data : JSON.stringify(error.response.data);\r\n if (showError) {\r\n dispatch({\r\n type: OPEN_DIALOG,\r\n modalType: 'SimpleMessage',\r\n modalProps: { message: errorMessage, exception: error.response.data.ex ? error.response.data.ex : undefined },\r\n dialogid: 'error_getting_data '\r\n });\r\n }\r\n dispatch({ type: actionType + \"_FAILURE\", error: errorMessage });\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function putData(uri, actionType, data, id, message, thenHandler, showError = true, errorHandler) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: actionType, payload: data })\r\n let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n axios.put(config.API_URI() + uri + '/' + id, data,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n }\r\n ).then((response) => {\r\n dispatch({ type: actionType + \"_SUCCESS\", payload: response });\r\n if (message !== undefined) {\r\n dispatch({\r\n type: OPEN_DIALOG,\r\n modalType: 'SimpleMessage',\r\n modalProps: { message: message },\r\n dialogid: 'success_put_' + actionType\r\n });\r\n }\r\n if (thenHandler !== undefined) thenHandler(response)\r\n else dispatch({ type: SET_SAVE_STATE_PENDING, payload: false });\r\n }).catch((error) => {\r\n if (errorHandler !== undefined) errorHandler(error.response)\r\n if (error.response) {\r\n const errorMessage = error.response.data.message !== undefined ? error.response.data.message : typeof error.response.data === 'string' ? error.response.data : JSON.stringify(error.response.data);\r\n if (showError) {\r\n dispatch({\r\n type: OPEN_DIALOG,\r\n modalType: 'SimpleMessage',\r\n modalProps: { message: errorMessage, exception: error.response.data.ex ? error.response.data.ex : undefined },\r\n dialogid: 'error_getting_data '\r\n });\r\n }\r\n dispatch({ type: actionType + \"_FAILURE\", error: errorMessage });\r\n }\r\n });\r\n };\r\n}","import {\r\n OPEN_DIALOG, HIDE_DIALOG, //modals\r\n CHANGE_SECTION, SET_SECTIONS,\r\n NAVIGATION, //navigation\r\n SET_SAVE_STATE_PENDING,\r\n GET_USER_PROFILE,\r\n SET_SELECTED_USER_CENTRO_PROFILE,\r\n LOADING\r\n} from '../constants/action_types';\r\n\r\n//import axios from 'axios';\r\n//import * as config from '../constants/configuration';\r\n\r\nimport { getData } from './redux_data';\r\n\r\nimport history from '../history';\r\n\r\nexport function openDialog(modalType, modalProps, id, disableBackdrop, maxWidth) {\r\n return {\r\n type: OPEN_DIALOG,\r\n modalType: modalType,\r\n modalProps: modalProps,\r\n dialogid: id,\r\n disableBackdrop: disableBackdrop,\r\n maxWidth: maxWidth\r\n };\r\n}\r\n\r\nexport function hideDialog() {\r\n return {\r\n type: HIDE_DIALOG,\r\n };\r\n}\r\n\r\nexport function loading(value) {\r\n return (dispatch) => {\r\n dispatch({ type: LOADING, payload: value })\r\n }\r\n}\r\n\r\nexport function changeSelectedSection(newSection) {\r\n return {\r\n type: CHANGE_SECTION,\r\n payload: newSection\r\n }\r\n}\r\n\r\nexport function setSections(sections) {\r\n return {\r\n type: SET_SECTIONS,\r\n payload: sections\r\n }\r\n}\r\n\r\nexport function navigate(location) {\r\n return (dispatch, getState) => {\r\n\r\n dispatch({ type: NAVIGATION, payload: location })\r\n history.push('/' + location);\r\n\r\n }\r\n}\r\n\r\nexport function setSaveState(pending) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: SET_SAVE_STATE_PENDING, payload: pending })\r\n }\r\n}\r\n\r\nexport function getUserProfile(id, kd) {\r\n\r\n return getData('usuarios/' + id, GET_USER_PROFILE, {kd: kd});\r\n}\r\n\r\nexport function setUserProfileUsuarioCentro(id) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: SET_SELECTED_USER_CENTRO_PROFILE, payload: id })\r\n }\r\n}\r\n","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n }\r\n});\r\n\r\nclass EditCvTipoZona extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.cvTipoZona.id ? this.props.cvTipoZona.id : uuidv4(),\r\n description: this.props.cvTipoZona.descr ? this.props.cvTipoZona.descr : '',\r\n iKindElemImp: this.props.cvTipoZona.iKindElemImp ? this.props.cvTipoZona.iKindElemImp : 0,\r\n\r\n };\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'description')}\r\n />\r\n \r\n{/* \r\n \r\n this.handleValueChange(event, 'iKindElemImp')}\r\n />\r\n */}\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nEditCvTipoZona.propTypes = {\r\n cvTipoZona: PropTypes.object.isRequired,\r\n checkTipoZona: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCvTipoZona);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditCvGrupoPartida extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.cvGrupoPartida.id ? this.props.cvGrupoPartida.id : uuidv4(),\r\n description: this.props.cvGrupoPartida.descr ? this.props.cvGrupoPartida.descr : ''\r\n\r\n };\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n\r\n this.handleValueChange(event, 'description')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nEditCvGrupoPartida.propTypes = {\r\n cvGrupoPartida: PropTypes.object.isRequired,\r\n checkGrupoPartida: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCvGrupoPartida);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditCvTipoZonaIva extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.cvTipoZonaIva.id ? this.props.cvTipoZonaIva.id : uuidv4(),\r\n description: this.props.cvTipoZonaIva.descr ? this.props.cvTipoZonaIva.descr : ''\r\n\r\n };\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n\r\n this.handleValueChange(event, 'description')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nEditCvTipoZonaIva.propTypes = {\r\n cvTipoZonaIva: PropTypes.object.isRequired,\r\n checkTipoZonaIva: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCvTipoZonaIva);","import React from 'react';\r\nimport NumberFormat from 'react-number-format';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function IntNumberFormatInput(props) {\r\n const { inputRef, onChange, ...other } = props;\r\n\r\n return (\r\n {\r\n onChange({\r\n target: {\r\n value: values.value,\r\n },\r\n });\r\n }}\r\n decimalSeparator=\",\"\r\n thousandSeparator=\".\"\r\n isNumericString={true}\r\n decimalScale={0}\r\n />\r\n );\r\n};\r\n\r\nIntNumberFormatInput.propTypes = {\r\n inputRef: PropTypes.func,\r\n onChange: PropTypes.func.isRequired,\r\n};","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n margin: {\r\n marginTop: 10,\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n\r\n});\r\n\r\nclass EditCvTipoPartida extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.cvTipoPartida.id ? this.props.cvTipoPartida.id : uuidv4(),\r\n descr: this.props.cvTipoPartida.descr ? this.props.cvTipoPartida.descr : '',\r\n divisor: this.props.cvTipoPartida.divisor ? this.props.cvTipoPartida.divisor : 1,\r\n iGrupoPartida: this.props.cvTipoPartida.iGrupoPartida ? this.props.cvTipoPartida.iGrupoPartida : this.props.grupoPartida[0].id,\r\n cvGrupoPartidaDescr: this.props.cvTipoPartida.grupoPartida ? this.props.cvTipoPartida.grupoPartida : this.props.grupoPartida[0].descr, // fbp ¿?\r\n }\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n\r\n };\r\n\r\n fillSelectOptionList = () => {\r\n\r\n return this.props.grupoPartida.map(gp => {\r\n\r\n return (\r\n \r\n );\r\n\r\n });\r\n\r\n };\r\n\r\n handleChangeSelect = event => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iGrupoPartida: value,\r\n cvGrupoPartidaDescr: this.props.grupoPartida.find(gp => gp.id === value).descr\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'descr')}\r\n />\r\n \r\n\r\n \r\n \r\n this.handleValueChange(event, 'divisor')}\r\n />\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Grupo Partida\r\n \r\n this.handleChangeSelect(event)}\r\n >\r\n {this.fillSelectOptionList()}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n};\r\n\r\nEditCvTipoPartida.propTypes = {\r\n cvTipoPartida: PropTypes.object.isRequired,\r\n checkTipoPartida: PropTypes.func.isRequired,\r\n grupoPartida: PropTypes.object.isRequired,\r\n okHandler: PropTypes.func.isRequired, \r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCvTipoPartida);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n checkbox: {\r\n marginBottom: 0,\r\n paddingTop: 25,\r\n width: 215,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n margin: {\r\n marginTop: 10,\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass EditCvTipoArticulo extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.cvTipoArticulo.id ? this.props.cvTipoArticulo.id : uuidv4(),\r\n descr: this.props.cvTipoArticulo.descr ? this.props.cvTipoArticulo.descr : '',\r\n isMovCaja: this.props.cvTipoArticulo.isMovCaja ? this.props.cvTipoArticulo.isMovCaja : false,\r\n iKind: this.props.cvTipoArticulo.iKind ? this.props.cvTipoArticulo.iKind : 0,\r\n iTipoZona: this.props.cvTipoArticulo.iTipoZona !== undefined ? this.props.cvTipoArticulo.iTipoZona : this.props.tiposZona[0].id,\r\n cvTipoZonaDescr: this.props.cvTipoArticulo.cvTipoZonaDescr ? this.props.cvTipoArticulo.cvTipoZonaDescr : this.props.tiposZona[0].descr,\r\n };\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n\r\n };\r\n\r\n handleCheckbox = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.checked });\r\n };\r\n\r\n\r\n handleChangeSelect = event => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoZona: value,\r\n cvTipoZonaDescr: this.props.tiposZona.find(tz => tz.id === value).descr\r\n });\r\n };\r\n\r\n\r\n fillSelectOptionList = () => {\r\n\r\n return this.props.tiposZona.map(tz => {\r\n\r\n return (\r\n \r\n );\r\n\r\n });\r\n\r\n };\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'descr')}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Tipo Zona\r\n \r\n this.handleChangeSelect(event)}\r\n name={'cvTipoZonaDescr'}\r\n >\r\n {this.fillSelectOptionList()}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n this.handleCheckbox(event, \"isMovCaja\")}\r\n value={'isMovCaja'}\r\n color=\"secondary\"\r\n />\r\n }\r\n label=\"¿Movimiento de caja?\"\r\n />\r\n \r\n \r\n\r\n \r\n this.handleValueChange(event, 'iKind')}\r\n />\r\n \r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nEditCvTipoArticulo.propTypes = {\r\n cvTipoArticulo: PropTypes.object.isRequired,\r\n checkCvTipoArticulo: PropTypes.func.isRequired,\r\n tiposZona: PropTypes.array.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCvTipoArticulo);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { TextField, Button, FormControl, FormControlLabel, Checkbox } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n margin: {\r\n marginTop: 10,\r\n }\r\n});\r\n\r\nclass EditCvTipoGasto extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.cvTipoGasto.id ? this.props.cvTipoGasto.id : uuidv4(),\r\n description: this.props.cvTipoGasto.descr ? this.props.cvTipoGasto.descr : '',\r\n isContab: this.props.cvTipoGasto.isContab ? this.props.cvTipoGasto.isContab : false,\r\n };\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n handleBooleanChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.checked });\r\n };\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'description')}\r\n />\r\n \r\n\r\n \r\n this.handleBooleanChange(event, 'isContab')}\r\n color=\"primary\"\r\n />\r\n }\r\n label=\"¿Is Contab?\"\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nEditCvTipoGasto.propTypes = {\r\n cvTipoGasto: PropTypes.object.isRequired,\r\n checkTipoGasto: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCvTipoGasto);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n margin: {\r\n marginTop: 10,\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass EditCvTipoMaquina extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.cvTipoMaquina.id ? this.props.cvTipoMaquina.id : uuidv4(),\r\n description: this.props.cvTipoMaquina.descr ? this.props.cvTipoMaquina.descr : '',\r\n cambio: this.props.cvTipoMaquina.cambio ? this.props.cvTipoMaquina.cambio : 0,\r\n checkedA: this.props.cvTipoMaquina.checkedA ? this.props.cvTipoMaquina.checkedA : false,\r\n checkedB: this.props.cvTipoMaquina.checkedB ? this.props.cvTipoMaquina.checkedB : false,\r\n iRecaudacion: this.props.cvTipoMaquina.iRecaudacion ? this.props.cvTipoMaquina.iRecaudacion : 0,\r\n };\r\n\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n }\r\n\r\n handleBooleanChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.checked });\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'description')}\r\n />\r\n \r\n\r\n \r\n \r\n this.handleBooleanChange(event, 'cambio')}\r\n value='cambio'\r\n />\r\n }\r\n label=\"Cambio\"\r\n />\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n this.handleBooleanChange(event, 'checkedA')}\r\n value='checkedA'\r\n />\r\n }\r\n label=\"Regalo\"\r\n />\r\n \r\n \r\n\r\n \r\n \r\n this.handleBooleanChange(event, 'checkedB')}\r\n value='checkedB'\r\n />\r\n }\r\n label=\"Tipo B\"\r\n />\r\n \r\n \r\n
\r\n
\r\n \r\n this.handleValueChange(event, 'iRecaudacion')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nEditCvTipoMaquina.propTypes = {\r\n cvTipoMaquina: PropTypes.object.isRequired,\r\n checkTipoMaquina: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n}\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCvTipoMaquina);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n marginBottom: 10,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '10px 25px 0',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n checkbox: {\r\n marginBottom: 0,\r\n marginTop: 10,\r\n },\r\n});\r\n\r\nclass EditVModeloMaquina extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.modelomaquina.id ? this.props.modelomaquina.id : uuidv4(),\r\n descr: this.props.modelomaquina.descr ? this.props.modelomaquina.descr : '',\r\n iTipoMaquina: this.props.modelomaquina.iTipoMaquina ? this.props.modelomaquina.iTipoMaquina : this.props.tiposMaquina[0].id,\r\n tieneContador: this.props.modelomaquina.tieneContador ? true : false,\r\n tipoRegalo: this.props.modelomaquina.tipoRegalo ? this.props.modelomaquina.tipoRegalo : 0,\r\n cvTipoMaquinaDescr: this.props.modelomaquina.cvTipoMaquinaDescr ? this.props.modelomaquina.cvTipoMaquinaDescr : this.props.tiposMaquina[0].descr,\r\n };\r\n\r\n };\r\n\r\n //handle texfield:\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n\r\n };\r\n\r\n\r\n //handle checkbox:\r\n handleBooleanChange = event => {\r\n this.setState({ tieneContador: event.target.checked });\r\n };\r\n\r\n\r\n //handle select:\r\n handleChangeSelect = event => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoMaquina: value,\r\n cvTipoMaquinaDescr: this.props.tiposMaquina.find(tz => tz.id === value).descr\r\n });\r\n };\r\n\r\n\r\n fillSelectOptionList = () => {\r\n\r\n return this.props.tiposMaquina.map(tz => {\r\n\r\n return (\r\n \r\n );\r\n\r\n })\r\n\r\n };\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'descr')}\r\n />\r\n \r\n\r\n \r\n \r\n Tipo Maquina\r\n \r\n this.handleChangeSelect(event)}\r\n name={'cvTipoMaquinaDescr'}\r\n >\r\n {this.fillSelectOptionList()}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n }\r\n label=\"Tiene Contador\"\r\n />\r\n \r\n\r\n\r\n \r\n this.handleValueChange(event, 'tipoRegalo')}\r\n />\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n };\r\n\r\n};\r\n\r\nEditVModeloMaquina.propTypes = {\r\n modelomaquina: PropTypes.object.isRequired,\r\n tiposMaquina: PropTypes.array.isRequired,\r\n checkVModeloMaquina: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditVModeloMaquina);","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport Input from '@material-ui/core/Input';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n marginLeft: 25,\r\n marginTop: 35,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 20px',\r\n marginBottom: 20,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditCentroUsuario extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.centro.id ? this.props.centro.id : uuidv4(),\r\n usuarioId: this.props.centro.usuarioId ? this.props.centro.usuarioId : this.props.usuarioId,\r\n iPerfil: this.props.centro.iPerfil ? this.props.centro.iPerfil : 1,\r\n centroId: this.props.centro.centroId ? this.props.centro.centroId : this.props.centros[0].id,\r\n \r\n };\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: parseInt(event.target.value) });\r\n };\r\n\r\n fillCentrosOptions = () => {\r\n return this.props.centros.map((c, i) => {\r\n return ()\r\n })\r\n }\r\n\r\n fillPerfilesOptions = () => {\r\n return this.props.perfiles.map((c, i) => {\r\n return ()\r\n })\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n\r\n Centro\r\n this.handleValueChange(event,'centroId')}\r\n name=\"centro\"\r\n input={}\r\n >\r\n {this.fillCentrosOptions()}\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n Perfil\r\n this.handleValueChange(event, 'iPerfil')}\r\n name=\"perfil\"\r\n input={}\r\n >\r\n {this.fillPerfilesOptions()}\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditCentroUsuario.propTypes = {\r\n centro: PropTypes.object.isRequired,\r\n usuarioId: PropTypes.number.isRequired,\r\n perfiles: PropTypes.object.isRequired,\r\n centros: PropTypes.object.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkCentro: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCentroUsuario);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass EditCajaCentro extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.cajaCentro.id ? this.props.cajaCentro.id : uuidv4(),\r\n description: this.props.cajaCentro.descr ? this.props.cajaCentro.descr : '',\r\n iTipoZona: this.props.cajaCentro.iTipoZona ? this.props.cajaCentro.iTipoZona : this.props.tiposZona[0].id,\r\n tipoZona: this.props.cajaCentro.tipoZona ? this.props.cajaCentro.tipoZona : this.props.tiposZona[0].descr,\r\n canInput: this.props.cajaCentro.canInput ? true : false\r\n\r\n };\r\n\r\n\r\n };\r\n\r\n\r\n fillTiposZona = () => {\r\n\r\n return this.props.tiposZona.map(tz => {\r\n\r\n return (\r\n \r\n );\r\n\r\n });\r\n\r\n };\r\n\r\n\r\n handleChange = event => {\r\n this.setState({ canInput: event.target.checked });\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n handleTipoZonaChange = (event) => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoZona: value,\r\n tipoZona: this.props.tiposZona.find(tz => tz.id === value).descr\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'description')}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n Tipos de Zona\r\n \r\n this.handleTipoZonaChange(event)}\r\n name=\"tipoZona\"\r\n >\r\n {this.fillTiposZona()}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n }\r\n label=\"¿Puede recibir ingresos?\"\r\n />\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditCajaCentro.propTypes = {\r\n cajaCentro: PropTypes.object.isRequired,\r\n tiposZona: PropTypes.array.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkCaja: PropTypes.func.isRequired,\r\n centroid: PropTypes.number.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCajaCentro);","import React from 'react';\r\nimport NumberFormat from 'react-number-format';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function FloatNumberFormatInput(props) {\r\n const { inputRef, decimal , onChange, ...other} = props;\r\n\r\n return (\r\n {\r\n onChange({\r\n target: {\r\n value: values.value,\r\n },\r\n });\r\n }}\r\n decimalSeparator=\",\"\r\n thousandSeparator=\".\"\r\n isNumericString={true}\r\n decimalScale={decimal?decimal:2}\r\n fixedDecimalScale={true}\r\n />\r\n );\r\n};\r\n\r\nFloatNumberFormatInput.propTypes = {\r\n inputRef: PropTypes.func.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n};","import React, { useState, useEffect } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\n//#region DATERPICKER\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n Day\r\n} from \"@material-ui/pickers\";\r\nimport \"date-fns\";\r\nimport esLocale from \"date-fns/locale/es\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\n//#endregion\r\n\r\n//#region CSS\r\nconst useStyles = makeStyles(theme => ({\r\n renderDay: {\r\n background: \"red\",\r\n color: \"white\",\r\n borderRadius: \"50%\",\r\n \"&:hover\": {\r\n background: '#8dbb35'\r\n }\r\n },\r\n message: {\r\n color: \" rgba(0, 0, 0, 0.54)\",\r\n margin: \" 0\",\r\n fontSize: \" 0.75rem\",\r\n marginTop: \" 3px\",\r\n textAlign: \" left\",\r\n fontWeight: \" 400\",\r\n lineHeight: \" 1.66\",\r\n letterSpacing: \" 0.03333em\"\r\n }\r\n}));\r\n//#endregion\r\n\r\nexport default function DatePicker({\r\n label,\r\n value,\r\n onChange,\r\n onBlur,\r\n onKeyPress,\r\n disabled,\r\n required,\r\n error,\r\n className,\r\n datesToEnabled,\r\n datesToRender,\r\n isSemanal\r\n}) {\r\n const classes = useStyles();\r\n const [daysEnabled, setDaysEnabled] = useState([]);\r\n const [errorDP, setErrorDP] = useState(error);\r\n const [daysRendered, setDaysRendered] = useState([]);\r\n\r\n //#region Functions\r\n const dateParseTime = dates => {\r\n if (dates) {\r\n return dates.map(d => {\r\n let time = d.getTime();\r\n return time;\r\n });\r\n } else {\r\n return [];\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Handle\r\n const onChangeDP = date => {\r\n if (date) {\r\n let dateWithoutTime = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n\r\n if (dateWithoutTime) {\r\n if (daysEnabled.length !== 0) {\r\n if (daysEnabled.includes(dateWithoutTime.getTime())) {\r\n setErrorDP(false);\r\n onChange(dateWithoutTime);\r\n } else {\r\n setErrorDP(true);\r\n onChange(null);\r\n }\r\n } else {\r\n if (!isNaN(dateWithoutTime.getTime())) {\r\n onChange(dateWithoutTime);\r\n setErrorDP(false);\r\n } else {\r\n setErrorDP(true);\r\n }\r\n }\r\n } else {\r\n setErrorDP(true);\r\n }\r\n }\r\n else {\r\n onChange(null);\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Display\r\n const disableDays = day => {\r\n if (day.getDate() === new Date(value).getDate()) {\r\n return false;\r\n }\r\n if (daysEnabled.length !== 0) {\r\n return !daysEnabled.includes(day.getTime());\r\n }\r\n return false;\r\n }\r\n\r\n function disableAllDayMinusMonday(date) {\r\n return date.getDay() !== 1;\r\n }\r\n\r\n const renderDays = (date, selectedDate, isInCurrentMonth, dayComponent) => {\r\n const isRendered = daysRendered.includes(date.getTime());\r\n\r\n return
\r\n
;\r\n }\r\n //#endregion\r\n\r\n useEffect(() => {\r\n setDaysEnabled(dateParseTime(datesToEnabled));\r\n setDaysRendered(dateParseTime(datesToRender));\r\n }, [datesToEnabled, datesToRender]);\r\n\r\n return (\r\n \r\n \r\n {errorDP ? \r\n Fecha no válida\r\n : null}\r\n \r\n );\r\n}\r\n\r\nDatePicker.propTypes = {\r\n value: PropTypes.string,\r\n onChange: PropTypes.func,\r\n onBlur: PropTypes.func,\r\n disabled: PropTypes.bool,\r\n required: PropTypes.bool,\r\n error: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//component:\r\nimport FloatNumberFormatInput from '../../../components/float_number_input_formatter';\r\nimport DatePicker from '../../../components/utils/DatePicker';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: 'white',\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass EditZonaIvaCentro extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.zonaiva.id ? this.props.zonaiva.id : uuidv4(),\r\n zonaIva: this.props.zonaiva.zonaIva\r\n ? this.props.zonaiva.zonaIva\r\n : this.props.tiposZonaIva[0].descr,\r\n iTipoZonaIva:\r\n this.props.zonaiva.iTipoZonaIva !== undefined\r\n ? this.props.zonaiva.iTipoZonaIva\r\n : this.props.tiposZonaIva[0].id,\r\n iva: this.props.zonaiva.iva ? this.props.zonaiva.iva : null,\r\n fIni: this.props.zonaiva.fIni\r\n ? this.props.zonaiva.fIni.slice(0, 10)\r\n : new Date().toJSON().slice(0, 10),\r\n fEnd: this.props.zonaiva.fEnd\r\n ? this.props.zonaiva.fEnd.slice(0, 10)\r\n : null,\r\n };\r\n }\r\n\r\n fillSelect = () => {\r\n return this.props.tiposZonaIva.map(tzi => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n handleChange = event => {\r\n this.setState({ iva: event.target.checked });\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n handleSelect = event => {\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n iTipoZonaIva: value,\r\n zonaIva: this.props.tiposZonaIva.find(tzi => tzi.id === value)\r\n .descr,\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n Tipo de Zona Iva\r\n \r\n this.handleSelect(event)}\r\n name=\"zonaIva\"\r\n >\r\n {this.fillSelect()}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n this.handleValueChange(event, 'iva')\r\n }\r\n />\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {/* this.handleValueChange(event, 'fIni')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fIni')\r\n }\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {/* this.handleValueChange(event, \"fEnd\")}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fEnd')\r\n }\r\n else {\r\n this.handleValueChangeDate(null, 'fEnd')\r\n }\r\n }}\r\n />\r\n \r\n \r\n
\r\n\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n {\r\n const tipoZona = {\r\n ...this.props.zonaiva,\r\n id: this.state.id,\r\n zonaIva: this.state.zonaIva,\r\n iTipoZonaIva: this.state.iTipoZonaIva,\r\n iva: this.state.iva ? this.state.iva : 0,\r\n fIni: this.state.fIni,\r\n fEnd: this.state.fEnd,\r\n centroId: this.props.centroid,\r\n };\r\n\r\n if (this.props.checkZonaIva(tipoZona)) {\r\n this.props.okHandler(tipoZona);\r\n this.props.hideDialog();\r\n }\r\n }}\r\n >\r\n Guardar\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nEditZonaIvaCentro.propTypes = {\r\n zonaiva: PropTypes.object.isRequired,\r\n tiposZonaIva: PropTypes.array.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkZonaIva: PropTypes.func.isRequired,\r\n centroid: PropTypes.number.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditZonaIvaCentro);\r\n","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//componente ui:\r\nimport DatePicker from '../../utils/DatePicker';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '30px 0 0 25px',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: 'white',\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass EditContabCentro extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.contabCentro.id\r\n ? this.props.contabCentro.id\r\n : uuidv4(),\r\n iTipoMaquina: this.props.contabCentro.iTipoMaquina\r\n ? this.props.contabCentro.iTipoMaquina\r\n : this.props.tiposMaquina[0].id,\r\n tipoMaquina: this.props.contabCentro.tipoMaquina\r\n ? this.props.contabCentro.tipoMaquina\r\n : this.props.tiposMaquina[0].descr,\r\n zonaIva: this.props.contabCentro.zonaIva\r\n ? this.props.contabCentro.zonaIva\r\n : this.props.tiposZonaIva[0].descr,\r\n iTipoZonaIva: this.props.contabCentro.iTipoZonaIva\r\n ? this.props.contabCentro.iTipoZonaIva\r\n : this.props.tiposZonaIva[0].id,\r\n ctaDebe: this.props.contabCentro.ctaDebe\r\n ? this.props.contabCentro.ctaDebe\r\n : '',\r\n ctaHaber: this.props.contabCentro.ctaHaber\r\n ? this.props.contabCentro.ctaHaber\r\n : '',\r\n ctaIva: this.props.contabCentro.ctaIva\r\n ? this.props.contabCentro.ctaIva\r\n : '',\r\n fIni: this.props.contabCentro.fIni\r\n ? this.props.contabCentro.fIni.slice(0, 10)\r\n : new Date().toJSON().slice(0, 10),\r\n fEnd: this.props.contabCentro.fEnd\r\n ? this.props.contabCentro.fEnd.slice(0, 10)\r\n : null,\r\n };\r\n }\r\n\r\n fillSelectMaquina = () =>\r\n this.props.tiposMaquina.map(t => (\r\n \r\n ));\r\n\r\n fillSelectIva = () =>\r\n this.props.tiposZonaIva.map(tzi => (\r\n \r\n ));\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n handleSelectChange = (event, field) => {\r\n const value = parseInt(event.target.value);\r\n\r\n if (field === 'tipoMaquina') {\r\n this.setState({\r\n iTipoMaquina: value,\r\n tipoMaquina: this.props.tiposMaquina.find(t => t.id === value)\r\n .descr,\r\n });\r\n } else if (field === 'zonaIva') {\r\n this.setState({\r\n iTipoZonaIva: value,\r\n zonaIva: this.props.tiposZonaIva.find(tzi => tzi.id === value)\r\n .descr,\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n Tipos de Maquina\r\n \r\n \r\n this.handleSelectChange(event, 'tipoMaquina')\r\n }\r\n name=\"tipoMaquina\"\r\n >\r\n {this.fillSelectMaquina()}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Tipo de Zona Iva\r\n \r\n \r\n this.handleSelectChange(event, 'zonaIva')\r\n }\r\n name=\"zonaIva\"\r\n >\r\n {this.fillSelectIva()}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n this.handleValueChange(event, 'ctaDebe')\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n this.handleValueChange(event, 'ctaHaber')\r\n }\r\n />\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n this.handleValueChange(event, 'ctaIva')\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {/* this.handleValueChange(event, 'fIni')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fIni')\r\n }\r\n }}\r\n />\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {/* this.handleValueChange(event, \"fEnd\")}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fEnd')\r\n }\r\n else{\r\n this.handleValueChangeDate(null, 'fEnd')\r\n }\r\n }}\r\n />\r\n \r\n \r\n
\r\n\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n {\r\n const contab = {\r\n id: this.state.id,\r\n iTipoMaquina: this.state.iTipoMaquina,\r\n tipoMaquina: this.state.tipoMaquina,\r\n zonaIva: this.state.zonaIva,\r\n iTipoZonaIva: this.state.iTipoZonaIva,\r\n ctaDebe: this.state.ctaDebe,\r\n ctaHaber: this.state.ctaHaber,\r\n ctaIva: this.state.ctaIva,\r\n fIni: this.state.fIni,\r\n fEnd: this.state.fEnd,\r\n centroId: this.props.centroid,\r\n };\r\n\r\n if (this.props.checkContab(contab)) {\r\n this.props.okHandler(contab);\r\n this.props.hideDialog();\r\n }\r\n }}\r\n >\r\n Guardar\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nEditContabCentro.propTypes = {\r\n contabCentro: PropTypes.object.isRequired,\r\n tiposMaquina: PropTypes.array.isRequired,\r\n tiposZonaIva: PropTypes.array.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkContab: PropTypes.func.isRequired,\r\n centroid: PropTypes.number.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditContabCentro);\r\n","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\n\r\nconst drawerWidth = 240;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: drawerWidth\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditZonaCentro extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.zonaCentro.id ? this.props.zonaCentro.id : uuidv4(),\r\n description: this.props.zonaCentro.descr ? this.props.zonaCentro.descr : '',\r\n iTipoZona: this.props.zonaCentro.iTipoZona !== undefined? this.props.zonaCentro.iTipoZona : this.props.tiposZona[0].id,\r\n tipoZona: this.props.zonaCentro.tipoZona ? this.props.zonaCentro.tipoZona : this.props.tiposZona[0].descr,\r\n activo: this.props.zonaCentro.activo ? true : false\r\n\r\n };\r\n };\r\n\r\n\r\n fillTiposZona = () => {\r\n\r\n return this.props.tiposZona.map(tz => {\r\n\r\n return (\r\n \r\n );\r\n\r\n });\r\n\r\n };\r\n\r\n\r\n handleChange = event => {\r\n this.setState({ activo: event.target.checked });\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n handleTipoZonaChange = (event) => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoZona: value,\r\n tipoZona: this.props.tiposZona.find(tz => tz.id === value).descr\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'description')}\r\n />\r\n \r\n\r\n \r\n \r\n Tipos de Zona\r\n \r\n this.handleTipoZonaChange(event)}\r\n name=\"tipoZona\"\r\n >\r\n {this.fillTiposZona()}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n }\r\n label=\"Activo\"\r\n />\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditZonaCentro.propTypes = {\r\n zonaCentro: PropTypes.object.isRequired,\r\n tiposZona: PropTypes.array.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkZona: PropTypes.func.isRequired,\r\n centroid: PropTypes.number.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditZonaCentro);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass EditCentroCentro extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.centroCentro.id ? this.props.centroCentro.id : uuidv4(),\r\n hijo: this.props.centroCentro.hijo ? this.props.centroCentro.hijo : this.props.centros[0].id,\r\n //centroName: this.props.centroCentro.tipoZona ? this.props.centroCentro.tipoZona : this.props.centros[0].descr,\r\n };\r\n };\r\n\r\n\r\n fillCentros = () => {\r\n\r\n return this.props.centros.filter(c => c.isGroup === false).map(c => {\r\n\r\n return (\r\n \r\n );\r\n\r\n });\r\n\r\n };\r\n\r\n handleCentroChange = (event) => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n hijo: value,\r\n //centroName: this.props.tiposZona.find(tz => tz.id === value).descr\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n Centro\r\n \r\n this.handleCentroChange(event)}\r\n name=\"centro\"\r\n >\r\n {this.fillCentros()}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditCentroCentro.propTypes = {\r\n centroCentro: PropTypes.object.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkCentro: PropTypes.func.isRequired,\r\n centroid: PropTypes.number.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCentroCentro);","import axios from 'axios';\r\nimport * as config from './constants/configuration';\r\n\r\nexport function getData(url, thenHandler, errorHandler, user, absoluteURL = false) {\r\n let token = user ? user.access_token : \"\";\r\n\r\n const callURL = absoluteURL ? url : config.API_URI() + url;\r\n\r\n return axios.get(callURL,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n }\r\n ).then((response) => {\r\n thenHandler(response);\r\n }).catch((error) => {\r\n errorHandler(error);\r\n });\r\n}\r\n\r\nexport function postData(url, thenHandler, errorHandler, data, user, absoluteURL = false) {\r\n let token = user ? user.access_token : \"\";\r\n \r\n const callURL = absoluteURL ? url : config.API_URI() + url;\r\n\r\n return axios.post(callURL, data,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n }\r\n ).then((response) => {\r\n thenHandler(response);\r\n }).catch((error) => {\r\n errorHandler(error);\r\n });\r\n}\r\n\r\nexport function putData(url, thenHandler, errorHandler, data, user, absoluteURL = false) {\r\n let token = user ? user.access_token : \"\";\r\n\r\n const callURL = absoluteURL ? url : config.API_URI() + url;\r\n\r\n return axios.put(callURL, data,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n }\r\n ).then((response) => {\r\n thenHandler(response);\r\n }).catch((error) => {\r\n errorHandler(error);\r\n });\r\n}\r\n\r\nexport function deleteData(url, thenHandler, errorHandler, user, absoluteURL = false) {\r\n let token = user ? user.access_token : \"\";\r\n\r\n const callURL = absoluteURL ? url : config.API_URI() + url;\r\n\r\n return axios.delete(callURL,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n }\r\n ).then((response) => {\r\n thenHandler(response);\r\n }).catch((error) => {\r\n errorHandler(error);\r\n });\r\n}\r\n\r\nexport function createReport(data, format, user, suffix) {\r\n\r\n const url = suffix ? config.REPORTS_API_URI() + suffix : config.REPORTS_API_URI();\r\n\r\n let token = user ? user.access_token : \"\";\r\n return axios.post(url + '?type=' + format, data,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n },\r\n responseType: 'blob'\r\n }\r\n );\r\n\r\n}\r\n\r\n\r\nexport function getTextFile(url, thenHandler, errorHandler, endHandler, filename, user) {\r\n \r\n let token = user ? user.access_token : \"\";\r\n return axios.get(config.API_URI() + url,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n },\r\n responseType: 'blob'\r\n }\r\n ).then((response) => {\r\n if (thenHandler === undefined) {\r\n const url = window.URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', filename);\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n else{\r\n thenHandler(response);\r\n }\r\n endHandler();\r\n\r\n }).catch((error) => {\r\n errorHandler(error);\r\n endHandler();\r\n });\r\n\r\n}\r\n\r\nexport function CHANGEVERSIONBUILD(user) {\r\n let pjson = require(\"../package.json\");\r\n getData('Global/3', response => {\r\n if (pjson.version !== response.data) {\r\n window.location.reload(true);\r\n }\r\n }, undefined, user);\r\n }\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\nimport DatePicker from '../../utils/DatePicker';\r\nimport { postData } from '../../../dataLib';\r\n\r\nimport FloatNumberFormatInput from '../../float_number_input_formatter';\r\n\r\nconst drawerWidth = 240;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: drawerWidth\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n }, \r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n});\r\n\r\nclass EditFondo extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n valor: 0.0,\r\n fecha: new Date().toJSON().slice(0, 10),\r\n };\r\n };\r\n\r\n updateFondo = () => {\r\n\r\n var url = 'DEFondos/maestro?centro_id=' + this.props.centroid;\r\n url += '&valor=' + this.state.valor;\r\n url += '&fecha=' + this.state.fecha;\r\n postData(\r\n url,\r\n () => {\r\n this.props.hideDialog();\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'fondo actualizado'\r\n },'fondo_actualizado', false, 'sm');\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'error actualizando fondo'\r\n }, 'fondo_actualizado_error', false, 'sm');\r\n },\r\n { },\r\n this.props.user\r\n );\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n\r\n\r\n \r\n \r\n this.handleValueChange(event, 'valor')}\r\n />\r\n \r\n \r\n\r\n\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fecha')\r\n }\r\n }}\r\n />\r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditFondo.propTypes = {\r\n centroid: PropTypes.number.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditFondo);","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//component:\r\nimport FloatNumberFormatInput from '../../../components/float_number_input_formatter';\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport Input from '@material-ui/core/Input';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n marginLeft: 25,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 20px',\r\n marginBottom: 20,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n }\r\n});\r\n\r\nclass EditContadorMaquina extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.contador.id ? this.props.contador.id : uuidv4(),\r\n iTipo: this.props.contador.iTipo ? this.props.contador.iTipo : 0,\r\n tipoContador: this.props.contador.tipoContador ? this.props.contador.tipoContador : 'Euros',\r\n maquina: this.props.contador.maquina ? this.props.contador.maquina : null,\r\n maquinaId: this.props.contador.maquinaId ? this.props.contador.maquinaId : this.props.maquinaId,\r\n dcLectura: this.props.contador.dcLectura ? this.props.contador.dcLectura : [],\r\n numOrden: this.props.contador.numOrden ? this.props.contador.numOrden : 1,\r\n ultMultiplicador: this.props.contador.ultMultiplicador ? this.props.contador.ultMultiplicador : 1.0,\r\n ultPrecio: this.props.contador.ultPrecio ? this.props.contador.ultPrecio : 1.0,\r\n activa: this.props.contador.activa ? this.props.contador.activa : false,\r\n anulado: this.props.contador.anulado ? this.props.contador.anulado : false,\r\n contadorCompra: this.props.contador.contadorCompra ? this.props.contador.contadorCompra : 0,\r\n contadorCompraSalidas: this.props.contador.contadorCompraSalidas ? this.props.contador.contadorCompraSalidas : 0,\r\n redsysMachineId: this.props.contador.redsysMachineId,\r\n\r\n };\r\n\r\n };\r\n\r\n //select:\r\n handleSelectChange = e => {\r\n const id = parseInt(e.target.value) - 1;\r\n const tipo = ['Euros', 'Tokens', 'Tickets', 'Cambio', 'Regalos', 'VISAs'];\r\n this.setState({ ...this.state, iTipo: id, tipoContador: tipo[id] });\r\n };\r\n\r\n //textfield\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n\r\n //checkbox:\r\n handleBooleanChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.checked });\r\n };\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n Tipo Contador\r\n this.handleSelectChange(event)}\r\n name=\"iTipo\"\r\n input={}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n this.handleValueChange(event, 'numOrden')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n this.handleValueChange(event, 'ultMultiplicador')}\r\n />\r\n \r\n\r\n \r\n\r\n this.handleValueChange(event, 'ultPrecio')}\r\n />\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n\r\n this.handleValueChange(event, 'contadorCompra')}\r\n />\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n\r\n this.handleValueChange(event, 'redsysMachineId')}\r\n />\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n this.handleBooleanChange(event, 'activa')}\r\n value=\"Activa\"\r\n color=\"primary\"\r\n />\r\n }\r\n label=\"Activa\"\r\n />\r\n \r\n\r\n \r\n this.handleBooleanChange(event, 'anulado')}\r\n value=\"Anulado\"\r\n color=\"primary\"\r\n />\r\n }\r\n label=\"Anulado\"\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditContadorMaquina.propTypes = {\r\n contador: PropTypes.object.isRequired,\r\n maquinaId: PropTypes.number.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkContador: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditContadorMaquina);","import React from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//component ui:\r\nimport DatePicker from '../../utils/DatePicker';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: '100%',\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n textArea: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n width: 505,\r\n height: 72,\r\n },\r\n buttonsContainer: {\r\n marginLeft: 25,\r\n marginTop: 35,\r\n },\r\n divider: {\r\n margin: 20,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 20px',\r\n marginBottom: 20,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditIncidenciaMaquina extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.incidencia.id ? this.props.incidencia.id : uuidv4(),\r\n maquinaId: this.props.incidencia.maquinaId\r\n ? this.props.incidencia.maquinaId\r\n : this.props.maquinaId,\r\n fecha: this.props.incidencia.fecha\r\n ? this.props.incidencia.fecha.slice(0, 10)\r\n : new Date().toJSON().slice(0, 10),\r\n incidencia: this.props.incidencia.incidencia\r\n ? this.props.incidencia.incidencia\r\n : '',\r\n usuarioIncidencia: this.props.incidencia.usuarioIncidencia\r\n ? this.props.incidencia.usuarioIncidencia\r\n : '',\r\n fechaDiagnostico: this.props.incidencia.fechaDiagnostico\r\n ? this.props.incidencia.fechaDiagnostico.slice(0, 10)\r\n : new Date().toJSON().slice(0, 10),\r\n diagnostico: this.props.incidencia.diagnostico\r\n ? this.props.incidencia.diagnostico\r\n : '',\r\n usuarioDiagnostico: this.props.incidencia.usuarioDiagnostico\r\n ? this.props.incidencia.usuarioDiagnostico\r\n : '',\r\n fechaResolucion: this.props.incidencia.fechaResolucion\r\n ? this.props.incidencia.fechaResolucion.slice(0, 10)\r\n : new Date().toJSON().slice(0, 10),\r\n resolucion: this.props.incidencia.resolucion\r\n ? this.props.incidencia.resolucion\r\n : '',\r\n usuarioResolucion: this.props.incidencia.usuarioResolucion\r\n ? this.props.incidencia.usuarioResolucion\r\n : '',\r\n maquina: this.props.incidencia.maquina\r\n ? this.props.incidencia.maquina\r\n : null,\r\n };\r\n }\r\n\r\n //textfield\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n //checkbox:\r\n handleBooleanChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.checked });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {/* this.handleValueChange(event, 'fecha')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fecha')\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n this.handleValueChange(\r\n event,\r\n 'usuarioIncidencia',\r\n )\r\n }\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'incidencia')\r\n }\r\n />\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n {/* this.handleValueChange(event, 'fechaDiagnostico')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChange(\r\n d.toISOString().slice(0, 10),\r\n 'fechaDiagnostico',\r\n )\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n this.handleValueChange(\r\n event,\r\n 'usuarioDiagnostico',\r\n )\r\n }\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'diagnostico')\r\n }\r\n />\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n {/* this.handleValueChange(event, 'fechaResolucion')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChange(d.toISOString().slice(0, 10), 'fechaResolucion')\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n this.handleValueChange(\r\n event,\r\n 'usuarioResolucion',\r\n )\r\n }\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'resolucion')\r\n }\r\n />\r\n \r\n
\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n {\r\n const incidencia = {\r\n id: this.state.id,\r\n maquinaId: this.state.maquinaId,\r\n fecha: this.state.fecha,\r\n incidencia: this.state.incidencia,\r\n usuarioIncidencia: this.state.usuarioIncidencia,\r\n fechaDiagnostico: this.state.fechaDiagnostico,\r\n diagnostico: this.state.diagnostico,\r\n usuarioDiagnostico: this.state\r\n .usuarioDiagnostico,\r\n fechaResolucion: this.state.fechaResolucion,\r\n resolucion: this.state.resolucion,\r\n usuarioResolucion: this.state.usuarioResolucion,\r\n maquina: this.state.maquina,\r\n };\r\n\r\n if (this.props.checkIncidenciaFields(incidencia)) {\r\n this.props.okHandler(incidencia);\r\n this.props.hideDialog();\r\n }\r\n }}\r\n >\r\n Guardar\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nEditIncidenciaMaquina.propTypes = {\r\n incidencia: PropTypes.object.isRequired,\r\n maquinaId: PropTypes.number.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkIncidenciaFields: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditIncidenciaMaquina);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//material ui:\r\nimport DatePicker from '../../utils/DatePicker';\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n marginLeft: 25,\r\n marginTop: 35,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 20px',\r\n marginBottom: 20,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditLicenciaMaquina extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.licencia.id ? this.props.licencia.id : uuidv4(),\r\n maquinaId: this.props.licencia.maquinaId\r\n ? this.props.licencia.maquinaId\r\n : this.props.maquinaId,\r\n maquina: this.props.licencia.maquina\r\n ? this.props.licencia.maquina\r\n : null,\r\n licencia: this.props.licencia.licencia\r\n ? this.props.licencia.licencia\r\n : '',\r\n fechaInicio: this.props.licencia.fechaInicio\r\n ? this.props.licencia.fechaInicio.slice(0, 10)\r\n : new Date().toJSON().slice(0, 10),\r\n fechaFin: this.props.licencia.fechaFin\r\n ? this.props.licencia.fechaFin.slice(0, 10)\r\n : new Date().toJSON().slice(0, 10),\r\n };\r\n }\r\n\r\n //textfield\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'licencia')\r\n }\r\n />\r\n \r\n\r\n \r\n {/* this.handleValueChange(event, 'fechaInicio')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fechaInicio')\r\n }\r\n }}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n {/* this.handleValueChange(event, 'fechaFin')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChange(d.toISOString().slice(0, 10), 'fechaFin')\r\n }\r\n }}\r\n />\r\n \r\n
\r\n\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n {\r\n const licencia = {\r\n id: this.state.id,\r\n maquinaId: this.state.maquinaId,\r\n maquina: this.state.maquina,\r\n licencia: this.state.licencia,\r\n fechaInicio: this.state.fechaInicio,\r\n fechaFin: this.state.fechaFin,\r\n };\r\n\r\n if (this.props.checkLicencia(licencia)) {\r\n this.props.okHandler(licencia);\r\n this.props.hideDialog();\r\n }\r\n }}\r\n >\r\n Guardar\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nEditLicenciaMaquina.propTypes = {\r\n licencia: PropTypes.object.isRequired,\r\n maquinaId: PropTypes.number.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkLicencia: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditLicenciaMaquina);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//component ui:\r\nimport DatePicker from '../../utils/DatePicker';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n marginLeft: 25,\r\n marginTop: 35,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 20px',\r\n marginBottom: 20,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditItvMaquina extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.itv.id ? this.props.itv.id : uuidv4(),\r\n fechaCaducidad: this.props.itv.fechaCaducidad\r\n ? this.props.itv.fechaCaducidad.slice(0, 10)\r\n : new Date().toJSON().slice(0, 10),\r\n maquinaId: this.props.itv.maquinaId\r\n ? this.props.itv.maquinaId\r\n : this.props.maquinaId,\r\n maquina: this.props.itv.maquina ? this.props.itv.maquina : null,\r\n };\r\n }\r\n\r\n //textfield\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {/* this.handleValueChange(event, 'fechaCaducidad')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(\r\n d.toISOString().slice(0, 10),\r\n 'fechaCaducidad',\r\n )\r\n }\r\n }}\r\n />\r\n \r\n
\r\n\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n {\r\n const itv = {\r\n id: this.state.id,\r\n fechaCaducidad: this.state.fechaCaducidad,\r\n maquinaId: this.state.maquinaId,\r\n maquina: this.state.maquina,\r\n };\r\n\r\n if (this.props.checkItv(itv)) {\r\n this.props.okHandler(itv);\r\n this.props.hideDialog();\r\n }\r\n }}\r\n >\r\n Guardar\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nEditItvMaquina.propTypes = {\r\n itv: PropTypes.object.isRequired,\r\n maquinaId: PropTypes.number.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkItv: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditItvMaquina);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//component ui:\r\nimport DatePicker from '../../utils/DatePicker';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport Input from '@material-ui/core/Input';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n marginLeft: 25,\r\n marginTop: 35,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 20px',\r\n marginBottom: 20,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditCentroMaquina extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.centro.id ? this.props.centro.id : uuidv4(),\r\n centro: this.props.centro.centro\r\n ? this.props.centro.centro\r\n : this.props.centros[0].descr,\r\n centroId: this.props.centro.centroId\r\n ? this.props.centro.centroId\r\n : this.props.centros[0].id,\r\n fIni: this.props.centro.fIni\r\n ? this.props.centro.fIni.slice(0, 10)\r\n : new Date().toJSON().slice(0, 10),\r\n fEnd: this.props.centro.fEnd\r\n ? this.props.centro.fEnd.slice(0, 10)\r\n : null,\r\n maquinaId: this.props.centro.maquinaId\r\n ? this.props.centro.maquinaId\r\n : this.props.maquinaId,\r\n };\r\n }\r\n\r\n //textfield\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n handleSelectChange = event => {\r\n const descr = this.props.centros.find(c => c.id === parseInt(event.target.value)).centro;\r\n this.setState({\r\n ...this.state,\r\n centro: descr,\r\n centroId: event.target.value,\r\n });\r\n };\r\n\r\n fillCentrosOptions = () => {\r\n return this.props.centros\r\n .filter(c => c.isGroup === false)\r\n .map((c, i) => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n Centro\r\n \r\n this.handleSelectChange(event)}\r\n name=\"centro\"\r\n input={}\r\n >\r\n {this.fillCentrosOptions()}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fIni')\r\n }\r\n }}\r\n />\r\n \r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fEnd')\r\n }\r\n else {\r\n this.handleValueChangeDate(null, 'fEnd')\r\n }\r\n }}\r\n />\r\n \r\n
\r\n\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n {\r\n const centro = {\r\n id: this.state.id,\r\n fEnd: this.state.fEnd,\r\n fIni: this.state.fIni,\r\n maquinaId: this.state.maquinaId,\r\n centro: this.state.centro,\r\n centroId: this.state.centroId,\r\n };\r\n\r\n if (this.props.checkCentro(centro)) {\r\n this.props.okHandler(centro);\r\n this.props.hideDialog();\r\n }\r\n }}\r\n >\r\n Guardar\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nEditCentroMaquina.propTypes = {\r\n itv: PropTypes.object.isRequired,\r\n maquinaId: PropTypes.number.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkItv: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCentroMaquina);\r\n","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditZonaTipoPartida extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.tipopartida.id ? this.props.tipopartida.id : uuidv4(),\r\n elemId: this.props.elemNoCajaId ? this.props.elemNoCajaId : 0,\r\n descr: this.props.tipopartida.descr ? this.props.tipopartida.descr : this.props.alltipospartida[0].descr,\r\n activo: this.props.tipopartida.activo ? true : false,\r\n iTipoPartida: this.props.tipopartida.iTipoPartida ? this.props.tipopartida.iTipoPartida : this.props.alltipospartida[0].id,\r\n\r\n };\r\n };\r\n\r\n\r\n fillTiposPartida = () => {\r\n\r\n return this.props.alltipospartida.map(tp => {\r\n\r\n return (\r\n \r\n );\r\n\r\n })\r\n };\r\n\r\n\r\n handleCheckboxChange = event => {\r\n this.setState({ activo: event.target.checked });\r\n };\r\n\r\n\r\n handleChangeTipoPartidaSelect = (event) => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoPartida: value,\r\n descr: this.props.alltipospartida.find(tp => tp.id === value).descr\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n Tipo Partida\r\n \r\n this.handleChangeTipoPartidaSelect(event)}\r\n name=\"iTipoPartida\"\r\n >\r\n {this.fillTiposPartida()}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n }\r\n label=\"Activo\"\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditZonaTipoPartida.propTypes = {\r\n tipopartida: PropTypes.object.isRequired,\r\n tiposPartida: PropTypes.array.isRequired,\r\n alltipospartida: PropTypes.array.isRequired,\r\n elemNoCajaId: PropTypes.number.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkTipoPartida: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditZonaTipoPartida);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditZonaProduct extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.producto.id ? this.props.producto.id : uuidv4(),\r\n elemId: this.props.elemNoCajaId ? this.props.elemNoCajaId : 0,\r\n descr: this.props.producto.descr ? this.props.producto.descr : this.props.allproductos[0].descr,\r\n ctaDebe: this.props.producto.ctaDebe ? this.props.producto.ctaDebe : '',\r\n ctaHaber: this.props.producto.ctaHaber ? this.props.producto.ctaHaber : '',\r\n ctaIva: this.props.producto.ctaIva ? this.props.producto.ctaIva : '',\r\n iTipoArticulo: this.props.producto.iTipoArticulo ? this.props.producto.iTipoArticulo : this.props.allproductos[0].id,\r\n activo: this.props.producto.activo ? true : false,\r\n iTipoZonaIva: this.props.producto.iTipoZonaIva ? this.props.producto.iTipoZonaIva : null,\r\n tipoZonaIva: this.props.producto.tipoZonaIva ? this.props.producto.tipoZonaIva : ''\r\n\r\n };\r\n };\r\n\r\n\r\n\r\n\r\n //get textfields changes:\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n //get select changes:\r\n handleChangeTipoPartidaSelect = (event) => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoArticulo: value,\r\n descr: this.props.allproductos.find(p => p.id === value).descr\r\n });\r\n };\r\n\r\n handleChangeTipoZonaIVASelect = (event) => {\r\n\r\n const value = parseInt(event.target.value);\r\n const tipoZonaIva = this.props.tipoZonaIva.tiposzona.find(p => p.id === value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoZonaIva: value,\r\n tipoZonaIva: tipoZonaIva?tipoZonaIva.descr:''\r\n });\r\n };\r\n\r\n compareDescr = (a, b) => {\r\n if (a.descr < b.descr)\r\n return -1;\r\n if (a.descr > b.descr)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n fillTiposProductos = () => {\r\n\r\n return [...this.props.allproductos].sort(this.compareDescr).filter(p => p.isMovCaja === 0).map(p => {\r\n\r\n return (\r\n \r\n );\r\n\r\n })\r\n };\r\n\r\n //get checkbox changes:\r\n handleCheckboxChange = event => {\r\n this.setState({ activo: event.target.checked });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n console.log(this.state.iTipoZonaIva);\r\n\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n \r\n Tipo Producto\r\n \r\n this.handleChangeTipoPartidaSelect(event)}\r\n name=\"iTipoArticulo\"\r\n >\r\n {this.fillTiposProductos()}\r\n \r\n \r\n\r\n \r\n\r\n this.handleValueChange(event, 'ctaDebe')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n this.handleValueChange(event, 'ctaHaber')}\r\n />\r\n \r\n\r\n \r\n\r\n this.handleValueChange(event, 'ctaIva')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Zona Tipo IVA\r\n \r\n this.handleChangeTipoZonaIVASelect(event)}\r\n >\r\n \r\n {this.props.tipoZonaIva.tiposzona.map(l => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n }\r\n label=\"Activo\"\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditZonaProduct.propTypes = {\r\n producto: PropTypes.object.isRequired,\r\n zonaProductos: PropTypes.array.isRequired,\r\n allproductos: PropTypes.array.isRequired,\r\n tipoZonaIva: PropTypes.array.isRequired,\r\n elemNoCajaId: PropTypes.number.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkProducto: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditZonaProduct);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditZonaProductCaja extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.producto.id ? this.props.producto.id : uuidv4(),\r\n elemId: this.props.elemCajaId ? this.props.elemCajaId : 0,\r\n descr: this.props.producto.descr ? this.props.producto.descr : this.props.allproductos[0].descr,\r\n ctaDebe: this.props.producto.ctaDebe ? this.props.producto.ctaDebe : '',\r\n ctaHaber: this.props.producto.ctaHaber ? this.props.producto.ctaHaber : '',\r\n ctaIva: this.props.producto.ctaIva ? this.props.producto.ctaIva : '',\r\n iTipoArticulo: this.props.producto.iTipoArticulo ? this.props.producto.iTipoArticulo : this.props.allproductos[0].id,\r\n activo: this.props.producto.activo ? true : false,\r\n iTipoZonaIva: this.props.producto.iTipoZonaIva ? this.props.producto.iTipoZonaIva : null,\r\n tipoZonaIva: this.props.producto.tipoZonaIva ? this.props.producto.tipoZonaIva : ''\r\n\r\n };\r\n\r\n };\r\n\r\n\r\n\r\n\r\n //get textfields changes:\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n //get select changes:\r\n handleChangeTipoPartidaSelect = (event) => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoArticulo: value,\r\n descr: this.props.allproductos.find(p => p.id === value).descr\r\n });\r\n };\r\n\r\n handleChangeTipoZonaIVASelect = (event) => {\r\n\r\n const value = parseInt(event.target.value);\r\n const tipoZonaIva = this.props.tipoZonaIva.tiposzona.find(p => p.id === value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoZonaIva: value,\r\n tipoZonaIva: tipoZonaIva?tipoZonaIva.descr:''\r\n });\r\n };\r\n\r\n compareDescr = (a, b) => {\r\n if (a.descr < b.descr)\r\n return -1;\r\n if (a.descr > b.descr)\r\n return 1;\r\n return 0;\r\n };\r\n\r\n fillTiposProductos = () => {\r\n\r\n\r\n return [...this.props.allproductos].sort(this.compareDescr).filter(p => p.isMovCaja === 1).map(p => {\r\n\r\n return (\r\n \r\n );\r\n\r\n })\r\n };\r\n\r\n //get checkbox changes:\r\n handleCheckboxChange = event => {\r\n this.setState({ activo: event.target.checked });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n \r\n Tipo Cobro\r\n \r\n this.handleChangeTipoPartidaSelect(event)}\r\n name=\"iTipoArticulo\"\r\n >\r\n {this.fillTiposProductos()}\r\n \r\n \r\n\r\n \r\n\r\n this.handleValueChange(event, 'ctaDebe')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n this.handleValueChange(event, 'ctaHaber')}\r\n />\r\n \r\n\r\n \r\n\r\n this.handleValueChange(event, 'ctaIva')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Zona Tipo IVA\r\n \r\n this.handleChangeTipoZonaIVASelect(event)}\r\n >\r\n \r\n {this.props.tipoZonaIva.tiposzona.map(l => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n }\r\n label=\"Activo\"\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditZonaProductCaja.propTypes = {\r\n producto: PropTypes.object.isRequired,\r\n zonaProductosCaja: PropTypes.object.isRequired,\r\n allproductos: PropTypes.array.isRequired,\r\n tipoZonaIva: PropTypes.array.isRequired,\r\n elemCajaId: PropTypes.number.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkProductoCaja: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditZonaProductCaja);","import axios from 'axios';\r\nimport { getData, postData, putData } from './redux_data';\r\nimport {\r\n GET_CENTROS, GET_CENTRO, MODIFY_FIELD_DETALLE_CENTRO, MODIFY_FIELDS_CENTRO_DIALOG, UPDATE_CENTRO, COPY_CENTRO, CREATE_CENTRO, DELETE_CENTRO,//centros\r\n OPEN_DIALOG\r\n} from '../constants/action_types';\r\n\r\nimport * as config from '../constants/configuration';\r\n\r\n\r\n\r\nexport function getAllCentros() {\r\n return getData('vcentros?includeGroups=true', GET_CENTROS);\r\n}\r\n\r\nexport function copyCentroDB(id, newName, euros, tokens) {\r\n\r\n return postData('centros/?source=' + id, COPY_CENTRO, { descr: newName, fondoEuros: euros, fondoTokens: tokens }, undefined, undefined);\r\n\r\n};\r\n\r\nexport function createNewCentroDB(newName, empresa, grupo, thenHandler, euros, tokens) {\r\n\r\n return postData('centros', CREATE_CENTRO, { descr: newName, empresaId: empresa, isGroup: grupo, fondoEuros: euros, fondoTokens: tokens }, undefined, thenHandler);\r\n\r\n};\r\n\r\nexport function updateCentroDB(centro, id, thenHandler) {\r\n\r\n return putData('centros', UPDATE_CENTRO, centro, id, 'Datos del centro guardados', thenHandler);\r\n\r\n};\r\n\r\nexport function deleteCentroDB(id) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_CENTRO, payload: id })\r\n let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n axios.delete(config.API_URI() + 'centros/' + id,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n }\r\n ).then((response) => {\r\n dispatch({ type: DELETE_CENTRO + \"_SUCCESS\", payload: response })\r\n }).catch((error) => {\r\n if (error.response.status === 409) {\r\n dispatch({\r\n type: OPEN_DIALOG,\r\n modalType: 'SimpleMessage',\r\n modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n dialogid: 'error_delete_centro_' + id\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: OPEN_DIALOG,\r\n modalType: 'SimpleMessage',\r\n modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n dialogid: 'error_delete_centro_' + id\r\n });\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport function getCentroDetalle(id) {\r\n return getData('centros/' + id, GET_CENTRO);\r\n};\r\n\r\nexport function modifyFieldDetalleCentro(field, value) {\r\n return dispatch => {\r\n dispatch({ type: MODIFY_FIELD_DETALLE_CENTRO, payload: [field, value] })\r\n };\r\n};\r\n\r\nexport function modifyFieldsCentroDialog(details) {\r\n return dispatch => {\r\n dispatch({ type: MODIFY_FIELDS_CENTRO_DIALOG, payload: details })\r\n };\r\n};","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\n\r\n//component:\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\nimport IntNumberFormatInput from '../../components/int_number_input_formatter';\r\n\r\n\r\nimport {\r\n navigate, hideDialog\r\n} from '../../actions';\r\n\r\nimport {\r\n copyCentroDB, createNewCentroDB\r\n} from '../../actions/centro_actions';\r\n\r\nconst styles = theme => ({\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n marginTop: 15,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n formSelect: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 0 5px 20px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n label: {\r\n fontSize: 15,\r\n fontWeight: '400',\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginRight: 20,\r\n },\r\n formSelectRadio: {\r\n display: 'flex',\r\n minWidth: 120,\r\n height: 50,\r\n width: 185,\r\n },\r\n buttonsBottom: {\r\n marginTop: 25,\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n radiobuttonLabel: {\r\n display: 'flex',\r\n marginTop: 20\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n }\r\n});\r\n\r\nclass CentroNew extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n nombre: '',\r\n type: 'blank',\r\n centro_copia: -1,\r\n empresa: this.props.empresas[0].id,\r\n grupo: false,\r\n fondoTokens: 0,\r\n fondoEuros: 0\r\n }\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n \r\n if(field === 'centro_copia'){\r\n var centro = this.props.centros.find(c => c.id === event.target.value);\r\n this.setState({ ...this.state, centro_copia: event.target.value, fondoTokens: centro.fondoTokens, fondoEuros: centro.fondoEuros });\r\n }\r\n else{\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n }\r\n }\r\n\r\n createCopySelectOptions = () => {\r\n return this.props.centros.map((centro, index) => {\r\n return (\r\n {centro.centro}\r\n );\r\n })\r\n }\r\n\r\n createEmpresaSelectOptions = () => {\r\n\r\n return this.props.empresas.map((emp, index) => {\r\n return (\r\n {emp.empresa1}\r\n );\r\n })\r\n }\r\n\r\n handleGrupoChange = (event) => {\r\n let type = this.state.type;\r\n if(event.target.checked) type = 'blank';\r\n this.setState({ ...this.state, grupo: event.target.checked, type:type });\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n this.handleValueChange(event, 'nombre')}\r\n />\r\n \r\n\r\n\r\n \r\n Empresa: \r\n this.handleValueChange(event, 'empresa')}\r\n name=\"empresa\"\r\n disabled={this.state.type === 'copy'}\r\n >\r\n {this.createEmpresaSelectOptions()}\r\n \r\n \r\n
\r\n\r\n
\r\n {/* */}\r\n this.handleValueChange(event, 'type')}\r\n >\r\n } label=\"Centro en blanco\" />\r\n } disabled={this.state.grupo} label={\r\n
\r\n

Centro similar a:

\r\n \r\n this.handleValueChange(event, 'centro_copia')}\r\n name=\"centro_copia\"\r\n >\r\n {this.createCopySelectOptions()}\r\n \r\n \r\n
\r\n }\r\n />\r\n \r\n {/*
*/}\r\n
\r\n
\r\n \r\n this.handleValueChange(event, 'fondoEuros')}\r\n />\r\n \r\n\r\n\r\n \r\n this.handleValueChange(event, 'fondoTokens')}\r\n />\r\n \r\n
\r\n\r\n \r\n \r\n }\r\n label=\"Grupo\"\r\n />\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nCentroNew.propTypes = {\r\n //state\r\n centros: PropTypes.array.isRequired,\r\n empresas: PropTypes.array.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n copyCentroDB: PropTypes.func.isRequired,\r\n createNewCentroDB: PropTypes.func.isRequired,\r\n\r\n //parameters\r\n nombre: PropTypes.string,\r\n direccion1: PropTypes.string,\r\n direccion2: PropTypes.string,\r\n iDiaCierre: PropTypes.number,\r\n canal: PropTypes.number,\r\n empresa: PropTypes.number,\r\n id: PropTypes.number,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centros: state.centros.centros,\r\n empresas: state.empresas.empresas,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate: navigate,\r\n hideDialog: hideDialog,\r\n copyCentroDB: copyCentroDB,\r\n createNewCentroDB: createNewCentroDB\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CentroNew));","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n\r\n//components:\r\nimport FloatNumberFormatInput from '../../../components/float_number_input_formatter';\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n chkControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 20px',\r\n minWidth: 100,\r\n height: 72,\r\n width: 100,\r\n },\r\n descrControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 270,\r\n height: 72,\r\n width: 270,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass MoreDetailsCentro extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n telfCentro: '',\r\n mobilCentro: '',\r\n gerente: '',\r\n aforo: '',\r\n alias: '',\r\n ctaDescuadre: '',\r\n ctaFondo: '',\r\n ctaTotalsemanal: '',\r\n emailCentro: '',\r\n esCasino: false,\r\n esCentral: 0,\r\n fondoEuros: 0,\r\n fondoTokens: 0,\r\n iAreaGeografica: 0,\r\n numPistas: 0,\r\n pais: '',\r\n periodicidad: 0,\r\n propio: 0,\r\n tienePartidas: 0,\r\n sigfrid: -1,\r\n tecbrain: -1,\r\n idCc: -1,\r\n nombrePublicoCc: '',\r\n nombrePrivadoCc: '',\r\n iProvincia: -1,\r\n activoCc: 0,\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n\r\n this.setState({\r\n telfCentro: this.props.centroDetalle.telfCentro || '',\r\n mobilCentro: this.props.centroDetalle.mobilCentro || '',\r\n gerente: this.props.centroDetalle.gerente || '',\r\n aforo: this.props.centroDetalle.aforo || '',\r\n alias: this.props.centroDetalle.alias || '',\r\n ctaDescuadre: this.props.centroDetalle.ctaDescuadre || '',\r\n ctaFondo: this.props.centroDetalle.ctaFondo || '',\r\n ctaTotalsemanal: this.props.centroDetalle.ctaTotalsemanal || '',\r\n emailCentro: this.props.centroDetalle.emailCentro || '',\r\n esCasino: this.props.centroDetalle.esCasino || false, //check\r\n esCentral: this.props.centroDetalle.esCentral || 0, //check\r\n fondoEuros: this.props.centroDetalle.fondoEuros || 0,\r\n fondoTokens: this.props.centroDetalle.fondoTokens || 0,\r\n iAreaGeografica: this.props.centroDetalle.iAreaGeografica || 0,\r\n numPistas: this.props.centroDetalle.numPistas || 0,\r\n pais: this.props.centroDetalle.pais || '',\r\n periodicidad: this.props.centroDetalle.periodicidad || 0,\r\n propio: this.props.centroDetalle.propio || 0, //check\r\n tienePartidas: this.props.centroDetalle.tienePartidas || 0, //check\r\n sigfrid: this.props.centroDetalle.sigfrid || '',\r\n tecbrain: this.props.centroDetalle.tecbrain || '',\r\n idCc: this.props.centroDetalle.idCc || '',\r\n nombrePublicoCc: this.props.centroDetalle.nombrePublicoCc || '',\r\n nombrePrivadoCc: this.props.centroDetalle.nombrePrivadoCc || '',\r\n iProvincia: this.props.centroDetalle.iProvincia || '',\r\n activoCc: this.props.centroDetalle.activoCc || '', //check\r\n reopa: this.props.centroDetalle.reopa || ''\r\n });\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n handleCheckboxNumber = (e, field) => {\r\n const value = e.target.checked;\r\n\r\n this.setState({ ...this.state, [field]: value ? 1 : 0 });\r\n };\r\n\r\n handleCheckboxBool = (e, field) => {\r\n const value = e.target.checked;\r\n\r\n this.setState({ ...this.state, [field]: value });\r\n };\r\n\r\n\r\n updateHandler = (centro) => {\r\n\r\n if (this.props.checkMoreDetailsDialog(centro)) {\r\n this.props.modifyFieldsCentroDialog(centro);\r\n this.props.hideDialog();\r\n }\r\n };\r\n\r\n compareDescr = (a, b) => {\r\n // ignora acentos\r\n var a_norm = a.descr.normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\");\r\n var b_norm = b.descr.normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\");\r\n if (a_norm < b_norm)\r\n return -1;\r\n if (a_norm > b_norm)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n fillSelectOptionList = () => {\r\n\r\n return this.props.provinciaList.sort(this.compareDescr).map(tf => {\r\n return (\r\n \r\n );\r\n });\r\n\r\n };\r\n\r\n handleChangeSelect = event => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iProvincia: value,\r\n // provinciaDescr: this.props.tipoFichaList.find(tf => tf.id === value).descr\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (
\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'alias')}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'telfCentro')}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'mobilCentro')}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'gerente')}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'emailCentro')}\r\n />\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'ctaDescuadre')}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n this.handleValueChange(event, 'ctaFondo')}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n this.handleValueChange(event, 'ctaTotalsemanal')}\r\n />\r\n \r\n \r\n\r\n \r\n this.handleValueChange(event, 'fondoEuros')}\r\n />\r\n \r\n\r\n \r\n\r\n \r\n this.handleValueChange(event, 'fondoTokens')}\r\n />\r\n \r\n\r\n\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'aforo')}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'numPistas')}\r\n />\r\n \r\n\r\n \r\n this.handleCheckboxNumber(e, 'tienePartidas')}\r\n />\r\n }\r\n label=\"Tiene partidas\"\r\n />\r\n \r\n\r\n \r\n this.handleCheckboxNumber(e, 'propio')}\r\n />\r\n }\r\n label=\"Es Propio\"\r\n />\r\n \r\n \r\n this.handleCheckboxBool(e, 'esCasino')}\r\n />\r\n }\r\n label=\"Es Casino\"\r\n />\r\n \r\n\r\n \r\n this.handleCheckboxNumber(e, 'esCentral')}\r\n />\r\n }\r\n label=\"Es Central\"\r\n />\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n {/* \r\n this.handleValueChange(event, 'iProvincia')}\r\n />\r\n */}\r\n\r\n \r\n Provincia\r\n this.handleChangeSelect(event)}\r\n >\r\n {this.fillSelectOptionList()}\r\n \r\n \r\n\r\n \r\n this.handleValueChange(event, 'iAreaGeografica')}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'pais')}\r\n />\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'idCc')}\r\n />\r\n \r\n\r\n \r\n this.handleCheckboxNumber(e, 'activoCc')}\r\n />\r\n }\r\n label=\"Activo CC\"\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'sigfrid')}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'tecbrain')}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'periodicidad')}\r\n />\r\n \r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n this.handleValueChange(event, 'nombrePublicoCc')}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'nombrePrivadoCc')}\r\n />\r\n \r\n\r\n\r\n {this.props.user && (this.props.user.profile.sub === '795' || this.props.user.profile.sub === '16') ? //solo para estos 2 usuarios (nadie más tiene que poder ver esta opción)\r\n \r\n this.handleValueChange(event, 'reopa')}\r\n />\r\n \r\n : ''}\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nMoreDetailsCentro.propTypes = {\r\n //props\r\n centroDetalle: PropTypes.object.isRequired,\r\n provinciaList: PropTypes.array.isRequired,\r\n modifyFieldsCentroDialog: PropTypes.func.isRequired,\r\n checkMoreDetailsDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(MoreDetailsCentro);","import React from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n\r\n\r\nconst styles = theme => ({\r\n buttonContainer: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n marginTop: 50,\r\n },\r\n button: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass SimpleMessage extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.myRef = React.createRef();\r\n\r\n this.state = {}\r\n }\r\n\r\n componentDidMount = () =>{\r\n this.myRef.current.focus();\r\n }\r\n\r\n renderException = () => {\r\n if (!this.props.exception) {\r\n return null;\r\n }\r\n\r\n return ({this.props.exception});\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n {this.props.message}\r\n\r\n
\r\n \r\n
\r\n
\r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nSimpleMessage.propTypes = {\r\n message: PropTypes.string.isRequired,\r\n exception: PropTypes.string,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(SimpleMessage);","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n\r\n\r\nconst styles = theme => ({\r\n buttonContainer: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n marginTop: theme.spacing(1) *2\r\n },\r\n button: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n span: {\r\n minHeight: 60\r\n },\r\n});\r\n\r\nclass ConfirmationDialog extends React.Component {\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n {this.props.message}\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nConfirmationDialog.propTypes = {\r\n message: PropTypes.string.isRequired,\r\n acceptHandler: PropTypes.func.isRequired,\r\n cancelHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(ConfirmationDialog);","\r\nimport { getData, postData, putData } from './redux_data';\r\n\r\nimport {\r\n GET_CIERRE_DIARIO, MODIFY_DATOS_CIERRE_DIARIO, UPDATE_DATOS_CIERRE_DIARIO,\r\n GET_ARTGASTOS, GET_TIPO_GASTOS_CIERRE, GET_OTROS_DATOS_CIERRE_DIARIO, MODIFY_FIELD_OTROSDATOS_CIERRE, NEW_OTROSDATOS, UPDATE_OTROSDATOS_CIERRE, GET_ARTMKT,\r\n DESBLOQUEAR_CIERRE_DIARIO, CIERRE_DIARIO_CERRAR_DIA,\r\n GET_RESUMEN_CIERRE_DIARIO\r\n} from '../constants/action_types';\r\n\r\nexport function getDatosCierreDiario(centroid, date) {\r\n return getData('cierrediario?centro_id=' + centroid + '&date=' + date, GET_CIERRE_DIARIO);\r\n};\r\n\r\nexport function modifyDatosCierreDiario(item) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_DATOS_CIERRE_DIARIO, payload: item });\r\n };\r\n};\r\n\r\nexport function getArtGastosCentro(centroid) {\r\n return getData('vArtGastos?centro_id=' + centroid, GET_ARTGASTOS);\r\n};\r\n\r\nexport function getArtMktCentro(centroid) {\r\n return getData('vArtMKT?centro_id=' + centroid, GET_ARTMKT);\r\n};\r\n\r\nexport function getTipogastosCierre() {\r\n return getData('cvtipogastos', GET_TIPO_GASTOS_CIERRE);\r\n};\r\n\r\n\r\n//otros datos:\r\nexport function getOtrosDatosCierreDiario(centroid, date) {\r\n return getData('cierreDiarioOtrosdatos?centro_id=' + centroid + '&date=' + date, GET_OTROS_DATOS_CIERRE_DIARIO);\r\n};\r\n\r\n//update new otrosdatos in DB (post):\r\nexport function newOtrosDatosDB(otrosDatos, thenHandler, errorHandler) {\r\n const postURL = 'dzgenerals';\r\n return postData(postURL, NEW_OTROSDATOS, otrosDatos, undefined, thenHandler, undefined, errorHandler);\r\n};\r\n\r\nexport function modifyFieldOtrosDatos(field, value) {\r\n return dispatch => {\r\n dispatch({ type: MODIFY_FIELD_OTROSDATOS_CIERRE, payload: { field, value } })\r\n };\r\n};\r\n\r\n\r\n//update existing otrosdatos in DB (put):\r\nexport function updateOtrosDatosDB(otrosDatos, id, thenHandler, errorHandler) {\r\n const putURL = 'dzgenerals';\r\n return putData(putURL, UPDATE_OTROSDATOS_CIERRE, otrosDatos, id, undefined, thenHandler, undefined, errorHandler);\r\n\r\n};\r\n\r\nexport function updateCierreDiarioDatosDB(cierreDiario, centro_id, date, thenHandler) {\r\n\r\n const postURL = `cierreDiario?centro_id=${centro_id}&date=${date}`;\r\n\r\n return postData(postURL, UPDATE_DATOS_CIERRE_DIARIO, cierreDiario, undefined, thenHandler);\r\n\r\n};\r\n\r\n//get resumen cierre diario\r\nexport function getResumenCierreDiario(centroid, date) {\r\n return getData('cierreDiarioResumen?centro_id=' + centroid + '&date=' + date, GET_RESUMEN_CIERRE_DIARIO);\r\n}\r\n\r\nexport function unlockCierreDiario(centro_id, date) {\r\n\r\n const postURL = `cierreDiario/DesbloquearCierre?centro_id=${centro_id}&date=${date}`;\r\n\r\n return postData(postURL, DESBLOQUEAR_CIERRE_DIARIO, {}, undefined, undefined);\r\n\r\n};\r\n\r\nexport function cerrarDiaCierreDiario(centro_id, date, thenHandler) {\r\n\r\n return postData(`cierreDiario/CerrarDia?centro_id=${centro_id}&date=${date}`, CIERRE_DIARIO_CERRAR_DIA, {}, undefined, thenHandler);\r\n\r\n};","import React from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport FloatNumberFormatInput from './float_number_input_formatter';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class FloatCellEditor extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n value: props.value\r\n };\r\n };\r\n\r\n getValue() {\r\n return { [this.props.column.key]: Number(this.state.value) }\r\n };\r\n\r\n getInputNode() {\r\n return ReactDOM.findDOMNode(this).getElementsByTagName(\"input\")[0];\r\n };\r\n\r\n handleChangeComplete = value => {\r\n this.props.onCommit();\r\n }\r\n\r\n handleChange = event => {\r\n this.setState({ value: event.target.value });\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n
\r\n this.handleChangeComplete(event.target.value)}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.handleChangeComplete(e.target.value) };\r\n }}\r\n style={{ textAlign: 'right' }} />\r\n
\r\n\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nFloatNumberFormatInput.propTypes = {\r\n column: PropTypes.object,\r\n};\r\n","import React from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport IntNumberFormatInput from './int_number_input_formatter';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class IntCellEditor extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n value: props.value\r\n };\r\n };\r\n\r\n getValue() {\r\n return { [this.props.column.key]: this.state.value }\r\n };\r\n\r\n getInputNode() {\r\n return ReactDOM.findDOMNode(this).getElementsByTagName(\"input\")[0];\r\n };\r\n\r\n handleChangeComplete = value => {\r\n this.props.onCommit();\r\n }\r\n\r\n handleChange = event => {\r\n this.setState({ value: event.target.value });\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n
\r\n this.handleChangeComplete(event.target.value)}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.handleChangeComplete(e.target.value) };\r\n }}\r\n style={{ textAlign: 'right' }} />\r\n
\r\n\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nIntCellEditor.propTypes = {\r\n column: PropTypes.object,\r\n};\r\n","import React from 'react';\r\nimport NumberFormat from 'react-number-format';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function FloatPercentFormatInput(props) {\r\n const { inputRef, onChange, ...other } = props;\r\n\r\n return (\r\n {\r\n onChange({\r\n target: {\r\n value: values.value,\r\n },\r\n });\r\n }}\r\n decimalSeparator=\",\"\r\n thousandSeparator=\".\"\r\n isNumericString={true}\r\n decimalScale={2}\r\n fixedDecimalScale={true}\r\n suffix={'%'}\r\n />\r\n );\r\n};\r\n\r\nFloatPercentFormatInput.propTypes = {\r\n inputRef: PropTypes.func.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n};","import React from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport FloatPercentFormatInput from './float_percent_input_formatter';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class PercentCellEditor extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n value: props.value\r\n };\r\n };\r\n\r\n getValue() {\r\n return { [this.props.column.key]: this.state.value }\r\n };\r\n\r\n getInputNode() {\r\n return ReactDOM.findDOMNode(this).getElementsByTagName(\"input\")[0];\r\n };\r\n\r\n handleChangeComplete = value => {\r\n this.props.onCommit();\r\n }\r\n\r\n handleChange = event => {\r\n this.setState({ value: event.target.value });\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n
\r\n this.handleChangeComplete(event.target.value)}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.handleChangeComplete(e.target.value) };\r\n }}\r\n style={{ textAlign: 'right' }} />\r\n
\r\n\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nPercentCellEditor.propTypes = {\r\n column: PropTypes.object,\r\n};\r\n","import React, { Component } from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport ReactDataGrid from 'react-data-grid';\r\nimport { Editors, Toolbar, Data } from 'react-data-grid-addons';\r\nimport update from 'immutability-helper';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Icon from '@material-ui/core/Icon';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\nimport NumberFormat from 'react-number-format';\r\nimport FloatCellEditor from './float_grid_cell_editor';\r\nimport IntCellEditor from './int_grid_cell_editor';\r\nimport PercentCellEditor from './percent_grid_cell_editor';\r\n\r\nimport './neurite_grid.css';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: theme.spacing(1),\r\n },\r\n icon: {\r\n margin: 'auto'\r\n },\r\n newButton: {\r\n margin: '15px 15px 15px 0',\r\n padding: theme.spacing(1),\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n formControl: {\r\n color: '#ff0000'\r\n },\r\n oddRow: {\r\n backgroundColor: \"#e8f1d7\",\r\n },\r\n evenRow: {\r\n backgroundColor: \"white\",\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nconst selectors = Data.Selectors;\r\n\r\nconst FloatCellFormatter = (value, row, admin, grayField, decimal) => {\r\n\r\n const styleAdmin = {\r\n paddingTop: 8,\r\n paddingRight: 2,\r\n textAlign: 'right',\r\n backgroundColor: '#db0808',\r\n fontWeight: 700,\r\n borderRadius: 5,\r\n };\r\n\r\n let isGray = false;\r\n if (grayField) isGray = row[grayField];\r\n isGray = isGray || row['total'];\r\n const backColor = isGray ? '#eeeeee' : 'inherit';\r\n\r\n //console.log(value);\r\n\r\n return (\r\n\r\n
\r\n \r\n
\r\n\r\n );\r\n};\r\n\r\nconst FloatPercentFormatter = (value, row, admin, grayField) => {\r\n\r\n const styleAdmin = {\r\n paddingTop: 8,\r\n paddingRight: 2,\r\n textAlign: 'right',\r\n backgroundColor: '#db0808',\r\n fontWeight: 700,\r\n borderRadius: 5,\r\n };\r\n\r\n let isGray = false;\r\n if (grayField) isGray = row[grayField];\r\n isGray = isGray || row['total'];\r\n const backColor = isGray ? '#eeeeee' : 'inherit';\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst IntCellFormatter = (value, row, admin, grayField) => {\r\n const styleAdmin = {\r\n paddingTop: 8,\r\n paddingRight: 2,\r\n textAlign: 'right',\r\n backgroundColor: '#db0808',\r\n fontWeight: 700,\r\n borderRadius: 5,\r\n };\r\n\r\n let isGray = false;\r\n if (grayField) isGray = row[grayField];\r\n isGray = isGray || row['total'];\r\n const backColor = isGray ? '#eeeeee' : 'inherit';\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n\r\n};\r\n\r\nconst CustomFormatter = (value, row, admin, grayField) => {\r\n\r\n const style = {\r\n backgroundColor: '#db0808',\r\n fontWeight: 700,\r\n borderRadius: 5,\r\n };\r\n\r\n let isGray = false;\r\n if (grayField) isGray = row[grayField];\r\n isGray = isGray || row['total'];\r\n const backColor = isGray ? '#eeeeee' : 'inherit';\r\n\r\n return
{value}
\r\n}\r\n\r\nconst OptionsFormatter = (value, row, admin, grayField, options) => {\r\n\r\n const style = {\r\n backgroundColor: '#db0808',\r\n fontWeight: 700,\r\n borderRadius: 5,\r\n };\r\n\r\n let isGray = false;\r\n if (grayField) isGray = row[grayField];\r\n isGray = isGray || row['total'];\r\n const backColor = isGray ? '#eeeeee' : 'inherit';\r\n\r\n let val = '';\r\n if (value) {\r\n const selected = options.find(o => o.id === Number(value));\r\n if (selected !== undefined) val = selected.text;\r\n }\r\n return
{val}
\r\n}\r\n\r\nconst DateFormatter = (value, row, admin, grayField) => {\r\n if (value) {\r\n let d = new Date(value.slice(0, 10)).toLocaleDateString(\"es-ES\", { year: \"numeric\", month: \"2-digit\", day: \"2-digit\" })+\r\n ' '+ value.slice(11,19) // añadido para KD\r\n return d;\r\n } else {\r\n return 'Sin fecha';\r\n }\r\n};\r\n\r\nconst sortRows = (initialRows, sortColumn, sortDirection, rows) => {\r\n\r\n const comparer = (a, b) => {\r\n if (sortDirection === \"ASC\") {\r\n return a[sortColumn] > b[sortColumn] ? 1 : -1;\r\n } else if (sortDirection === \"DESC\") {\r\n return a[sortColumn] < b[sortColumn] ? 1 : -1;\r\n }\r\n };\r\n return sortDirection === \"NONE\" ? initialRows.map((r, i) => { return { ...r, grid_index: i } }) : [...rows].sort(comparer);\r\n};\r\n\r\n\r\nconst handleFilterChange = (filter, filters, id) => {\r\n const newFilters = { ...filters };\r\n if (filter.filterTerm) {\r\n newFilters[filter.column.key] = filter;\r\n } else {\r\n delete newFilters[filter.column.key];\r\n }\r\n localStorage.setItem(window.location.pathname + id, JSON.stringify(newFilters));\r\n return newFilters;\r\n};\r\n\r\nfunction getRows(rows, filters) {\r\n return selectors.getRows({ rows, filters });\r\n}\r\n\r\n\r\nclass NeuriteGrid extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n\r\n this.state = {\r\n rows: this.props.rows.map((r, i) => { return { ...r, grid_index: i } }),\r\n columns: this.processColumns(),\r\n selectedIndexes: this.props.selectedIndexes ? this.props.selectedIndexes : [],\r\n selectedIds: this.props.selectedIndexes ? this.props.selectedIndexes.map(i => this.props.rows[i].id) : [],\r\n filters: {},\r\n parent: null,\r\n sortColumn: null,\r\n sortDirection: 'NONE',\r\n };\r\n this.controlUpdate = 0;\r\n\r\n };\r\n\r\n processColumns = () => {\r\n const columns = this.props.columns.slice();\r\n\r\n const { CheckboxEditor } = Editors;\r\n const { DropDownEditor } = Editors;\r\n\r\n columns.forEach((col) => {\r\n if (col.type !== undefined) {\r\n switch (col.type) {\r\n case 'bool':\r\n col.formatter = \r\n col.onCellChange = (rowIdx, columnKey, e) => this.handleCheckbox(rowIdx, columnKey, e, col.editable)\r\n break;\r\n case 'more':\r\n //col.name = '';\r\n col.width = 40;\r\n col.editable = false;\r\n break;\r\n case 'launch':\r\n //col.name = '';\r\n col.width = 40;\r\n col.editable = false;\r\n break;\r\n case 'float':\r\n col.formatter = ({ value, row }) => FloatCellFormatter(value, row, col.admin, col.grayField, col.decimal);\r\n if (col.editable) col.editor = FloatCellEditor;\r\n break;\r\n case 'int':\r\n col.formatter = ({ value, row }) => IntCellFormatter(value, row, col.admin, col.grayField);\r\n if (col.editable) col.editor = IntCellEditor;\r\n break;\r\n case 'percent':\r\n col.formatter = ({ value, row }) => FloatPercentFormatter(value, row, col.admin, col.grayField);\r\n if (col.editable) col.editor = PercentCellEditor;\r\n break;\r\n case 'date':\r\n col.width = 130; // fbp para que quepa el formato con hh:mm:ss (KD)\r\n col.formatter = ({ value, row }) => DateFormatter(value, row, col.admin, col.grayField);\r\n break;\r\n case 'dropdown':\r\n if (col.editable) col.editor = \r\n col.formatter = ({ value, row }) => OptionsFormatter(value, row, col.admin, col.grayField, this.props.dropdownOptions[col.key]);\r\n break;\r\n default:\r\n col.formatter = ({ value, row }) => CustomFormatter(value, row, col.admin, col.grayField);\r\n break;\r\n };\r\n }\r\n else {\r\n col.formatter = ({ value, row }) => CustomFormatter(value, row, col.admin, col.grayField);\r\n }\r\n\r\n col.headerRenderer = {col.name} ;\r\n\r\n });\r\n\r\n\r\n if (this.props.buttonEdit) {\r\n columns.push({\r\n key: 'edit',\r\n name: '',\r\n editable: false,\r\n width: 40,\r\n });\r\n };\r\n\r\n if (this.props.buttonDelete) {\r\n columns.push({\r\n key: 'delete',\r\n name: '',\r\n editable: false,\r\n width: 40,\r\n });\r\n };\r\n\r\n columns.forEach(col => {\r\n if (!col.width) col.width = 150;\r\n col.sortable = true;\r\n col.filterable = true;\r\n });\r\n\r\n return columns;\r\n };\r\n\r\n\r\n handleCheckbox = (rowIdx, columnKey, e, editable) => {\r\n\r\n const filteredRows = getRows(this.state.rows, this.state.filters);\r\n\r\n const index = filteredRows[rowIdx].grid_index;\r\n\r\n if (editable) {\r\n this.props.onRowsUpdated ? this.props.onRowsUpdated({\r\n fromRow: index, toRow: index, fromRowData: filteredRows[rowIdx], updated: { [columnKey]: !this.state.rows[index][columnKey] }\r\n }) : this.handleGridRowsUpdated({\r\n fromRow: index, toRow: index, fromRowData: filteredRows[rowIdx], updated: { [columnKey]: !this.state.rows[index][columnKey] }\r\n })\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n\r\n var parent = ReactDOM.findDOMNode(this).getElementsByClassName(\"react-grid-Grid\")[0];\r\n\r\n const d = new Date();\r\n const miliseconds = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\r\n\r\n if (this.grid !== undefined && this.grid.selectAllCheckbox !== undefined && this.grid.selectAllCheckbox.id === 'select-all-checkbox') {\r\n this.grid.selectAllCheckbox.id += `-${miliseconds}`;\r\n this.grid.selectAllCheckbox.nextSibling.htmlFor += `-${miliseconds}`;\r\n }\r\n this.setState({\r\n ...this.state, parent: parent,\r\n filters: JSON.parse(localStorage.getItem(window.location.pathname + this.props.id))\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n\r\n if (prevProps.rows !== this.props.rows || prevProps.columns !== this.props.columns || prevProps.selectedIndexes !== this.props.selectedIndexes) {\r\n\r\n const rows = this.props.rows.map((r, i) => { return { ...r, grid_index: i } });\r\n\r\n this.setState({\r\n ...this.state,\r\n rows: sortRows(rows, this.state.sortColumn, this.state.sortDirection, rows),\r\n columns: this.processColumns(),\r\n selectedIds: this.props.selectedIndexes ? this.props.selectedIndexes.map(i => this.props.rows[i].id) : [],\r\n });\r\n\r\n };\r\n if (document.activeElement.id === 'grid_button_new') {\r\n this.myActions.focusVisible();\r\n }\r\n\r\n };\r\n\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, updated }) => {\r\n\r\n const rows = this.state.rows.slice();\r\n\r\n for (let i = fromRow; i <= toRow; i++) {\r\n let rowToUpdate = rows[i];\r\n let updatedRow = update(rowToUpdate, { $merge: updated });\r\n rows[i] = updatedRow;\r\n };\r\n\r\n this.setState({ rows });\r\n };\r\n\r\n handleDeleteRow = (row, indexToDelete) => {\r\n\r\n const rows = this.state.rows.filter((row, rowIndex) => rowIndex !== indexToDelete);\r\n\r\n this.setState({ rows });\r\n\r\n };\r\n\r\n handleAddNewRow = ({ updated }) => {\r\n\r\n let rows = this.state.rows.slice();\r\n rows.push(updated);\r\n this.setState({ rows });\r\n\r\n };\r\n\r\n handleNewRowClick = () => {\r\n this.handleAddNewRow({});\r\n };\r\n\r\n getCellActions = (column, row) => {\r\n\r\n const { classes } = this.props;\r\n\r\n if (column.key === 'edit') {\r\n return [\r\n {\r\n icon: edit,\r\n callback: () => {\r\n\r\n this.props.onEditClick(row)\r\n\r\n }\r\n\r\n }\r\n ];\r\n };\r\n if (column.key === 'delete') {\r\n return [\r\n {\r\n icon: delete,\r\n callback: () => {\r\n if (this.props.onDeleteClick) this.props.onDeleteClick(row, row._index);\r\n else this.handleDeleteRow(row, row._index);\r\n }\r\n }\r\n ];\r\n\r\n };\r\n\r\n if (column.type === 'more') {\r\n return [\r\n {\r\n icon: notes,\r\n callback: () => {\r\n column.handleMoreClick(row);\r\n }\r\n }\r\n ];\r\n };\r\n\r\n if (column.type === 'launch') {\r\n return [\r\n {\r\n icon: {column.icon ? column.icon : \"launch\"},\r\n\r\n callback: () => {\r\n column.handleLaunchClick(row);\r\n }\r\n }\r\n ];\r\n };\r\n\r\n };\r\n\r\n onRowsSelected = rows => {\r\n\r\n if (this.props.selectByKeys === true) {\r\n\r\n let selectedIds = this.state.selectedIds.concat(\r\n rows.map(r => r.row.id)\r\n );\r\n\r\n this.setState({\r\n selectedIds: selectedIds\r\n });\r\n\r\n if (this.props.onSelection) this.props.onSelection(selectedIds);\r\n\r\n }\r\n else {\r\n let selectedIndexes = this.state.selectedIndexes.concat(\r\n //rows.map(r => r.rowIdx)\r\n rows.map(r => r.row.grid_index)\r\n );\r\n\r\n this.setState({\r\n selectedIndexes: selectedIndexes\r\n });\r\n\r\n if (this.props.onSelection) this.props.onSelection(selectedIndexes);\r\n\r\n }\r\n\r\n };\r\n\r\n onRowsDeselected = rows => {\r\n\r\n if (this.props.selectByKeys === true) {\r\n\r\n let rowIds = rows.map(r => r.row.id);\r\n\r\n let selectedIds = this.state.selectedIds.filter(\r\n id => !rowIds.includes(id)\r\n );\r\n\r\n this.setState({\r\n selectedIds: selectedIds\r\n });\r\n\r\n if (this.props.onSelection) this.props.onSelection(selectedIds);\r\n }\r\n else {\r\n //let rowIndexes = rows.map(r => r.rowIdx);\r\n let rowIndexes = rows.map(r => r.row.grid_index);\r\n\r\n let selectedIndexes = this.state.selectedIndexes.filter(\r\n i => rowIndexes.indexOf(i) === -1\r\n );\r\n\r\n this.setState({\r\n selectedIndexes: selectedIndexes\r\n });\r\n\r\n if (this.props.onSelection) this.props.onSelection(selectedIndexes);\r\n }\r\n\r\n };\r\n\r\n\r\n width = () => {\r\n\r\n const maxWidth = this.props.width ? this.props.width : 1100;\r\n\r\n let sumedWidths = 0;\r\n\r\n if (this.state.columns.length) {\r\n\r\n this.state.columns.forEach(col => {\r\n sumedWidths += col.width\r\n });\r\n };\r\n\r\n let result = (sumedWidths && sumedWidths < maxWidth) ? sumedWidths : maxWidth;\r\n\r\n if (this.props.enableSelection) result += 60;\r\n\r\n result += 20; //scrollbar\r\n\r\n return result;\r\n\r\n };\r\n\r\n RowRenderer = ({ renderBaseRow, ...props }) => {\r\n\r\n const { classes } = this.props;\r\n\r\n return
{renderBaseRow(props)}
\r\n\r\n };\r\n\r\n downloadCsvData = (columns, rows) => {\r\n var csvData = '';\r\n columns.forEach(c => {\r\n csvData += c.name + ';';\r\n });\r\n csvData = csvData.slice(0, -1);\r\n csvData += '\\n';\r\n\r\n rows.forEach((r, i) => {\r\n\r\n columns.forEach(c => {\r\n\r\n let strValue = '';\r\n\r\n if (r[c.name] !== undefined && r[c.name] !== null) {\r\n\r\n switch (c.type) {\r\n case 'int':\r\n strValue = r[c.name].toString();\r\n break;\r\n case 'float':\r\n strValue = r[c.name].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\r\n break;\r\n case 'date':\r\n strValue = new Date(r[c.name].slice(0, 10)).toLocaleDateString(\"es-ES\", { year: \"numeric\", month: \"2-digit\", day: \"2-digit\" })\r\n +' '+ r[c.name].slice(11,19) // añadido para KD\r\n ;\r\n break;\r\n default:\r\n strValue = r[c.name];\r\n break;\r\n }\r\n }\r\n\r\n csvData += strValue + ';';\r\n\r\n });\r\n\r\n csvData = csvData.slice(0, -1);\r\n csvData += '\\n';\r\n\r\n })\r\n\r\n const link = document.createElement('a');\r\n link.href = 'data:text/csv;charset=ISO-8859-1,' + encodeURIComponent(csvData);\r\n link.setAttribute('download', 'dataset.csv');\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n\r\n calculateTotal = (rows) => {\r\n\r\n var newRow = {};\r\n\r\n this.state.columns.forEach((c, i) => {\r\n\r\n if (c.type === 'float') {\r\n newRow[c.name] = 0.0;\r\n }\r\n else if (c.type === 'int') {\r\n newRow[c.name] = 0;\r\n }\r\n else {\r\n newRow[c.name] = '';\r\n }\r\n\r\n });\r\n\r\n rows.forEach((r) => {\r\n\r\n this.state.columns.forEach((c) => {\r\n if (c.type === 'int' || c.type === 'float') {\r\n newRow[c.name] += r[c.name];\r\n }\r\n });\r\n\r\n });\r\n\r\n newRow['total'] = true;\r\n\r\n return newRow;\r\n\r\n }\r\n onRowsUpdatedController = rowAtr => {\r\n let currentColumnIndex = 0;\r\n let lastColumnIndex = 0;\r\n Object.entries(this.state.columns).forEach(([key, value]) => {\r\n if (rowAtr.cellKey === value.key) {\r\n currentColumnIndex = key;\r\n }\r\n lastColumnIndex = key;\r\n });\r\n let currentRowIndex = rowAtr.toRow;\r\n let lastRowIndex = this.state.rows.length - 1;\r\n if (currentRowIndex !== lastRowIndex && this.controlUpdate === 0) {\r\n if (this.props.tabulation) {\r\n this.grid.openCellEditor(currentRowIndex + 1, currentColumnIndex);\r\n } else { //TODO - falla al intentar abrir el cell editor de la comuna contigua\r\n //this.grid.openCellEditor(currentColumnIndex === lastColumnIndex ? currentRowIndex + 1 : currentRowIndex, currentColumnIndex === lastColumnIndex ? 0 : currentColumnIndex + 1);\r\n }\r\n }\r\n\r\n this.controlUpdate++;\r\n if (this.controlUpdate === 2) {\r\n this.controlUpdate = 0;\r\n }\r\n\r\n this.props.onRowsUpdated(rowAtr);\r\n }\r\n\r\n render() {\r\n\r\n const { classes, buttonNew } = this.props;\r\n const rowHeight = this.props.rowHeight ? this.props.rowHeight : 35;\r\n\r\n const filteredRows = getRows(this.state.rows, this.state.filters);\r\n\r\n if (this.props.addTotal) {\r\n if (filteredRows.length > 0 && filteredRows[filteredRows.length - 1]['total'] === true) filteredRows.pop();\r\n filteredRows.push(this.calculateTotal(filteredRows));\r\n }\r\n\r\n return (\r\n
\r\n this.grid = node}\r\n enableCellSelect={true}\r\n columns={this.state.columns}\r\n rowGetter={(i) => {\r\n return { ...filteredRows[i], _index: i, };\r\n }}\r\n rowsCount={filteredRows.length}\r\n rowRenderer={this.props.alternateRows ? this.RowRenderer : ''}\r\n minHeight={this.props.height ? this.props.height : (this.state.rows.length + 1) * rowHeight + 10}\r\n onGridRowsUpdated={this.props.onRowsUpdated ? this.onRowsUpdatedController : this.handleGridRowsUpdated}\r\n getCellActions={this.getCellActions}\r\n rowSelection={this.props.selectByKeys ?\r\n {\r\n showCheckbox: this.props.enableSelection ? this.props.enableSelection : false,\r\n enableShiftSelect: false,\r\n onRowsSelected: this.onRowsSelected,\r\n onRowsDeselected: this.onRowsDeselected,\r\n selectBy: {\r\n //indexes: this.state.selectedIndexes\r\n keys: {\r\n rowKey: 'id',\r\n values: this.state.selectedIds\r\n }\r\n }\r\n } :\r\n {\r\n showCheckbox: this.props.enableSelection ? this.props.enableSelection : false,\r\n enableShiftSelect: false,\r\n onRowsSelected: this.onRowsSelected,\r\n onRowsDeselected: this.onRowsDeselected,\r\n selectBy: {\r\n //indexes: this.state.selectedIndexes\r\n keys: {\r\n rowKey: 'grid_index',\r\n values: this.state.selectedIndexes\r\n }\r\n }\r\n }\r\n }\r\n onGridSort={(sortColumn, sortDirection) => {\r\n this.setState({ ...this.state, sortColumn, sortDirection, rows: sortRows(this.props.rows, sortColumn, sortDirection, this.state.rows) });\r\n }}\r\n toolbar={this.props.enableFilter ? : ''}\r\n onAddFilter={filter => this.setState({ ...this.state, filters: handleFilterChange(filter, this.state.filters, this.props.id) })}\r\n onClearFilters={() => { localStorage.removeItem(window.location.pathname + this.props.id); this.setState({ ...this.state, filters: {} }) }}\r\n onCellSelected={this.props.cellSelectedHandler ?\r\n ({ rowIdx, idx }) => {\r\n this.props.cellSelectedHandler(filteredRows[rowIdx], this.state.columns[idx]);\r\n }\r\n :\r\n ''\r\n }\r\n scrollToRowIndex={this.props.last ? filteredRows.length : 0}\r\n editorPortalTarget={this.state.parent}\r\n />\r\n\r\n
\r\n {this.props.tooltipNew ?\r\n \r\n \r\n \r\n :\r\n \r\n }\r\n \r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\nNeuriteGrid.propTypes = {\r\n columns: PropTypes.array.isRequired,\r\n rows: PropTypes.array.isRequired,\r\n buttonEdit: PropTypes.bool.isRequired,\r\n buttonDelete: PropTypes.bool.isRequired,\r\n height: PropTypes.number,\r\n onEditClick: PropTypes.func,\r\n onDeleteClick: PropTypes.func,\r\n onNewRowClick: PropTypes.func,\r\n onRowsUpdated: PropTypes.func,\r\n fontSize: PropTypes.number,\r\n alternateRows: PropTypes.bool,\r\n enableSelection: PropTypes.bool,\r\n tooltipNew: PropTypes.string,\r\n onSelection: PropTypes.func,\r\n width: PropTypes.number,\r\n enableFilter: PropTypes.bool,\r\n tooltipFilter: PropTypes.string,\r\n rowHeight: PropTypes.number,\r\n buttonCSV: PropTypes.bool,\r\n addTotal: PropTypes.bool\r\n\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(NeuriteGrid);","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//helpers:\r\nimport { getData, postData } from '../../dataLib';\r\n\r\n//actions:\r\nimport { modifyDatosCierreDiario, getArtMktCentro } from '../../actions/cierre_diario_actions';\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions/index';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\n\r\n//material ui components:\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\n\r\n//grid de datos de facturas de MKT\r\n//solo trabaja con state local ya que ningun otro control depende de estos datos\r\n//y hace todas las modificaciones directamente en la DB cuando se hace click en OK\r\n\r\nconst styles = theme => ({\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n width: 200,\r\n margin: '30px 8px 20px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 80,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n divData: {\r\n position: 'relative'\r\n },\r\n cover: {\r\n position: 'absolute',\r\n height: 300,\r\n width: '100%',\r\n marginLeft: 8,\r\n zIndex: 1,\r\n backgroundColor: '#ddd',\r\n opacity: 0.3,\r\n },\r\n\r\n});\r\n\r\nclass CierreDiarioMKTGrid extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n mkt: [],\r\n total: 0.0,\r\n showSpinner: true,\r\n saveDisabled: true\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.producto === undefined &&\r\n prevProps.centroDiaSelected !== this.props.centroDiaSelected) {\r\n this.getMkt();\r\n this.props.getArtMktCentro(this.props.centroDiaSelected.centro.id);\r\n }\r\n\r\n if (prevProps.centroDiaSelected.dia !== this.props.centroDiaSelected.dia || prevProps.centroDiaSelected.centro !== this.props.centroDiaSelected.centro)\r\n this.setState({ ...this.state, showSpinner: true })\r\n };\r\n\r\n messageError = error => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: error\r\n }, 'error_cierre_diario_mkt_grid', false, 'sm');\r\n\r\n };\r\n\r\n checkValues = (factura) => {\r\n if (!factura.fechaFra) {\r\n this.messageError('Por favor, defina una fecha');\r\n return false;\r\n } else if (!factura.factura) {\r\n this.messageError('Por favor, defina un número de factura');\r\n return false;\r\n } else if (!factura.cliente) {\r\n this.messageError('Por favor, defina un cliente');\r\n return false;\r\n } else if (!factura.importe) {\r\n this.messageError('Por favor, defina un importe');\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n modifyFactura = (factura) => {\r\n var rows = this.state.mkt.map((row) => {\r\n if (row.id === factura.id) return factura;\r\n else return row;\r\n });\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, mkt: rows, total: this.calculateTotal(rows), saveDisabled: false });\r\n };\r\n\r\n editFactura = (factura) => {\r\n this.props.openDialog('EditMktGrid', {\r\n factura: factura,\r\n producto: this.props.producto,\r\n zonas: this.props.artMKT,\r\n okHandler: this.modifyFactura,\r\n checkValues: this.checkValues,\r\n usuario: this.props.user ? this.props.user.profile.sub : 0,\r\n fecha: this.props.centroDiaSelected.dia\r\n }, 'edit_mkt_grid_dialog');\r\n };\r\n\r\n addFactura = (factura) => {\r\n let rows = this.state.mkt.slice();\r\n rows.push(factura);\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, mkt: rows, total: this.calculateTotal(rows), saveDisabled: false });\r\n };\r\n\r\n newFactura = () => {\r\n this.props.openDialog('EditMktGrid', {\r\n factura: {\r\n articuloId: this.props.producto ? this.props.producto.articuloId : '',\r\n tipoZona: this.props.producto ? this.props.artMKT.find(tz => tz.id === this.props.producto.articuloId).descr : ''\r\n },\r\n producto: this.props.producto,\r\n zonas: this.props.artMKT,\r\n okHandler: this.addFactura,\r\n checkValues: this.checkValues,\r\n usuario: this.props.user ? this.props.user.profile.sub : 0,\r\n fecha: this.props.centroDiaSelected.dia\r\n }, 'new_mkt_grid_dialog');\r\n };\r\n\r\n\r\n deleteFactura = (factura) => {\r\n let rows = this.state.mkt.filter(f => f.id !== factura.id);\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, mkt: rows, total: this.calculateTotal(rows), saveDisabled: false });\r\n };\r\n\r\n checkCaja = (caja) => {\r\n if (this.props.cajasCentro.find(c => (c.descr === caja.descr) && (c.id !== caja.id))) {\r\n return false;\r\n };\r\n return true;\r\n };\r\n\r\n calculateTotal = (rows) => {\r\n let total = 0.0;\r\n rows.forEach((r) => {\r\n total += parseFloat(r.importe);\r\n });\r\n\r\n return total;\r\n };\r\n\r\n //obtiene las facturas de MKT\r\n getMkt = () => {\r\n\r\n let mktURL = 'VMkt?date=' + this.props.centroDiaSelected.dia;\r\n\r\n if (this.props.producto !== undefined) mktURL += '&articulo_id=' + this.props.producto.articuloId;\r\n else mktURL += '¢ro_id=' + this.props.centroDiaSelected.centro.id;\r\n\r\n getData(mktURL,\r\n (response) => {\r\n this.setState({ ...this.state, mkt: response.data, total: this.calculateTotal(response.data), showSpinner: false })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching mkt'\r\n }, 'error_get_mkt', false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n //hace un update de MKT, muestra un mensaje y actualiza el store (datos cierre diario) con el valor de label del botón 1 para este control (total de las facturas introducidas)\r\n updateMKt = () => {\r\n\r\n this.setState({ ...this.state, saveDisabled: true });\r\n\r\n var facturas = this.state.mkt.slice();\r\n facturas.forEach((f) => {\r\n if (typeof f.id !== 'number') f.id = -1;\r\n });\r\n\r\n let mktURL = 'VMkt/facturas?date=' + this.props.centroDiaSelected.dia;\r\n if (this.props.producto !== undefined) mktURL += '&articulo_id=' + this.props.producto.articuloId;\r\n else mktURL += '¢ro_id=' + this.props.centroDiaSelected.centro.id;\r\n\r\n postData(mktURL,\r\n () => {\r\n this.props.hideDialog();\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'mkt actualizados'\r\n }, 'update_mkt_success_dialog', false, 'sm');\r\n this.props.setSaveState(false);\r\n if (this.props.producto !== undefined) this.props.modifyDatosCierreDiario({ ...this.props.producto, importe: this.state.total, button1: this.state.total })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating mkt'\r\n }, 'update_mkt_error_dialog', false, 'sm');\r\n },\r\n facturas,\r\n this.props.user\r\n );\r\n\r\n\r\n };\r\n\r\n componentDidMount = () => {\r\n this.getMkt();\r\n this.props.getArtMktCentro(this.props.centroDiaSelected.centro.id);\r\n };\r\n\r\n deshacer = () => {\r\n this.setState({ ...this.state, showSpinner: true })\r\n this.getMkt();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.showSpinner)\r\n return (\r\n
\r\n \r\n
\r\n );\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n
\r\n

Total

\r\n\r\n \r\n
\r\n\r\n
\r\n {this.props.isDialog ?\r\n \r\n :\r\n \r\n }\r\n {!this.props.isDiaCerrado ? : ''}\r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierreDiarioMKTGrid.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n user: PropTypes.object,\r\n artMKT: PropTypes.array.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n //dispatch\r\n modifyDatosCierreDiario: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n getArtMktCentro: PropTypes.func.isRequired,\r\n //parameters\r\n producto: PropTypes.object\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n artMKT: state.artMKT,\r\n user: state.oidc.user\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyDatosCierreDiario,\r\n hideDialog,\r\n openDialog,\r\n getArtMktCentro,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreDiarioMKTGrid));","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport uuidv4 from \"uuid\";\r\n\r\n//material ui:\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport { Tooltip, Fade } from \"@material-ui/core\";\r\n\r\n//components:\r\nimport FloatNumberFormatInput from \"../../components/float_number_input_formatter\";\r\nimport DatePicker from \"../../components/utils/DatePicker\";\r\n\r\nconst drawerWidth = 240;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: \"100%\",\r\n width: drawerWidth\r\n },\r\n pairContainer: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n minWidth: 520\r\n },\r\n formControl: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n margin: \"5px 25px\",\r\n minWidth: 120,\r\n height: 72,\r\n width: 185\r\n },\r\n buttonsContainer: {\r\n marginLeft: 16\r\n },\r\n button: {\r\n margin: \"15px 15px 15px 0\",\r\n padding: \"10px 4%\",\r\n borderRadius: 0,\r\n textTransform: \"capitalize\",\r\n color: \"white\",\r\n border: \"none\",\r\n boxShadow: \"none\"\r\n },\r\n inputImporte: {\r\n textAlign: \"right\"\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: \"#3a3434\",\r\n fontWeight: 200\r\n }\r\n});\r\n\r\nclass EditMktGrid extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.factura.id ? this.props.factura.id : uuidv4(),\r\n fechaFra: this.props.factura.fechaFra\r\n ? this.props.factura.fechaFra.slice(0, 10)\r\n : this.props.fecha,\r\n factura: this.props.factura.factura ? this.props.factura.factura : \"\",\r\n cliente: this.props.factura.cliente ? this.props.factura.cliente : \"\",\r\n importe: this.props.factura.importe ? this.props.factura.importe : 0.0,\r\n cobrada: this.props.factura.cobrada ? this.props.factura.cobrada : false,\r\n tipoZona: this.props.factura.tipoZona\r\n ? this.props.factura.tipoZona\r\n : this.props.zonas[0].descr,\r\n articuloId: this.props.factura.articuloId\r\n ? this.props.factura.articuloId\r\n : this.props.zonas[0].id,\r\n artMKTLocked: this.props.producto ? true : false\r\n };\r\n }\r\n\r\n handleChange = event => {\r\n this.setState({ cobrada: event.target.checked });\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n handleZonaChange = event => {\r\n this.setState({\r\n ...this.state,\r\n articuloId: event.target.value,\r\n tipoZona: this.props.zonas.find(\r\n tz => tz.id === parseInt(event.target.value)\r\n ).descr\r\n });\r\n };\r\n\r\n handleDateValueChange = event => {\r\n this.setState({ ...this.state, fechaFra: event });\r\n };\r\n\r\n compare = (a, b) => {\r\n if (a.descr < b.descr) return -1;\r\n if (a.descr > b.descr) return 1;\r\n return 0;\r\n };\r\n\r\n fillZonas = () => {\r\n return [...this.props.zonas].sort(this.compare).map((zona, index) => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n Zona\r\n\r\n this.handleZonaChange(event)}\r\n name=\"zonaId\"\r\n inputProps={{ readOnly: this.state.artMKTLocked }}\r\n >\r\n {this.fillZonas()}\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n {/* this.handleDateValueChange(event)}\r\n disabled\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleDateValueChange(d.toISOString());\r\n }\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n this.handleValueChange(event, \"factura\")}\r\n />\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, \"cliente\")}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, \"importe\")}\r\n />\r\n \r\n
\r\n\r\n \r\n \r\n \r\n }\r\n label=\"¿Cobrada?\"\r\n />\r\n \r\n \r\n
\r\n\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n {\r\n const factura = {\r\n id: this.state.id,\r\n fechaFra: this.state.fechaFra,\r\n factura: this.state.factura,\r\n cliente: this.state.cliente,\r\n importe: this.state.importe,\r\n cobrada: this.state.cobrada,\r\n fecha: this.props.fecha,\r\n usuarioId: this.props.usuario,\r\n articuloId: this.state.articuloId,\r\n tipoZona: this.state.tipoZona\r\n };\r\n\r\n if (this.props.checkValues(factura)) {\r\n this.props.okHandler(factura);\r\n this.props.hideDialog();\r\n }\r\n }}\r\n >\r\n Guardar\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nEditMktGrid.propTypes = {\r\n factura: PropTypes.object,\r\n producto: PropTypes.object.isRequired,\r\n zonas: PropTypes.object.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkValues: PropTypes.func.isRequired,\r\n usuario: PropTypes.number.isRequired,\r\n fecha: PropTypes.string.isRequired,\r\n hideDialog: PropTypes.func.isRequired\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditMktGrid);\r\n","import React from 'react';\r\nimport NumberFormat from 'react-number-format';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function IntNumberFormatText(props) {\r\n const { inputRef, onChange, ...other } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nIntNumberFormatText.propTypes = {\r\n inputRef: PropTypes.func,\r\n onChange: PropTypes.func,\r\n};","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport update from 'immutability-helper';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//actions:\r\nimport { modifyDatosCierreDiario } from '../../actions/cierre_diario_actions';\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions/index';\r\n\r\n//components:\r\n\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\nimport IntNumberFormatInput from '../../components/int_number_input_formatter';\r\nimport IntNumberFormatText from '../../components/int_number_text_formatter';\r\n\r\n//helpers:\r\nimport { getData, postData } from '../../dataLib';\r\n\r\n//material ui:\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\nimport InputBase from '@material-ui/core/InputBase';\r\n\r\n//grid de datos de contadores de maquinas\r\n//solo trabaja con state local ya que ningun otro control depende de estos datos\r\n//y hace todas las modificaciones directamente en la DB cuando se hace click en OK\r\n\r\nconst styles = theme => ({\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n width: 200,\r\n margin: '30px 8px 20px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 80,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n divData: {\r\n position: 'relative'\r\n },\r\n cover: {\r\n position: 'absolute',\r\n height: 300,\r\n width: '100%',\r\n marginLeft: 8,\r\n zIndex: 1,\r\n backgroundColor: '#ddd',\r\n opacity: 0.3,\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n header: {\r\n display: 'flex'\r\n },\r\n headerBox: {\r\n width: 85,\r\n margin: 0,\r\n fontSize: 12,\r\n fontWeight: 500,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n border: '1px solid #dddddd',\r\n background: '#f9f9f9',\r\n },\r\n table: {\r\n display: 'inline-block',\r\n border: '1px solid #dddddd',\r\n },\r\n row: {\r\n display: 'flex',\r\n },\r\n rowTextCell: {\r\n width: 85,\r\n fontSize: 12,\r\n textAlign: 'right',\r\n border: '1px solid #dddddd',\r\n paddingRight: theme.spacing(1),\r\n paddingLeft: theme.spacing(1),\r\n },\r\n inputCell: {\r\n textAlign: 'right',\r\n fontSize: 12,\r\n padding: 0\r\n },\r\n});\r\n\r\nclass CierreDiarioArcadeGrid extends React.PureComponent {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n lecturas: [],\r\n total: 0.00,\r\n showSpinner: true,\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.producto === undefined &&\r\n prevProps.centroDiaSelected !== this.props.centroDiaSelected) {\r\n this.getLecturas();\r\n }\r\n\r\n if (prevProps.centroDiaSelected.dia !== this.props.centroDiaSelected.dia || prevProps.centroDiaSelected.centro !== this.props.centroDiaSelected.centro)\r\n this.setState({ ...this.state, showSpinner: true })\r\n };\r\n\r\n calculateTotal = (rows) => {\r\n let total = 0.00;\r\n rows.forEach((r) => {\r\n total += parseFloat(r.ingresos);\r\n });\r\n\r\n return total.toFixed(2);\r\n };\r\n\r\n messageError = error => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: error\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkValues = (lectura) => {\r\n if (lectura.contadorIni > lectura.contadorFin) {\r\n this.messageError('Lectura final debe ser igual o mayor a la inicial');\r\n return false;\r\n };\r\n return true;\r\n };\r\n\r\n modifyLectura = (lectura) => {\r\n var rows = this.state.lecturas.map((row) => {\r\n if (row.id === lectura.id) {\r\n return { ...row, contadorFin: lectura.contadorFin, ingresos: lectura.contadorFin - lectura.contadorIni, comentario: lectura.comentario };\r\n }\r\n else return row;\r\n });\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, lecturas: rows, total: this.calculateTotal(rows) });\r\n };\r\n\r\n //obtiene las lecturas de los contadores\r\n getLecturas = () => {\r\n\r\n let lecturasURL = 'VLecturas?iTipo=3&date=' + this.props.centroDiaSelected.dia\r\n\r\n if (this.props.producto !== undefined) lecturasURL += '&zona_id=' + this.props.producto.zonaId + '¢ro_id=' + this.props.producto.centroId;\r\n else lecturasURL += '¢ro_id=' + this.props.centroDiaSelected.centro.id;\r\n\r\n getData(lecturasURL,\r\n (response) => {\r\n this.setState({ ...this.state, lecturas: response.data, total: this.calculateTotal(response.data), showSpinner: false });\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching lecturas'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n\r\n };\r\n\r\n //hace un update de lecturas, muestra un mensaje y actualiza el store\r\n updateLecturas = () => {\r\n postData('vlecturas/lecturas',\r\n () => {\r\n this.props.hideDialog();\r\n // this.props.openDialog('SimpleMessage', {\r\n // message: 'gastos actualizados'\r\n // }, uuidv4(), false, 'sm');\r\n this.props.setSaveState(false);\r\n if (this.props.producto !== undefined) this.props.modifyDatosCierreDiario({ ...this.props.producto, importe: this.state.total })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating arcade'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.state.lecturas,\r\n this.props.user\r\n );\r\n\r\n };\r\n\r\n componentDidMount = () => {\r\n this.getLecturas();\r\n };\r\n\r\n deshacer = () => {\r\n this.setState({ ...this.state, showSpinner: true })\r\n this.getLecturas();\r\n }\r\n\r\n\r\n handleGridRowsUpdated = (fromRow, toRow, updated, tipo) => {\r\n \r\n for (let i = fromRow; i <= toRow; i++) {\r\n\r\n let updatedRow = update(this.state.lecturas[i], { $merge: updated });\r\n if(this.checkValues(updatedRow)) this.modifyLectura(updatedRow);\r\n }\r\n\r\n };\r\n\r\n handleEurosContadorChange = (event, index) => {\r\n this.modifyLectura({ ...this.state.lecturas[index], contadorFin: event.target.value });\r\n }\r\n\r\n handleEurosContadorBlur = (event, index) => {\r\n if(this.state.lecturas[index].contadorIni > this.state.lecturas[index].contadorFin){\r\n this.props.openDialog('SimpleMessage', {message: 'El contador actual no puede ser menor que el contador inicial' }, 'error-contador-fin', false, 'sm'); \r\n this.modifyLectura({ ...this.state.lecturas[index], contadorFin: this.state.lecturas[index].contadorIni });\r\n }\r\n }\r\n\r\n renderEurosRow = (row, index) => {\r\n\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
{row.regInterno}
\r\n
{row.numOrden}
\r\n
{row.fecha.slice(0,10)}
\r\n
\r\n
\r\n this.handleEurosContadorChange(event, index)}\r\n onBlur={(event) => this.handleEurosContadorBlur(event, index)}\r\n />\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n renderEurosRows = () => {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
\r\n
Reg. Int.
\r\n
#
\r\n
Fecha
\r\n
Cont. Ini
\r\n
Cont. Fin
\r\n
Ingresos
\r\n
\r\n {this.state.lecturas.map((row, index) => {\r\n return this.renderEurosRow(row, index);\r\n })}\r\n
\r\n )\r\n }\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n !this.state.showSpinner ?\r\n
\r\n
\r\n\r\n {this.renderEurosRows()}\r\n\r\n
\r\n

Total

\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n {this.props.isDialog ?\r\n \r\n :\r\n \r\n }\r\n {!this.props.isDiaCerrado ? : ''}\r\n
\r\n
\r\n\r\n :\r\n
\r\n \r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierreDiarioArcadeGrid.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isDialog: PropTypes.bool,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n user: PropTypes.object, \r\n //dispatch\r\n modifyDatosCierreDiario: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n //parameters\r\n producto: PropTypes.object\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n user: state.oidc.user\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyDatosCierreDiario,\r\n hideDialog,\r\n openDialog,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreDiarioArcadeGrid));","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\n//component:\r\nimport IntNumberFormatInput from '../../components/int_number_input_formatter';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n margin: '8px 0'\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n marginTop: 35,\r\n marginLeft: 25,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 20px',\r\n marginBottom: 20,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass EditArcadeGrid extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.lectura.id ? this.props.lectura.id : uuidv4(),\r\n contadorIni: this.props.lectura.contadorIni ? this.props.lectura.contadorIni : 0,\r\n contadorFin: this.props.lectura.contadorFin ? this.props.lectura.contadorFin : 0,\r\n regInterno: this.props.lectura.regInterno ? this.props.lectura.regInterno : '',\r\n comentario: this.props.lectura.comentario ? this.props.lectura.comentario : '',\r\n };\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'contadorFin')}\r\n />\r\n \r\n \r\n\r\n \r\n this.handleValueChange(event, 'comentario')}\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditArcadeGrid.propTypes = {\r\n lectura: PropTypes.object,\r\n okHandler: PropTypes.func.isRequired,\r\n checkValues: PropTypes.func.isRequired,\r\n usuario: PropTypes.number.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditArcadeGrid);","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//actions:\r\nimport { modifyDatosCierreDiario, getArtGastosCentro, getTipogastosCierre } from '../../actions/cierre_diario_actions';\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions/index';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\n\r\n//material ui components:\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\n//helpers:\r\nimport { getData, postData } from '../../dataLib';\r\n\r\n//grid de datos de facturas de MKT\r\n//solo trabaja con state local ya que ningun otro control depende de estos datos\r\n//y hace todas las modificaciones directamente en la DB cuando se hace click en OK\r\n\r\nconst styles = theme => ({\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n width: 200,\r\n margin: '30px 8px 20px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 80,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n textAlign: 'right'\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 220,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n divData: {\r\n position: 'relative'\r\n },\r\n cover: {\r\n position: 'absolute',\r\n height: 300,\r\n width: '100%',\r\n marginLeft: 8,\r\n zIndex: 1,\r\n backgroundColor: '#ddd',\r\n opacity: 0.3,\r\n },\r\n});\r\n\r\nclass CierreDiarioGastosGrid extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n gastos: [],\r\n total: 0.00,\r\n showSpinner: true,\r\n saveDisabled: true\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.producto === undefined &&\r\n prevProps.centroDiaSelected !== this.props.centroDiaSelected) {\r\n this.getGastos();\r\n this.props.getArtGastosCentro(this.props.centroDiaSelected.centro.id);\r\n this.props.getTipogastosCierre();\r\n };\r\n if (prevProps.centroDiaSelected.dia !== this.props.centroDiaSelected.dia || prevProps.centroDiaSelected.centro !== this.props.centroDiaSelected.centro)\r\n this.setState({ ...this.state, showSpinner: true })\r\n };\r\n\r\n messageError = error => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: error\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkValues = (gasto) => {\r\n\r\n if (!gasto.importe) {\r\n this.messageError('Por favor, defina un importe');\r\n return false;\r\n }\r\n else if(!gasto.observ){\r\n this.messageError('El campo observaciones no puede estar vacío.');\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n modifyGasto = (gasto) => {\r\n var rows = this.state.gastos.map((row) => {\r\n if (row.id === gasto.id) return gasto;\r\n else return row;\r\n });\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, gastos: rows, total: this.calculateTotal(rows), saveDisabled: false });\r\n };\r\n\r\n editGasto = (gasto) => {\r\n this.props.openDialog('EditGastosGrid', {\r\n gasto: gasto,\r\n producto: this.props.producto,\r\n zonas: this.props.artGastos.filter(tz => tz.id === this.props.producto.articuloId),\r\n conceptos: this.props.tipoGastosCierre,\r\n okHandler: this.modifyGasto,\r\n checkValues: this.checkValues,\r\n usuario: this.props.user ? this.props.user.profile.sub : 0,\r\n fecha: this.props.centroDiaSelected.dia\r\n }, uuidv4());\r\n };\r\n\r\n addGasto = (gasto) => {\r\n let rows = this.state.gastos.slice();\r\n rows.push(gasto);\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, gastos: rows, total: this.calculateTotal(rows), saveDisabled: false });\r\n };\r\n\r\n //si venimos de cierre diario (existe this.props.producto) fijamos el tipo de zona (bar, bolera, ...)\r\n newGasto = () => {\r\n this.props.openDialog('EditGastosGrid', {\r\n gasto: {\r\n articuloId: this.props.producto ? this.props.producto.articuloId : '',\r\n tipoZona: this.props.producto ? this.props.artGastos.find(tz => tz.id === this.props.producto.articuloId).descr : ''\r\n },\r\n producto: this.props.producto,\r\n zonas: this.props.artGastos.filter(tz => tz.id === this.props.producto.articuloId),\r\n conceptos: this.props.tipoGastosCierre,\r\n okHandler: this.addGasto,\r\n checkValues: this.checkValues,\r\n usuario: this.props.user ? this.props.user.profile.sub : 0,\r\n fecha: this.props.centroDiaSelected.dia\r\n }, uuidv4());\r\n };\r\n\r\n\r\n deleteGasto = (factura) => {\r\n let rows = this.state.gastos.filter(f => f.id !== factura.id);\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, gastos: rows, total: this.calculateTotal(rows), saveDisabled: false });\r\n };\r\n\r\n calculateTotal = (rows) => {\r\n let total = 0.0;\r\n rows.forEach((r) => {\r\n total += parseFloat(r.importe);\r\n });\r\n\r\n return total;\r\n };\r\n\r\n //obtiene los gastos de este articulo y dia\r\n getGastos = () => {\r\n\r\n let gastosURL = 'VGastos?date=' + this.props.centroDiaSelected.dia;\r\n\r\n if (this.props.producto !== undefined) gastosURL += '&articulo_id=' + this.props.producto.articuloId;\r\n else gastosURL += '¢ro_id=' + this.props.centroDiaSelected.centro.id;\r\n\r\n getData(gastosURL,\r\n (response) => {\r\n this.setState({ ...this.state, gastos: response.data, total: this.calculateTotal(response.data), showSpinner: false });\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching gastos'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n //hace un update de gastos\r\n updateGastos = () => {\r\n\r\n this.setState({ ...this.state, saveDisabled: true });\r\n\r\n var gastos = this.state.gastos.slice();\r\n gastos.forEach((f) => {\r\n if (typeof f.id !== 'number') f.id = -1;\r\n });\r\n\r\n let gastosURL = 'VGastos/gastos?date=' + this.props.centroDiaSelected.dia;\r\n if (this.props.producto !== undefined) gastosURL += '&articulo_id=' + this.props.producto.articuloId;\r\n else gastosURL += '¢ro_id=' + this.props.centroDiaSelected.centro.id;\r\n\r\n postData(gastosURL,\r\n () => {\r\n this.props.hideDialog();\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'gastos actualizados'\r\n }, uuidv4(), false, 'sm');\r\n this.props.setSaveState(false);\r\n if (this.props.producto !== undefined) this.props.modifyDatosCierreDiario({ ...this.props.producto, importe: -1.0 * this.state.total })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating gastos'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n gastos,\r\n this.props.user\r\n );\r\n\r\n };\r\n\r\n componentDidMount = () => {\r\n\r\n let centroId = -1;\r\n if (this.props.producto !== undefined) centroId = this.props.producto.centroId;\r\n else centroId = this.props.centroDiaSelected.centro.id;\r\n\r\n this.getGastos();\r\n this.props.getArtGastosCentro(centroId);\r\n this.props.getTipogastosCierre();\r\n };\r\n\r\n deshacer = () => {\r\n this.setState({ ...this.state, showSpinner: true })\r\n this.getGastos();\r\n }\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.showSpinner)\r\n return (\r\n
\r\n \r\n
\r\n );\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n
\r\n

Total

\r\n\r\n \r\n
\r\n\r\n
\r\n {this.props.isDialog ?\r\n \r\n :\r\n \r\n }\r\n {!this.props.isDiaCerrado ? : ''}\r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierreDiarioGastosGrid.propTypes = {\r\n //state\r\n user: PropTypes.object,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isDiaCerrado: PropTypes.object.isRequired,\r\n artGastos: PropTypes.object.isRequired,\r\n tipoGastosCierre: PropTypes.object.isRequired,\r\n //dispatch\r\n modifyDatosCierreDiario: PropTypes.func.isRequired,\r\n getArtGastosCentro: PropTypes.func.isRequired,\r\n getTipogastosCierre: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n //parameters\r\n producto: PropTypes.object,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n artGastos: state.artGastos,\r\n tipoGastosCierre: state.tipoGastosCierre,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n user: state.oidc.user\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyDatosCierreDiario,\r\n hideDialog,\r\n openDialog,\r\n getArtGastosCentro,\r\n getTipogastosCierre,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreDiarioGastosGrid));","import React from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport uuidv4 from 'uuid';\r\n\r\n//component:\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n margin: '8px 0'\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n textArea: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n width: 185,\r\n height: 72,\r\n },\r\n buttonsContainer: {\r\n marginTop: 35,\r\n marginLeft: 25,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 20px',\r\n marginBottom: 20,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n fontSize: {\r\n fontSize: 13\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass EditGastosGrid extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n\r\n\r\n //si venimos de cierre diario (existe this.producto)\r\n //ponemos a true la propiedad de artGastoLocked para indicar que \r\n //no se puede cambiar el tipo de zona(articuloId y tipoZona ya no vienen como parametros)\r\n\r\n this.state = {\r\n\r\n id: this.props.gasto.id ? this.props.gasto.id : uuidv4(),\r\n tipoZona: this.props.gasto.tipoZona ? this.props.gasto.tipoZona : this.props.zonas[0].descr,\r\n iTipoGasto: this.props.gasto.iTipoGasto ? this.props.gasto.iTipoGasto : this.props.conceptos[0].id,\r\n tipoArticulo: this.props.gasto.tipoArticulo ? this.props.gasto.tipoArticulo : this.props.conceptos[0].descr,\r\n importe: this.props.gasto.importe ? this.props.gasto.importe : '',\r\n observ: this.props.gasto.observ ? this.props.gasto.observ : '',\r\n fecha: this.props.gasto.fecha ? this.props.gasto.fecha : this.props.fecha,\r\n articuloId: this.props.gasto.articuloId ? this.props.gasto.articuloId : this.props.zonas[0].id,\r\n artGastoLocked: this.props.producto ? true : false\r\n }\r\n }\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n handleZonaChange = (event) => {\r\n this.setState({\r\n ...this.state,\r\n articuloId: event.target.value,\r\n tipoZona: this.props.zonas.find(tz => tz.id === parseInt(event.target.value)).descr\r\n });\r\n };\r\n\r\n handleConceptoChange = (event) => {\r\n this.setState({\r\n ...this.state,\r\n iTipoGasto: event.target.value,\r\n tipoArticulo: this.props.conceptos.find(tz => tz.id === parseInt(event.target.value)).descr\r\n });\r\n };\r\n\r\n compare = (a, b) => {\r\n if (a.descr < b.descr)\r\n return -1;\r\n if (a.descr > b.descr)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n fillZonas = () => {\r\n return [...this.props.zonas].sort(this.compare).map((zona, index) => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n fillConceptos = () => {\r\n return [...this.props.conceptos].sort(this.compare).map((concepto, index) => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n //el select de tipo de zona es de solo lectura si venimos de cierre diario (this.state.artGastoLocked)\r\n return (\r\n
\r\n\r\n
\r\n \r\n \r\n Zona\r\n \r\n\r\n this.handleZonaChange(event)}\r\n name=\"zonaId\"\r\n inputProps={{ readOnly: this.state.artGastoLocked }}\r\n >\r\n {this.fillZonas()}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Artículo\r\n \r\n this.handleConceptoChange(event)}\r\n name=\"iTipoGasto\"\r\n >\r\n {this.fillConceptos()}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'importe')}\r\n />\r\n \r\n \r\n \r\n this.handleValueChange(event, 'observ')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditGastosGrid.propTypes = {\r\n gasto: PropTypes.object,\r\n producto: PropTypes.object.isRequired,\r\n zonas: PropTypes.array.isRequired,\r\n conceptos: PropTypes.array.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkValues: PropTypes.func.isRequired,\r\n usuario: PropTypes.number.isRequired,\r\n fecha: PropTypes.string.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditGastosGrid);","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Typography } from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\n//helpers:\r\nimport { getData, postData, putData } from '../../dataLib';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog } from '../../actions/index';\r\nimport { modifyDatosCierreDiario } from '../../actions/cierre_diario_actions';\r\n\r\n//components:\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\nimport IntNumberFormatInput from '../../components/int_number_input_formatter';\r\n\r\n\r\nconst styles = theme => ({\r\n formContainer: {\r\n padding: '20px 5px',\r\n },\r\n hoursContainer: {\r\n display: 'flex',\r\n flexFlow: 'column wrap',\r\n alignContent: 'space-between',\r\n maxHeight: 410,\r\n marginBottom: 10,\r\n width: '100%',\r\n margin: '0 auto',\r\n },\r\n formItem: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n marginTop: 15,\r\n },\r\n label: {\r\n textAlign: 'left',\r\n fontSize: 11,\r\n marginRight: theme.spacing(1),\r\n },\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n width: 200,\r\n margin: '30px 8px 20px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 11,\r\n },\r\n input: {\r\n width: 70,\r\n height: 30,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n button: {\r\n margin: '15px 15px 15px 0',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n divSpinner: {\r\n display: 'inline',\r\n margin: 15\r\n },\r\n spinner: {\r\n width: 40,\r\n height: 40,\r\n },\r\n\r\n});\r\n\r\nclass CierreDiarioPorHoras extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n desglose:\r\n {\r\n id: -1,\r\n articuloId: -1,\r\n fecha: this.props.centroDiaSelected.dia,\r\n usuarioId: 0,\r\n hora01: 0.0,\r\n hora02: 0.0,\r\n hora03: 0.0,\r\n hora04: 0.0,\r\n hora05: 0.0,\r\n hora06: 0.0,\r\n hora07: 0.0,\r\n hora08: 0.0,\r\n hora09: 0.0,\r\n hora10: 0.0,\r\n hora11: 0.0,\r\n hora12: 0.0,\r\n hora13: 0.0,\r\n hora14: 0.0,\r\n hora15: 0.0,\r\n hora16: 0.0,\r\n hora17: 0.0,\r\n hora18: 0.0,\r\n hora19: 0.0,\r\n hora20: 0.0,\r\n hora21: 0.0,\r\n hora22: 0.0,\r\n hora23: 0.0,\r\n hora24: 0.0,\r\n },\r\n total: 0.0,\r\n normal: 0.0,\r\n packs: 0.0,\r\n loading: true\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.getDesglose();\r\n }\r\n\r\n calculateTotal = (desglose) => {\r\n let total = 0.0;\r\n\r\n total += parseFloat(desglose.hora01);\r\n total += parseFloat(desglose.hora02);\r\n total += parseFloat(desglose.hora03);\r\n total += parseFloat(desglose.hora04);\r\n total += parseFloat(desglose.hora05);\r\n total += parseFloat(desglose.hora06);\r\n total += parseFloat(desglose.hora07);\r\n total += parseFloat(desglose.hora08);\r\n total += parseFloat(desglose.hora09);\r\n total += parseFloat(desglose.hora10);\r\n total += parseFloat(desglose.hora11);\r\n total += parseFloat(desglose.hora12);\r\n total += parseFloat(desglose.hora13);\r\n total += parseFloat(desglose.hora14);\r\n total += parseFloat(desglose.hora15);\r\n total += parseFloat(desglose.hora16);\r\n total += parseFloat(desglose.hora17);\r\n\r\n return total;\r\n }\r\n\r\n getDesglose = () => {\r\n\r\n let desgloseURL = '';\r\n\r\n if (this.props.producto.iKind === -5) desgloseURL += 'dedesglosehoras/cierrediario?zona_id=' + this.props.producto.zonaId + '&date=' + this.props.centroDiaSelected.dia;\r\n else desgloseURL += 'dadesglosehoras/cierrediario?zona_id=' + this.props.producto.zonaId + '&date=' + this.props.centroDiaSelected.dia;\r\n\r\n getData(desgloseURL,\r\n (response) => {\r\n this.setState({ ...this.state, desglose: response.data, total: this.calculateTotal(response.data), loading: false })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching desglose horas'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n updateDesglose = () => {\r\n\r\n console.log(this.props.producto);\r\n console.log(this.props.centroDiaSelected.centro);\r\n \r\n\r\n let desgloseURL = '';\r\n\r\n this.setState({ ...this.state, loading: true });\r\n\r\n if (this.props.producto.iKind === -5) desgloseURL += 'dedesglosehoras/' + this.state.desglose.id;\r\n else {\r\n\r\n const art2 = this.props.productoRelacionado ? this.props.productoRelacionado.articuloId : '0';\r\n\r\n desgloseURL += 'dadesglosehoras/' + this.state.desglose.id;\r\n if (this.props.centroDiaSelected.centro.sigfrid !== -1 && this.props.producto.iKind === -7) {\r\n desgloseURL += '?art1=' + this.props.producto.articuloId + '&art2=' + art2 + '&normal=' + this.state.normal + '&packs=' + this.state.packs;\r\n }\r\n }\r\n\r\n putData(desgloseURL,\r\n () => {\r\n this.props.hideDialog();\r\n const message = this.props.producto.iKind === -7 ? 'Ventas Bar y franjas horarias importadas' : 'Ventas por hora actualizadas'\r\n this.props.openDialog('SimpleMessage', {\r\n message: message\r\n }, uuidv4(), false, 'sm');\r\n if (this.props.centroDiaSelected.centro.sigfrid !== -1 && this.props.producto.iKind === -7) {\r\n this.props.modifyDatosCierreDiario({ ...this.props.producto, button1: this.state.total, importe: this.state.normal });\r\n this.props.modifyDatosCierreDiario({ ...this.props.productoRelacionado, importe: this.state.packs });\r\n }\r\n else {\r\n if(this.props.producto.iKind === -7) this.props.modifyDatosCierreDiario({ ...this.props.producto, button1: this.state.total });\r\n else this.props.modifyDatosCierreDiario({ ...this.props.producto, button2: this.state.total });\r\n }\r\n\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR actualizando ventas por hora'\r\n }, uuidv4(), false, 'sm');\r\n this.setState({ ...this.state, loading: false });\r\n },\r\n this.state.desglose,\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n newDesglose = () => {\r\n let desgloseURL = '';\r\n\r\n this.setState({ ...this.state, loading: true });\r\n\r\n if (this.props.producto.iKind === -5) desgloseURL += 'dedesglosehoras';\r\n else {\r\n desgloseURL += 'dadesglosehoras';\r\n\r\n const art2 = this.props.productoRelacionado ? this.props.productoRelacionado.articuloId : '0';\r\n\r\n if (this.props.centroDiaSelected.centro.sigfrid !== -1 && this.props.producto.iKind === -7) {\r\n desgloseURL += '?art1=' + this.props.producto.articuloId + '&art2=' + art2 + '&normal=' + this.state.normal + '&packs=' + this.state.packs;\r\n }\r\n }\r\n\r\n postData(desgloseURL,\r\n () => {\r\n this.props.hideDialog();\r\n const message = this.props.producto.iKind === -7 ? 'Ventas Bar y franjas horarias importadas' : 'Ventas por hora actualizadas'\r\n this.props.openDialog('SimpleMessage', {\r\n message: message\r\n }, uuidv4(), false, 'sm');\r\n if (this.props.centroDiaSelected.centro.sigfrid !== -1 && this.props.producto.iKind === -7) {\r\n this.props.modifyDatosCierreDiario({ ...this.props.producto, button1: this.state.total, importe: this.state.normal });\r\n this.props.modifyDatosCierreDiario({ ...this.props.productoRelacionado, importe: this.state.packs });\r\n }\r\n else {\r\n if(this.props.producto.iKind === -7) this.props.modifyDatosCierreDiario({ ...this.props.producto, button1: this.state.total });\r\n else this.props.modifyDatosCierreDiario({ ...this.props.producto, button2: this.state.total });\r\n }\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating desglose horas 2'\r\n }, uuidv4(), false, 'sm');\r\n\r\n this.setState({ ...this.state, loading: false });\r\n },\r\n this.state.desglose,\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n //const value = (event.target.value === '') ? 0 : event.target.value\r\n let newDesglose = { ...this.state.desglose, [field]: event.target.value };\r\n this.setState({ ...this.state, desglose: newDesglose, total: this.calculateTotal(newDesglose) });\r\n }\r\n\r\n\r\n handleBlur = (event, field) => {\r\n if (event.target.value === '') {\r\n let newDesglose = { ...this.state.desglose, [field]: 0 };\r\n this.setState({ ...this.state, desglose: newDesglose, total: this.calculateTotal(newDesglose) });\r\n }\r\n }\r\n\r\n\r\n renderTextField = (label, field, inputComponent) => {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n
\r\n \r\n {label}\r\n \r\n\r\n this.handleValueChange(event, field)}\r\n onBlur={(event) => this.handleBlur(event, field)}\r\n InputProps={{ classes: { input: classes.inputImporte }, inputComponent: inputComponent }}\r\n variant=\"outlined\"\r\n disabled={this.props.isDiaCerrado || (this.props.centroDiaSelected.centro.sigfrid !== -1 && this.props.producto.iKind === -7)}\r\n />\r\n\r\n
\r\n )\r\n }\r\n\r\n\r\n // importSigfrid = () => {\r\n\r\n // const getURL = 'sigfrid?centro_id=' + this.props.centroDiaSelected.centro.sigfrid + '&date=' + this.props.centroDiaSelected.dia;\r\n\r\n // getData(getURL,\r\n // (response) => {\r\n\r\n // let totales = [];\r\n\r\n // let normal = 0.0;\r\n // let packs = 0.0;\r\n\r\n // for (const key in response.data.datos) {\r\n\r\n // if (key !== \"local\" && key !== \"fecha\" && key !== \"cabeceras\" && key !== \"totales\") {\r\n\r\n // const linea = response.data.datos[key];\r\n\r\n // if (linea[19].value20 === null) {\r\n\r\n // const hora = parseInt(linea[12].value13.slice(0, 2));\r\n // const importe = parseFloat(linea[8].value9.replace('.', '').replace(',', '.'));\r\n // const tipo = linea[13].value14;\r\n\r\n // if (totales[hora] !== undefined) totales[hora] += importe;\r\n // else totales[hora] = importe;\r\n\r\n // if (tipo === \"MESA\") packs += importe;\r\n // else normal += importe;\r\n\r\n // }\r\n // }\r\n // }\r\n\r\n // var newDesglose = { ...this.state.desglose };\r\n\r\n // let antes12 = 0.0;\r\n // for (let i = 5; i <= 12; i++) {\r\n // if (totales[i] !== undefined) antes12 += totales[i];\r\n // }\r\n\r\n // newDesglose.hora01 = antes12;\r\n // newDesglose.hora02 = totales[13] ? totales[13] : 0.0;\r\n // newDesglose.hora03 = totales[14] ? totales[14] : 0.0;\r\n // newDesglose.hora04 = totales[15] ? totales[15] : 0.0;\r\n // newDesglose.hora05 = totales[16] ? totales[16] : 0.0;\r\n // newDesglose.hora06 = totales[17] ? totales[17] : 0.0;\r\n // newDesglose.hora07 = totales[18] ? totales[18] : 0.0;\r\n // newDesglose.hora08 = totales[19] ? totales[19] : 0.0;\r\n // newDesglose.hora09 = totales[20] ? totales[20] : 0.0;\r\n // newDesglose.hora10 = totales[21] ? totales[21] : 0.0;\r\n // newDesglose.hora11 = totales[22] ? totales[22] : 0.0;\r\n // newDesglose.hora12 = totales[23] ? totales[23] : 0.0;\r\n // newDesglose.hora13 = totales[0] ? totales[0] : 0.0;\r\n // newDesglose.hora14 = totales[1] ? totales[1] : 0.0;\r\n // newDesglose.hora15 = totales[2] ? totales[2] : 0.0;\r\n // newDesglose.hora16 = totales[3] ? totales[3] : 0.0;\r\n // newDesglose.hora17 = totales[4] ? totales[4] : 0.0;\r\n\r\n // this.setState({ ...this.state, desglose: newDesglose, total: this.calculateTotal(newDesglose), normal: normal, packs: packs });\r\n\r\n // },\r\n // (error) => {\r\n // this.props.openDialog('SimpleMessage', {\r\n // message: 'ERROR fetching sigfrid'\r\n // }, uuidv4(), false, 'sm');\r\n // },\r\n // this.props.user\r\n // );\r\n\r\n // }\r\n\r\n importSigfrid = () => {\r\n\r\n this.props.importSigfrid((response) => {\r\n const newDesglose = { ...response.desglose, id: this.state.desglose.id, articuloId: this.state.desglose.articuloId, fecha: this.props.centroDiaSelected.dia };\r\n this.setState({ ...this.state, desglose: newDesglose, total: this.calculateTotal(newDesglose), normal: response.normal, packs: response.packs });\r\n });\r\n\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n const inputComponent = this.props.dataType === 'int' ? IntNumberFormatInput : FloatNumberFormatInput;\r\n\r\n return (\r\n
\r\n\r\n
\r\n\r\n {this.renderTextField('12:00 - 13:00', 'hora01', inputComponent)}\r\n {this.renderTextField('13:00 - 14:00', 'hora02', inputComponent)}\r\n {this.renderTextField('14:00 - 15:00', 'hora03', inputComponent)}\r\n {this.renderTextField('15:00 - 16:00', 'hora04', inputComponent)}\r\n {this.renderTextField('16:00 - 17:00', 'hora05', inputComponent)}\r\n {this.renderTextField('17:00 - 18:00', 'hora06', inputComponent)}\r\n {this.renderTextField('18:00 - 19:00', 'hora07', inputComponent)}\r\n {this.renderTextField('19:00 - 20:00', 'hora08', inputComponent)}\r\n {this.renderTextField('20:00 - 21:00', 'hora09', inputComponent)}\r\n {this.renderTextField('21:00 - 22:00', 'hora10', inputComponent)}\r\n {this.renderTextField('22:00 - 23:00', 'hora11', inputComponent)}\r\n {this.renderTextField('23:00 - 00:00', 'hora12', inputComponent)}\r\n {this.renderTextField('00:00 - 01:00', 'hora13', inputComponent)}\r\n {this.renderTextField('01:00 - 02:00', 'hora14', inputComponent)}\r\n {this.renderTextField('02:00 - 03:00', 'hora15', inputComponent)}\r\n {this.renderTextField('03:00 - 04:00', 'hora16', inputComponent)}\r\n {this.renderTextField('04:00 - 05:00', 'hora17', inputComponent)}\r\n\r\n
\r\n\r\n\r\n
\r\n

Total

\r\n\r\n \r\n
\r\n\r\n {this.props.producto.iKind === -7 && !this.props.isDiaCerrado && this.props.centroDiaSelected.centro.sigfrid !== -1 ?\r\n \r\n : ''}\r\n\r\n
\r\n \r\n {!this.props.isDiaCerrado && //no es un dia cerrado\r\n ((this.props.producto.iKind === -7 && this.props.centroDiaSelected.centro.sigfrid === -1) // es de bar pero no tiene sigfrid (no deberia pasar nunca)\r\n || this.props.producto.iKind !== -7) ? // no es bar\r\n\r\n \r\n\r\n : ''}\r\n
\r\n\r\n
\r\n\r\n
\r\n );\r\n\r\n }\r\n\r\n}\r\n\r\nCierreDiarioPorHoras.propTypes = {\r\n dataType: PropTypes.string.isRequired,\r\n producto: PropTypes.object.isRequired,\r\n productoRelacionado: PropTypes.object,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n user: PropTypes.object.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n modifyDatosCierreDiario: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n user: state.oidc.user,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n hideDialog,\r\n openDialog,\r\n modifyDatosCierreDiario\r\n }, dispatch);\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles, { withTheme: true })(CierreDiarioPorHoras));","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_GRUPO_PARTIDA,\r\n MODIFY_GRUPO_PARTIDA,\r\n ADD_GRUPO_PARTIDA,\r\n DELETE_GRUPO_PARTIDA,\r\n UPDATE_GRUPO_PARTIDA,\r\n} from '../constants/action_types';\r\n\r\nexport function getGrupoPartida() {\r\n return getData('Cvgrupopartidas', GET_GRUPO_PARTIDA);\r\n}\r\n\r\nexport function modifyGrupoPartida(grupoPartida) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_GRUPO_PARTIDA, payload: grupoPartida });\r\n }\r\n}\r\n\r\nexport function addGrupoPartida(grupoPartida) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_GRUPO_PARTIDA, payload: grupoPartida });\r\n }\r\n}\r\n\r\nexport function removeGrupoPartida(grupoPartida) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_GRUPO_PARTIDA, payload: grupoPartida });\r\n }\r\n}\r\n\r\nexport function updateGrupoPartidaDB (grupoPartida) {\r\n // return (dispatch, getState) => {\r\n // dispatch({ type: UPDATE_GRUPO_PARTIDA, payload: grupoPartida })\r\n // let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n // axios.post(config.API_URI() + 'cvgrupopartidas/grupos', grupoPartida,\r\n // {\r\n // headers: {\r\n // Authorization: \"Bearer \" + token\r\n // }\r\n // }\r\n // ).then((response) => {\r\n // dispatch({ type: UPDATE_GRUPO_PARTIDA + \"_SUCCESS\", payload: response })\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: 'Cambios guardados!' },\r\n // dialogid: 'success_update_grupo_partida'\r\n // });\r\n // }).catch((error) => {\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_grupo_partida'\r\n // });\r\n // });\r\n // }\r\n\r\n return postData('cvgrupopartidas/grupos', UPDATE_GRUPO_PARTIDA, grupoPartida, 'Grupos de partida actualizados', undefined);\r\n\r\n}\r\n\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\nimport update from 'immutability-helper';\r\n\r\n//helpers:\r\nimport { getData, postData } from '../../dataLib';\r\n\r\n//actions:\r\nimport { modifyDatosCierreDiario } from '../../actions/cierre_diario_actions';\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions/index';\r\nimport { getGrupoPartida } from '../../actions/grupo_partida_actions'\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport IntNumberFormatInput from '../../components/int_number_input_formatter';\r\n\r\n//material ui components:\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\n\r\nconst styles = theme => ({\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n width: 200,\r\n margin: '30px 8px 20px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 80,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n buttonNew: {\r\n margin: '15px 8px',\r\n //padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n height: 50\r\n },\r\n divData: {\r\n position: 'relative'\r\n },\r\n cover: {\r\n position: 'absolute',\r\n height: 500,\r\n width: '100%',\r\n marginLeft: 8,\r\n zIndex: 1,\r\n backgroundColor: '#ddd',\r\n opacity: 0.3,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 70,\r\n },\r\n formControlSelect: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 100,\r\n },\r\n divButton: {\r\n display: 'flex'\r\n },\r\n});\r\n\r\nclass CierreDiarioPartidasTipoGrid extends React.PureComponent {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n partidasPorTipo: [],\r\n tiposPartidaCentro: [],\r\n total: 0.00,\r\n newTipo: -1,\r\n newValue: 0,\r\n showSpinner: false,\r\n saveDisabled: true\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n\r\n if (prevProps.grupoPartida !== this.props.grupoPartida) {\r\n this.getTiposPartidaCentro();\r\n }\r\n else if (prevState.tiposPartidaCentro !== this.state.tiposPartidaCentro) {\r\n if (this.state.tiposPartidaCentro.length > 0) {\r\n this.getPartidasPorTipo();\r\n this.setState({ ...this.state, showSpinner: true });\r\n }\r\n }\r\n\r\n else if (prevProps.centroDiaSelected.dia !== this.props.centroDiaSelected.dia || prevProps.centroDiaSelected.centro !== this.props.centroDiaSelected.centro) {\r\n this.getTiposPartidaCentro();\r\n this.setState({ ...this.state, showSpinner: true });\r\n }\r\n\r\n };\r\n\r\n calculateTotal = (rows) => {\r\n let total = 0.0;\r\n rows.forEach((r) => {\r\n total += parseFloat(r.numPartidas);\r\n })\r\n\r\n return total;\r\n };\r\n\r\n messageError = error => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: error\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkValues = (partida) => {\r\n\r\n if (this.state.partidasPorTipo.find(p => (p.iTipopartidaElem === partida.iTipopartidaElem) && (p.id !== partida.id))) {\r\n this.messageError('Ya existen partidas para este tipo de partida');\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n modifyPartidasPorTipo = (partida) => {\r\n var rows = this.state.partidasPorTipo.map((row) => {\r\n if (row.id === partida.id) {\r\n const tipoPartida = this.state.tiposPartidaCentro.find(tp => tp.id === parseInt(partida.iTipopartidaElem));\r\n return {\r\n ...row,\r\n numPartidas: partida.numPartidas,\r\n iTipopartidaElem: parseInt(partida.iTipopartidaElem),\r\n descr: partida.descr,\r\n grupoPartida: this.props.grupoPartida.find(gp => gp.id === tipoPartida.iGrupoPartida).descr\r\n };\r\n }\r\n else return row;\r\n });\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, partidasPorTipo: rows, total: this.calculateTotal(rows), saveDisabled: false });\r\n };\r\n\r\n addPartidasPorTipo = (partida) => {\r\n const tipoPartida = this.state.tiposPartidaCentro.find(tp => tp.id === partida.iTipopartidaElem);\r\n partida.grupoPartida = this.props.grupoPartida.find(gp => gp.id === tipoPartida.iGrupoPartida).descr;\r\n let rows = this.state.partidasPorTipo.slice();\r\n rows.push(partida);\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, partidasPorTipo: rows, total: this.calculateTotal(rows), saveDisabled: false });\r\n };\r\n\r\n deletePartidasPorTipo = (partida) => {\r\n let rows = this.state.partidasPorTipo.filter(f => f.id !== partida.id);\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, partidasPorTipo: rows, total: this.calculateTotal(rows), saveDisabled: false });\r\n };\r\n\r\n updatePartidasPorTipo = () => {\r\n\r\n this.setState({ ...this.state, saveDisabled: true });\r\n\r\n var partidas = this.state.partidasPorTipo.slice();\r\n partidas.forEach((f) => {\r\n if (typeof f.id !== 'number') f.id = -1;\r\n f.usuarioId = this.props.user ? this.props.user.profile.sub : 0;\r\n });\r\n\r\n let partidasURL = 'VPartidaPorTipo/partidas?date=' + this.props.centroDiaSelected.dia;\r\n if (this.props.producto !== undefined) partidasURL += '¢ro_id=' + this.props.producto.centroId;\r\n else partidasURL += '¢ro_id=' + this.props.centroDiaSelected.centro.id;\r\n\r\n postData(partidasURL,\r\n () => {\r\n this.props.hideDialog();\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'Partidas por tipo actualizadas'\r\n }, uuidv4(), false, 'sm');\r\n this.props.setSaveState(false);\r\n if (this.props.producto !== undefined) this.props.modifyDatosCierreDiario({ ...this.props.producto, button1: this.state.total });\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating partidas por tipo'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n partidas,\r\n this.props.user\r\n );\r\n };\r\n\r\n getTiposPartidaCentro = () => {\r\n\r\n let partidasURL = 'VTipoPartidaCentro';\r\n\r\n if (this.props.producto !== undefined) partidasURL += '?centro_id=' + this.props.producto.centroId;\r\n else partidasURL += '?centro_id=' + this.props.centroDiaSelected.centro.id;\r\n\r\n\r\n getData(partidasURL,\r\n (response) => {\r\n if (response.data.length > 0) {\r\n this.setState({ ...this.state, tiposPartidaCentro: response.data.filter(t => t.activo), newTipo: response.data[0].id, showSpinner: false });\r\n }\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching tipos partidas por centro'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n\r\n };\r\n\r\n getPartidasPorTipo = () => {\r\n\r\n let partidasURL = 'VPartidaPorTipo?date=' + this.props.centroDiaSelected.dia;\r\n\r\n if (this.props.producto !== undefined) partidasURL += '¢ro_id=' + this.props.producto.centroId;\r\n else partidasURL += '¢ro_id=' + this.props.centroDiaSelected.centro.id;\r\n\r\n getData(partidasURL,\r\n (response) => {\r\n const partidas = response.data.map(pt => {\r\n const tipoPartida = this.state.tiposPartidaCentro.find(tp => tp.id === pt.iTipopartidaElem);\r\n return { ...pt, grupoPartida: this.props.grupoPartida.find(g => g.id === tipoPartida.iGrupoPartida).descr }\r\n })\r\n this.setState({ ...this.state, partidasPorTipo: partidas, total: this.calculateTotal(response.data), showSpinner: false, })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching partidas'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n\r\n };\r\n\r\n componentDidMount = () => {\r\n this.props.getGrupoPartida();\r\n };\r\n\r\n deshacer = () => {\r\n this.setState({ ...this.state, showSpinner: true })\r\n this.getPartidasPorTipo();\r\n }\r\n\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, updated }) => {\r\n\r\n if (fromRow !== toRow) return; //we only allow modficiation of a single row\r\n\r\n let updatedRow = update(this.state.partidasPorTipo[fromRow], { $merge: updated });\r\n\r\n if (this.checkValues(updatedRow)) {\r\n\r\n this.modifyPartidasPorTipo(updatedRow);\r\n }\r\n\r\n };\r\n\r\n handleGridNewRow = () => {\r\n const partida = {\r\n id: uuidv4(),\r\n iTipopartidaElem: this.state.newTipo,\r\n usuarioId: this.props.user ? this.props.user.profile.sub : 0,\r\n numPartidas: this.state.newValue,\r\n descr: this.state.tiposPartidaCentro.find(tp => tp.id === this.state.newTipo).descr,\r\n centroId: this.props.centroDiaSelected.centro.id,\r\n fecha: this.props.centroDiaSelected.dia,\r\n }\r\n\r\n if (this.checkValues(partida)) {\r\n\r\n const tipoPartida = this.state.tiposPartidaCentro.find(tp => tp.id === partida.iTipopartidaElem);\r\n partida.grupoPartida = this.props.grupoPartida.find(gp => gp.id === tipoPartida.iGrupoPartida).descr;\r\n let rows = this.state.partidasPorTipo.slice();\r\n rows.push(partida);\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, partidasPorTipo: rows, total: this.calculateTotal(rows), newTipo: this.state.tiposPartidaCentro[0].id, newValue: 0, saveDisabled: false });\r\n }\r\n }\r\n\r\n\r\n renderGrid = () => {\r\n\r\n var columns = [];\r\n columns.push({ key: 'grupoPartida', name: 'Grupo de partidas', editable: false, dragable: false, width: 115 });\r\n columns.push({ key: 'iTipopartidaElem', name: 'Tipo de partida', editable: false, dragable: false, width: 200, type: 'dropdown' });\r\n columns.push({ key: 'numPartidas', name: 'Número de partidas', editable: !this.props.isDiaCerrado, dragable: false, type: 'int', width: 125 });\r\n\r\n const options = this.state.tiposPartidaCentro.map(p => {\r\n return { id: p.id, value: p.id, text: p.descr }\r\n })\r\n\r\n return (\r\n \r\n )\r\n\r\n }\r\n\r\n compare = (a, b) => {\r\n if (a.descr < b.descr)\r\n return -1;\r\n if (a.descr > b.descr)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n fillTiposPartida = () => {\r\n return [...this.state.tiposPartidaCentro].sort(this.compare).map((tp, index) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n\r\n handleTipoChange = (event) => {\r\n\r\n const value = parseInt(event.target.value)\r\n\r\n this.setState({\r\n ...this.state,\r\n newTipo: value,\r\n });\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n }\r\n\r\n renderNewButton = () => {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n document.getElementById(\"type_game_btn\").focus() } /> \r\n \r\n \r\n Tipo de partida\r\n \r\n this.handleTipoChange(event)}\r\n name=\"newTipo\"\r\n inputProps={{ style: { fontSize: 12 }, tabIndex: \"2\" }}\r\n >\r\n {this.fillTiposPartida()}\r\n \r\n \r\n\r\n \r\n this.handleValueChange(event, 'newValue')}\r\n InputProps={{ classes: { input: classes.inputImporte }, inputComponent: IntNumberFormatInput, inputProps: { tabIndex: \"3\" } }}\r\n />\r\n \r\n { this.handleGridNewRow() }}>Nuevo\r\n document.getElementById(\"type_game\").focus() } /> \r\n
\r\n )\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n !this.state.showSpinner ?\r\n\r\n
\r\n
\r\n\r\n {this.renderGrid()}\r\n {this.renderNewButton()}\r\n\r\n
\r\n

Total

\r\n\r\n \r\n
\r\n\r\n
\r\n {this.props.isDialog ?\r\n \r\n :\r\n \r\n }\r\n {!this.props.isDiaCerrado ?\r\n \r\n : ''}\r\n
\r\n
\r\n\r\n :\r\n\r\n
\r\n \r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\n\r\nCierreDiarioPartidasTipoGrid.propTypes = {\r\n //state\r\n user: PropTypes.object,\r\n grupoPartida: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n isDialog: PropTypes.bool,\r\n //dispatch\r\n modifyDatosCierreDiario: PropTypes.func.isRequired,\r\n getGrupoPartida: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n //parameters\r\n producto: PropTypes.object\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n grupoPartida: state.grupoPartida.grupospartida,\r\n user: state.oidc.user\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyDatosCierreDiario,\r\n getGrupoPartida,\r\n hideDialog,\r\n openDialog,\r\n setSaveState\r\n }, dispatch);\r\n}\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreDiarioPartidasTipoGrid));","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\n\r\n//component:\r\nimport IntNumberFormatInput from '../../components/int_number_input_formatter';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n margin: '8px 0'\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n marginTop: 35,\r\n marginLeft: 25,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 20px',\r\n marginBottom: 20,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n },\r\n});\r\n\r\nclass EditPartidasPorTipoGrid extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.partida.id ? this.props.partida.id : uuidv4(),\r\n iTipopartidaElem: this.props.partida.iTipopartidaElem ? this.props.partida.iTipopartidaElem : this.props.tiposPartida[0].id,\r\n usuarioId: this.props.partida.usuarioId ? this.props.partida.usuarioId : 0,\r\n numPartidas: this.props.partida.numPartidas ? this.props.partida.numPartidas : 0,\r\n descr: this.props.partida.descr ? this.props.partida.descr : this.props.tiposPartida[0].descr,\r\n centroId: this.props.partida.centroId ? this.props.partida.centroId : 0.0,\r\n fecha: this.props.fecha ? this.props.fecha : this.props.fecha,\r\n\r\n }\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n }\r\n\r\n handleTipoChange = (event) => {\r\n\r\n const value = parseInt(event.target.value)\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipopartidaElem: value,\r\n descr: this.props.tiposPartida.find(tz => tz.id === value).descr\r\n });\r\n }\r\n\r\n compare = (a, b) => {\r\n if (a.descr < b.descr)\r\n return -1;\r\n if (a.descr > b.descr)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n fillTiposPartida = () => {\r\n return [...this.props.tiposPartida].sort(this.compare).map((zona, index) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n \r\n Tipo de partida\r\n \r\n this.handleTipoChange(event)}\r\n name=\"iTipopartidaElem\"\r\n >\r\n {this.fillTiposPartida()}\r\n \r\n \r\n\r\n \r\n this.handleValueChange(event, 'numPartidas')}\r\n InputProps={{ classes: { input: classes.inputImporte }, inputComponent: IntNumberFormatInput, inputProps: { tabIndex: \"2\" } }}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditPartidasPorTipoGrid.propTypes = {\r\n partida: PropTypes.object,\r\n okHandler: PropTypes.func.isRequired,\r\n checkValues: PropTypes.func.isRequired,\r\n usuario: PropTypes.number.isRequired,\r\n tiposPartida: PropTypes.array.isRequired,\r\n fecha: PropTypes.string.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditPartidasPorTipoGrid);","import React from 'react';\r\nimport NumberFormat from 'react-number-format';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function FloatNumberFormatText(props) {\r\n const { inputRef, onChange, ...other } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nFloatNumberFormatText.propTypes = {\r\n inputRef: PropTypes.func,\r\n onChange: PropTypes.func,\r\n};","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Button, Typography } from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport FloatNumberFormatText from '../../components/float_number_text_formatter';\r\n\r\n//const drawerWidth = 240;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n observTextField: {\r\n display: 'flex',\r\n height: '100%',\r\n margin: theme.spacing(1),\r\n },\r\n inputObserv: {\r\n display: 'flex',\r\n alignItems: 'start',\r\n margin: '15px 0',\r\n padding: '5px 8px',\r\n\r\n },\r\n button: {\r\n margin: '15px 15px 15px 0',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n title: {\r\n marginTop: theme.spacing(1),\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n marginBottom: theme.spacing(3),\r\n }\r\n});\r\n\r\nclass CierreDiarioObservaciones extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n obsBolera: '',\r\n obsBar: '',\r\n obsArcade: '',\r\n error: '',\r\n obs: undefined\r\n };\r\n };\r\n\r\n componentDidMount = () => {\r\n\r\n let obsBolera = '';\r\n let obsBar = '';\r\n let obsArcade = '';\r\n let obs = [...this.props.obs];\r\n\r\n if (obs === undefined) obs = [];\r\n\r\n if (Math.abs(this.props.descuadreBolera) > 5) {\r\n let bolera = obs.find(o => o.iTipoZona === 0);\r\n if (bolera === undefined) {\r\n obs.push({ iTipoZona: 0, cajaId: this.props.cajaBolera, observaciones: '' });\r\n }\r\n else {\r\n obsBolera = bolera.observaciones\r\n }\r\n }\r\n\r\n if (Math.abs(this.props.descuadreBar) > 5) {\r\n let bar = obs.find(o => o.iTipoZona === 1);\r\n if (bar === undefined) {\r\n obs.push({ iTipoZona: 1, cajaId: this.props.cajaBar, observaciones: '' });\r\n }\r\n else {\r\n obsBar = bar.observaciones;\r\n }\r\n }\r\n\r\n if (Math.abs(this.props.descuadreArcade) > 5) {\r\n let arcade = obs.find(o => o.iTipoZona === 5);\r\n if (arcade === undefined) {\r\n obs.push({ iTipoZona: 5, cajaId: this.props.cajaArcade, observaciones: '' });\r\n }\r\n else {\r\n obsArcade = arcade.observaciones\r\n }\r\n }\r\n\r\n this.setState({ obsBolera: obsBolera, obsBar: obsBar, obsArcade: obsArcade, obs: obs });\r\n\r\n }\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n
\r\n\r\n
\r\n\r\n {Math.abs(this.props.descuadreBolera) >= 5 ?\r\n
\r\n {\"Observaciones de descuadre de Bolera\"}\r\n {\"Descuadre: \"}\r\n this.handleValueChange(event, 'obsBolera')}\r\n />\r\n
\r\n : ''}\r\n\r\n {Math.abs(this.props.descuadreBar) >= 5 ?\r\n
\r\n {\"Observaciones de descuadre de Bar\"}\r\n {\"Descuadre: \"}\r\n this.handleValueChange(event, 'obsBar')}\r\n />\r\n
\r\n : ''}\r\n\r\n\r\n {Math.abs(this.props.descuadreArcade) >= 5 ?\r\n
\r\n {\"Observaciones de descuadre de Arcade\"}\r\n {\"Descuadre: \"}\r\n this.handleValueChange(event, 'obsArcade')}\r\n />\r\n
\r\n : ''}\r\n\r\n {this.state.error}\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nCierreDiarioObservaciones.propTypes = {\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired,\r\n\r\n //parameters\r\n okHandler: PropTypes.func.isRequired,\r\n obs: PropTypes.string.isRequired,\r\n descuadreBar: PropTypes.number.isRequired,\r\n descuadreBolera: PropTypes.number.isRequired,\r\n descuadreArcade: PropTypes.number.isRequired\r\n\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(CierreDiarioObservaciones);","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//material ui components:\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n//helpers:\r\nimport { getData, postData, putData } from '../dataLib';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog, setSaveState } from '../actions/index';\r\nimport { modifyDatosCierreDiario } from '../actions/cierre_diario_actions';\r\n\r\n//components\r\nimport FloatNumberFormatInput from '../components/float_number_input_formatter';\r\nimport IntNumberFormatInput from '../components/int_number_input_formatter';\r\n\r\n\r\nconst styles = theme => ({\r\n formContainer: {\r\n padding: 5,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n hoursContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flexFlow: 'wrap',\r\n alignContent: 'space-around',\r\n marginBottom: 10,\r\n },\r\n contentContainer: {\r\n display: 'flex',\r\n flexFlow: 'wrap',\r\n justifyContent: 'space-between',\r\n },\r\n formItem: {\r\n display: 'flex',\r\n justifyContent: 'space-evenly',\r\n alignItems: 'center',\r\n maxWidth: 110,\r\n marginTop: theme.spacing(2),\r\n },\r\n label: {\r\n textAlign: 'left',\r\n width: 50,\r\n fontSize: 13,\r\n },\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n width: 200,\r\n margin: '30px 8px 20px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: theme.spacing(1),\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 65,\r\n height: 30,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n textAlign: 'right'\r\n },\r\n inputTotal: {\r\n width: 85,\r\n height: 30,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n button: {\r\n margin: '15px 15px 15px 0',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n observTextField: {\r\n display: 'flex',\r\n height: '100%',\r\n margin: theme.spacing(1),\r\n },\r\n inputObserv: {\r\n display: 'flex',\r\n alignItems: 'start',\r\n margin: '15px 0',\r\n padding: '5px 8px',\r\n fontSize: 12,\r\n height: '90%',\r\n },\r\n});\r\n\r\nclass Arqueo extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n arqueo: {\r\n id: -1,\r\n cajaId: -1,\r\n Fecha: '',\r\n usuarioId: 0,\r\n billete500: 0,\r\n billete200: 0,\r\n billete100: 0,\r\n billete50: 0,\r\n billete20: 0,\r\n billete10: 0,\r\n billete5: 0,\r\n moneda2: 0,\r\n moneda1: 0,\r\n moneda050: 0,\r\n moneda020: 0,\r\n moneda010: 0,\r\n moneda005: 0,\r\n moneda002: 0,\r\n moneda001: 0,\r\n isManual: 0,\r\n observDescuadre: ''\r\n },\r\n total: 0.0,\r\n showSpinner: true,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getArqueo();\r\n }\r\n\r\n calculateTotal = (arqueo) => {\r\n let total = 0.0;\r\n\r\n total += 500.0 * parseFloat(arqueo.billete500);\r\n total += 200.0 * parseFloat(arqueo.billete200);\r\n total += 100.0 * parseFloat(arqueo.billete100);\r\n total += 50.0 * parseFloat(arqueo.billete50);\r\n total += 20.0 * parseFloat(arqueo.billete20);\r\n total += 10.0 * parseFloat(arqueo.billete10);\r\n total += 5.0 * parseFloat(arqueo.billete5);\r\n total += 2.0 * parseFloat(arqueo.moneda2);\r\n total += 1.0 * parseFloat(arqueo.moneda1);\r\n total += 0.50 * parseFloat(arqueo.moneda050);\r\n total += 0.20 * parseFloat(arqueo.moneda020);\r\n total += 0.10 * parseFloat(arqueo.moneda010);\r\n total += 0.05 * parseFloat(arqueo.moneda005);\r\n total += 0.02 * parseFloat(arqueo.moneda002);\r\n total += 0.01 * parseFloat(arqueo.moneda001);\r\n\r\n return total;\r\n }\r\n\r\n getArqueo = () => {\r\n\r\n let arqueoURL = '';\r\n\r\n if (this.props.producto !== undefined) { //cierre diario\r\n if (this.props.producto.articuloId === 0) arqueoURL += 'dearqueos/arqueoIngresosBanco?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia;\r\n else arqueoURL += 'dearqueos/cierrediario?articulo_id=' + this.props.producto.articuloId + '&date=' + this.props.centroDiaSelected.dia;\r\n }\r\n else if (this.props.cajaId) { //por caja \r\n arqueoURL += 'dearqueos/arqueoPorCaja?caja_id=' + this.props.cajaId + '&date=' + this.props.centroDiaSelected.dia;\r\n }\r\n else if (this.props.centroId) { //ingresos banco\r\n arqueoURL += 'dearqueos/arqueoIngresosBanco?centro_id=' + this.props.centroId + '&date=' + this.props.fecha;\r\n }\r\n else return;\r\n\r\n getData(\r\n arqueoURL,\r\n (response) => {\r\n this.setState({ ...this.state, arqueo: response.data, total: this.calculateTotal(response.data), showSpinner: false })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching arqueo'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n updateArqueo = () => {\r\n\r\n this.setState({...this.state, showSpinner: true});\r\n\r\n putData(\r\n 'dearqueos/' + this.state.arqueo.id,\r\n () => {\r\n this.props.hideDialog();\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'arqueo actualizado'\r\n }, 'arqueo_actualizado_dialog', false, 'sm');\r\n if (this.props.producto !== undefined) { //cierre diario\r\n this.props.modifyDatosCierreDiario({ ...this.props.producto, importe: this.state.total })\r\n }\r\n else if (this.props.okHandler !== undefined) this.props.okHandler(this.state.total);\r\n this.props.setSaveState(false);\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating arqueo'\r\n }, 'error_arqueo_actualizado_dialog', false, 'sm');\r\n this.setState({...this.state, showSpinner: false});\r\n },\r\n { ...this.state.arqueo, usuarioId: this.props.user ? this.props.user.profile.sub : 0 },\r\n this.props.user\r\n\r\n );\r\n\r\n\r\n }\r\n\r\n newArqueo = () => {\r\n\r\n this.setState({...this.state, showSpinner: true});\r\n\r\n postData(\r\n 'dearqueos',\r\n () => {\r\n this.props.hideDialog();\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'arqueo actualizado'\r\n }, 'arqueo_actualizado_dialog', false, 'sm');\r\n this.props.setSaveState(false);\r\n if (this.props.producto !== undefined) { //cierre diario\r\n this.props.modifyDatosCierreDiario({ ...this.props.producto, importe: this.state.total })\r\n }\r\n else if (this.props.okHandler !== undefined) this.props.okHandler(this.state.total);\r\n this.props.setSaveState(false);\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating arqueo'\r\n }, 'error_arqueo_actualizado_dialog', false, 'sm');\r\n this.setState({...this.state, showSpinner: false});\r\n },\r\n { ...this.state.arqueo, usuarioId: this.props.user ? this.props.user.profile.sub : 0 },\r\n this.props.user\r\n\r\n );\r\n\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n //const value = (event.target.value === '') ? 0 : event.target.value\r\n let newArqueo = { ...this.state.arqueo, [field]: event.target.value };\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, arqueo: newArqueo, total: this.calculateTotal(newArqueo) });\r\n }\r\n\r\n handleBlur = (event, field) => {\r\n if (event.target.value === '') {\r\n let newArqueo = { ...this.state.arqueo, [field]: 0 };\r\n this.setState({ ...this.state, arqueo: newArqueo, total: this.calculateTotal(newArqueo) });\r\n }\r\n }\r\n\r\n\r\n renderTextField = (label, field) => {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n
\r\n \r\n {label}\r\n \r\n\r\n this.handleValueChange(event, field)}\r\n onBlur={(event)=> this.handleBlur(event, field )}\r\n className={classes.input}\r\n InputProps={{ classes: { input: classes.inputImporte }, inputComponent: IntNumberFormatInput }}\r\n variant=\"outlined\"\r\n disabled={this.props.disabled}\r\n />\r\n
\r\n )\r\n }\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n if (this.state.showSpinner)\r\n return (\r\n
\r\n \r\n
\r\n );\r\n\r\n return (\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n {this.renderTextField('500 €', 'billete500')}\r\n {this.renderTextField('200 €', 'billete200')}\r\n {this.renderTextField('100 €', 'billete100')}\r\n {this.renderTextField('50 €', 'billete50')}\r\n {this.renderTextField('20 €', 'billete20')}\r\n {this.renderTextField('10 €', 'billete10')}\r\n {this.renderTextField('5 €', 'billete5')}\r\n\r\n
\r\n
\r\n \r\n {this.renderTextField('2 €', 'moneda2')}\r\n {this.renderTextField('1 €', 'moneda1')}\r\n {this.renderTextField('0,50 €', 'moneda050')}\r\n {this.renderTextField('0,20 €', 'moneda020')}\r\n {this.renderTextField('0,10 €', 'moneda010')}\r\n {this.renderTextField('0,05 €', 'moneda005')}\r\n {this.renderTextField('0,02 €', 'moneda002')}\r\n {this.renderTextField('0,01 €', 'moneda001')}\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n

Total

\r\n\r\n \r\n
\r\n\r\n {\r\n this.props.producto !== undefined ?\r\n this.handleValueChange(event, 'observDescuadre')}\r\n /> : ''\r\n }\r\n\r\n\r\n
\r\n \r\n {!this.props.disabled ? : ''}\r\n
\r\n\r\n \r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nArqueo.propTypes = {\r\n //state:\r\n user: PropTypes.object.isRequired,\r\n centroId: PropTypes.number,\r\n producto: PropTypes.object,\r\n cajaId: PropTypes.number,\r\n disabled: PropTypes.bool.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch:\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyDatosCierreDiario: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n user: state.oidc.user,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n hideDialog,\r\n openDialog,\r\n modifyDatosCierreDiario,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles, { withTheme: true })(Arqueo));","\r\n\r\nimport { getData, postData } from './redux_data';\r\nimport {\r\n MODIFY_ARQUEO_CIERRE_SEMANAL, MODIFY_VARIACION_EUROS, MODIFY_VARIACION_TOKENS, MODIFY_VARIACION_TOKENS_CENTRO, MODIFY_MAQ_ARCADE_CIERRE_SEMANAL, RESET_CIERRE_SEMANAL_DATOS, MODIFY_BANCO_2_CIERRE_SEMANAL,\r\n MODIFY_FIELD_OTROSDATOS_CIERRE_SEMANAL, UPDATE_DATOS_CIERRE_SEMANAL, GET_RESUMEN_CIERRE_SEMANAL, DESBLOQUEAR_CIERRE_SEMANAL, CIERRE_SEMANAL_CERRAR_SEMANA, UPDATE_OTROS_DATOS_CIERRE_SEMANAL, UPDATE_BILLARES_CIERRE_SEMANAL\r\n} from '../constants/action_types';\r\n\r\nimport {\r\n\r\n GET_CIERRE_SEMANAL_DATOS,\r\n GET_OTROS_DATOS_CIERRE_SEMANAL\r\n} from '../constants/action_types';\r\n\r\nexport function getDatosCierreSemanal(centroid, date) {\r\n return getData('cierreSemanalDatos?centro_id=' + centroid + '&date=' + date, GET_CIERRE_SEMANAL_DATOS, {centroid, date});\r\n}\r\n\r\nexport function resetDatosCierreSemanal() {\r\n return (dispatch, getState) => {\r\n dispatch({ type: RESET_CIERRE_SEMANAL_DATOS, payload: {} });\r\n }\r\n}\r\n\r\nexport function getOtrosDatosCierreSemanal(centroid, date) {\r\n return getData('cierreSemanalOtrosDatos?centro_id=' + centroid + '&date=' + date, GET_OTROS_DATOS_CIERRE_SEMANAL);\r\n};\r\n\r\nexport function getResumenCierreSemanal(centroid, date) {\r\n return getData('cierreSemanalResumen?centro_id=' + centroid + '&date=' + date, GET_RESUMEN_CIERRE_SEMANAL);\r\n};\r\n\r\n\r\nexport function modifyArqueo(value) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_ARQUEO_CIERRE_SEMANAL, payload: value });\r\n }\r\n}\r\n\r\nexport function modifyBanco2(value){\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_BANCO_2_CIERRE_SEMANAL, payload: value });\r\n }\r\n}\r\n\r\nexport function modifyVariacionEuros(value) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_VARIACION_EUROS, payload: value });\r\n }\r\n}\r\n\r\nexport function modifyVariacionTokensCentro(value) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_VARIACION_TOKENS_CENTRO, payload: value });\r\n }\r\n};\r\n\r\nexport function modifyVariacionTokens(value) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_VARIACION_TOKENS, payload: value });\r\n }\r\n}\r\n\r\nexport function modifyFieldOtrosDatosSemanal(field, value) {\r\n return dispatch => {\r\n dispatch({ type: MODIFY_FIELD_OTROSDATOS_CIERRE_SEMANAL, payload: { field, value } })\r\n };\r\n};\r\n\r\nexport function modifyMaqArcade(zonaId, total_euros, total_euros_sin_mult, total_tickets, total_tokens, total_visas) {\r\n\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_MAQ_ARCADE_CIERRE_SEMANAL, payload: { zonaId, total_euros, total_euros_sin_mult, total_tickets, total_tokens, total_visas } });\r\n }\r\n}\r\n\r\nexport function updateCierreSemanalBillaresDB(centro_id, date, billares) {\r\n\r\n const postURL = `cierreSemanalDatos/Billares?centro_id=${centro_id}&date=${date}&billares=${billares}`;\r\n return postData(postURL, UPDATE_BILLARES_CIERRE_SEMANAL, {}, undefined, undefined);\r\n};\r\n\r\nexport function updateCierreSemanalDatosDB(cierreSemanal, centro_id, date, thenHandler) {\r\n\r\n const postURL = `cierreSemanalDatos?centro_id=${centro_id}&date=${date}`;\r\n return postData(postURL, UPDATE_DATOS_CIERRE_SEMANAL, cierreSemanal, undefined, thenHandler);\r\n};\r\n\r\nexport function updateCierreSemanalOtrosDatosDB(otrosDatos, centro_id, date, thenHandler) {\r\n\r\n const postURL = `cierreSemanalOtrosDatos?centro_id=${centro_id}&date=${date}`;\r\n return postData(postURL, UPDATE_OTROS_DATOS_CIERRE_SEMANAL, otrosDatos, undefined, thenHandler);\r\n\r\n};\r\n\r\nexport function unlockCierreSemanal(centro_id, date) {\r\n\r\n return postData(`CierreSemanalDatos/DesbloquearCierre?centro_id=${centro_id}&date=${date}`, DESBLOQUEAR_CIERRE_SEMANAL, { }, undefined, undefined);\r\n\r\n};\r\n\r\nexport function cerrarSemana(centro_id, date, observaciones, thenHandler, errorHandler) {\r\n\r\n return postData(`CierreSemanalDatos/CerrarSemana?centro_id=${centro_id}&date=${date}`, CIERRE_SEMANAL_CERRAR_SEMANA, { observacionesXdescuadre: observaciones }, undefined, thenHandler, true, errorHandler);\r\n}","//tabla con las máquinas que tienen lecturas en una fecha determinada\r\n//cada fila tiene un botón de editar que muestra los contadores de esa máquina para la edición de sus lecturas\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog } from '../../actions/index';\r\nimport { getData, postData } from '../../dataLib';\r\n//import { modifyMaqArcade } from '../../actions/cierre_semanal_actions';\r\nimport { getDatosCierreSemanal } from '../../actions/cierre_semanal_actions';\r\n\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: theme.spacing(2)\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: 200,\r\n },\r\n Typography: {\r\n margin: 'auto'\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n width: 200,\r\n margin: '30px 8px 20px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 80,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n divData: {\r\n position: 'relative'\r\n },\r\n cover: {\r\n position: 'absolute',\r\n height: 348,\r\n width: '100%',\r\n marginLeft: 8,\r\n zIndex: 1,\r\n backgroundColor: '#ddd',\r\n opacity: 0.3,\r\n },\r\n divTotals: {\r\n display: 'flex'\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass CierreSemanalLecturasArcade extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n maquinas: [],\r\n total: 0.0,\r\n descuadre: 0.0,\r\n showSpinner: true\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.centroDiaSelected !== this.props.centroDiaSelected) {\r\n this.getMaquinas();\r\n }\r\n\r\n if (prevProps.centroDiaSelected.dia !== this.props.centroDiaSelected.dia || prevProps.centroDiaSelected.centro !== this.props.centroDiaSelected.centro) {\r\n this.setState({ ...this.state, showSpinner: true });\r\n }\r\n };\r\n\r\n componentDidMount = () => {\r\n this.getMaquinas();\r\n };\r\n\r\n calculateTotal = (rows) => {\r\n\r\n let total = 0.0;\r\n rows.forEach((r) => {\r\n total += parseFloat(this.props.isSemanaCerrada ? r.total: r.totalSinMult);\r\n });\r\n return total;\r\n \r\n };\r\n\r\n getMaquinas = () => {\r\n getData(`VMaquinasArcade?centro_id=${this.props.centroDiaSelected.centro.id}&date=${this.props.fecha}`,\r\n (response) => {\r\n this.setState({ ...this.state, maquinas: response.data.maquinasResumenArcade, total: this.calculateTotal(response.data.maquinasResumenArcade), showSpinner: false });\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching maquinas' + error\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n modificaMaquina = (maquinaId, ingresos, ingresos_sin_mult, open_next) => {\r\n\r\n let nextRow = undefined;\r\n\r\n var rows = this.state.maquinas.map((row, i) => {\r\n if (row.maquinaId === maquinaId) {\r\n if (this.state.maquinas[i + 1] !== undefined) nextRow = this.state.maquinas[i + 1];\r\n return { ...row, total: ingresos, totalSinMult: ingresos_sin_mult };\r\n }\r\n else return row;\r\n });\r\n\r\n this.setState({ ...this.state, maquinas: rows, total: this.calculateTotal(rows) });\r\n\r\n if (open_next && nextRow !== undefined) {\r\n this.openLecturas(nextRow);\r\n }\r\n };\r\n\r\n backHandler = (maquinaId) => {\r\n let prevRow = undefined;\r\n\r\n this.state.maquinas.forEach((row, i) => {\r\n if (row.maquinaId === maquinaId) {\r\n if (i > 0) prevRow = this.state.maquinas[i - 1];\r\n }\r\n });\r\n\r\n if (prevRow !== undefined) {\r\n this.props.hideDialog();\r\n this.openLecturas(prevRow);\r\n }\r\n\r\n }\r\n\r\n nextHandler = (maquinaId) => {\r\n let nextRow = undefined;\r\n\r\n this.state.maquinas.forEach((row, i) => {\r\n if (row.maquinaId === maquinaId) {\r\n if (this.state.maquinas[i + 1] !== undefined) nextRow = this.state.maquinas[i + 1];\r\n }\r\n });\r\n\r\n if (nextRow !== undefined) {\r\n this.props.hideDialog();\r\n this.openLecturas(nextRow);\r\n }\r\n\r\n }\r\n\r\n openLecturas = (maquina) => {\r\n this.props.openDialog(\r\n 'CierreSemanalLecturasArcadeDetail',\r\n {\r\n maquinaId: maquina.maquinaId,\r\n maquinaDescr: maquina.maquina,\r\n maquinaRegInterno: maquina.regInterno,\r\n recaudacionDiaria: maquina.recaudacionDiaria,\r\n zonaId: maquina.zonaId,\r\n okHandler: this.modificaMaquina,\r\n backHandler: this.backHandler,\r\n nextHandler: this.nextHandler,\r\n fecha: this.props.fecha,\r\n tipoB: maquina.tipoB,\r\n tipoRegalo: maquina.iTipoRegalo\r\n },\r\n uuidv4(), true, \"sm\");\r\n };\r\n\r\n nuevasLecturas = () => {\r\n\r\n var dt = new Date(this.props.centroDiaSelected.dia);\r\n if (dt.getDay() === this.props.centroDiaSelected.centro.iDiaCierre) {\r\n\r\n const partial = (this.state.maquinas.length > 0);\r\n postData(\r\n\r\n 'VMaquinasArcade/NuevasLecturas?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.fecha + '&partial=' + partial,\r\n (response) => {\r\n this.getMaquinas();\r\n this.setState({ ...this.state, showSpinner: true });\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR creando nuevas lecturas'\r\n }, 'error-boton-nuevas-lecturas', false, 'sm');\r\n },\r\n {},\r\n this.props.user\r\n );\r\n }\r\n else {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'Debe seleccionar un dia de cierre semanal'\r\n }, 'error-boton-nuevas-lecturas-ds', false, 'sm');\r\n }\r\n }\r\n\r\n actualizaREDSYS = () => {\r\n\r\n var dt = new Date(this.props.centroDiaSelected.dia);\r\n if (dt.getDay() === this.props.centroDiaSelected.centro.iDiaCierre) {\r\n\r\n postData(\r\n\r\n 'VMaquinasArcade/ActualizaREDSYS?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.fecha,\r\n (response) => {\r\n this.getMaquinas();\r\n this.setState({ ...this.state, showSpinner: true });\r\n this.props.getDatosCierreSemanal(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia);\r\n // this.props.modifyMaqArcade(\r\n // this.props.zonaId,\r\n // 0.0, //(this.state.total_euros * mult) - (this.state.total_euros_ini * mult),\r\n // 0.0, //this.state.total_euros - this.state.total_euros_ini,\r\n // 0.0, //this.state.total_tickets - this.state.total_tickets_ini,\r\n // 0.0, //this.state.total_tokens - this.state.total_tokens_ini,\r\n // 0.0, //this.state.total_regalos - this.state.total_regalos_ini,\r\n // 1123.0, //this.state.total_visas - this.state.total_visas_ini\r\n // ); \r\n },\r\n\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR actualizando REDSYS'\r\n }, 'error-boton-actualiza-REDSYS', false, 'sm');\r\n },\r\n {},\r\n this.props.user\r\n );\r\n }\r\n else {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'Debe seleccionar un dia de cierre semanal'\r\n }, 'error-boton-actualiza-REDSYS-ds', false, 'sm');\r\n }\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n !this.state.showSpinner ?\r\n\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n

Total

\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n {this.props.isDialog ? : ''}\r\n
\r\n
\r\n\r\n :\r\n
\r\n \r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierreSemanalLecturasArcade.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isSemanaCerrada: PropTypes.bool.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n\r\n fecha: PropTypes.object\r\n\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isSemanaCerrada: state.centroDiaSelected.isSemanaCerrada,\r\n user: state.oidc.user\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n hideDialog,\r\n openDialog,\r\n getDatosCierreSemanal,\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalLecturasArcade));","//edición de las lecturas de los contadores de una máquina en una fecha concreta\r\n//\r\n//\r\n//lecturas euros:\r\n// cuando hay operadora y la semana está cerrada se muestran los valores quitando la parte de la operadora, mientras que cuando la semana aún no se ha cerrrado\r\n// se muestra el ingreso real de las máquinas y un multiplicador tal que el descuadre sea el mismo al quitar la parte de la operadora y poner el multiplicador real\r\n//\r\n//\r\n//--------------------------------------------------------------------------------\r\n//lecturas de euros máquinas con contadores solo de entradas y recaudación total\r\n// contador inicial\r\n// contador final\r\n// multiplicador: muestra un valor distinto dependiendo de si la semana está cerrada o no\r\n// semana cerrada: se muestra el valor de multiplicador que llega de la base de datos\r\n// semana no cerrada: se muestra el multiplicador / factor de la operadora (de esta forma el descuadre sigue siendo el mismo si se muestra todos los ingresos o se quita la parte de la operadora )\r\n// único campo de texto de ingresos que se lee y modifica en la columna ingresos del primer contador\r\n// semana cerrada: se muestra el campo ingresos ( ingresosSinMult multiplicado por el factor de la operadora )\r\n// semana no cerrada: se muestra el campo ingresosSinMult ( lo que ha entrado el usuario)\r\n// único campo de texto de descuadre\r\n//--------------------------------------------------------------------------------\r\n\r\n//--------------------------------------------------------------------------------\r\n//lecturas de euros máquinas con contadores solo de entradas y recaudación por contador\r\n// contador inicial\r\n// contador final\r\n// multiplicador: muestra un valor distinto dependiendo de si la semana está cerrada o no\r\n// semana cerrada: se muestra el valor de multiplicador que llega de la base de datos\r\n// semana no cerrada: se muestra el multiplicador / factor de la operadora \r\n// campo de texto de ingresos después de cada contador\r\n// semana cerrada: se muestra el campo ingresos ( ingresosSinMult multiplicado por el factor de la operadora )\r\n// semana no cerrada: se muestra el campo ingresosSinMult ( lo que ha entrado el usuario )\r\n// campo de texto de descuadre \r\n//--------------------------------------------------------------------------------\r\n\r\n//--------------------------------------------------------------------------------\r\n//lecturas de euros máquinas con contadores de entradas y salidas\r\n// contador inicial entradas\r\n// contador final entradas\r\n// contador inicial salidas\r\n// contador final salidas\r\n// multiplicador: muestra un valor distinto dependiendo de si la semana está cerrada o no\r\n// semana cerrada: se muestra el valor de multiplicador que llega de la base de datos\r\n// semana no cerrada: se muestra el multiplicador / factor de la operadora \r\n// campo de texto de ingresos\r\n// semana cerrada: se muestra el campo ingresos ( ingresosSinMult multiplicado por el factor de la operadora )\r\n// semana no cerrada: se muestra el campo ingresosSinMult ( lo que ha entrado el usuario)\r\n// campo de texto de descuadre después de cada contador que se calcula con la diferencia ingresos de entradas - salidas\r\n//--------------------------------------------------------------------------------\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport update from 'immutability-helper';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog } from '../../actions/index';\r\nimport { getData, postData } from '../../dataLib';\r\nimport { modifyMaqArcade } from '../../actions/cierre_semanal_actions';\r\n\r\n//components:\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\nimport IntNumberFormatInput from '../../components/int_number_input_formatter';\r\nimport FloatNumberFormatText from '../../components/float_number_text_formatter';\r\nimport IntNumberFormatText from '../../components/int_number_text_formatter';\r\n\r\n//maerial ui:\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\nimport InputBase from '@material-ui/core/InputBase';\r\n\r\n// modifyMaqArcade(zonaId, total_euros, total_tickets, total_tokens)\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: theme.spacing(2)\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'none',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n eurosTotalesContainer: {\r\n display: 'flex',\r\n width: 525,\r\n justifyContent: 'space-between',\r\n },\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n width: 210,\r\n margin: '10px 10px 10px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n inputText: {\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 80,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n title: {\r\n margin: '25px 0px 10px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 100,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n maqTitle: {\r\n color: theme.palette.secondary.main\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n inputComentarios: {\r\n minWidth: 400,\r\n margin: '0px 10px',\r\n fontSize: 12,\r\n },\r\n divComentarios: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n alignItems: 'center',\r\n margin: theme.spacing(1),\r\n },\r\n header: {\r\n display: 'flex'\r\n },\r\n headerBox: {\r\n width: 85,\r\n margin: 0,\r\n fontSize: 12,\r\n fontWeight: 500,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n border: '1px solid #dddddd',\r\n background: '#f9f9f9',\r\n },\r\n table: {\r\n display: 'inline-block',\r\n border: '1px solid #dddddd',\r\n },\r\n row: {\r\n display: 'flex',\r\n },\r\n rowTextCell: {\r\n width: 85,\r\n fontSize: 12,\r\n textAlign: 'right',\r\n border: '1px solid #dddddd',\r\n paddingRight: theme.spacing(1),\r\n paddingLeft: theme.spacing(1),\r\n },\r\n rowEditableCell: {\r\n width: 85,\r\n border: '1px solid #dddddd',\r\n },\r\n inputCell: {\r\n textAlign: 'right',\r\n fontSize: 12,\r\n padding: 0\r\n },\r\n bottomBtn: {\r\n direction: 'rtl'\r\n }\r\n\r\n});\r\n\r\nclass CierreSemanalLecturasArcadeDetail extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n euros: [],\r\n total_euros_ini: 0.0,\r\n total_euros: 0.0,\r\n tickets: [],\r\n total_tickets_ini: 0.0,\r\n total_tickets: 0.0,\r\n tokens: [],\r\n total_tokens_ini: 0.0,\r\n total_tokens: 0.0,\r\n regalos: [],\r\n total_regalos_ini: 0,\r\n total_regalos: 0,\r\n visas: [],\r\n total_visas_ini: 0,\r\n total_visas: 0,\r\n isLoading: true,\r\n isTipoB: this.props.tipoB,\r\n isMaquinaRegalos: this.props.tipoRegalo === 1\r\n \r\n };\r\n };\r\n\r\n componentDidMount = () => {\r\n this.getLecturas('euros');\r\n this.getLecturas('tickets');\r\n this.getLecturas('tokens');\r\n this.getLecturas('regalos');\r\n this.getLecturas('visas');\r\n };\r\n\r\n calculateTotal = (rows, iTipo) => {\r\n let total = 0.0;\r\n\r\n if (iTipo === 2 || iTipo === 4) {\r\n rows.forEach((r) => {\r\n total += parseFloat(r.contadorFin - r.contadorIni);\r\n });\r\n }\r\n else if (iTipo === 0) { //euros\r\n if (this.props.isSemanaCerrada) {\r\n rows.forEach((r) => {\r\n total += parseFloat(r.ingresos);\r\n });\r\n }\r\n else {\r\n rows.forEach((r) => {\r\n total += parseFloat(r.ingresosSinMult);\r\n });\r\n }\r\n }\r\n else {\r\n rows.forEach((r) => {\r\n total += parseFloat(r.ingresos);\r\n });\r\n }\r\n return total;\r\n\r\n };\r\n\r\n processRows = (rows, iTipo) => {\r\n\r\n return rows.map((row, index) => {\r\n\r\n console.log(row);\r\n\r\n if (iTipo === 2 || iTipo === 4) {\r\n\r\n let dif = row.contadorFin - row.contadorIni;\r\n if (Math.abs(dif) < 0.0001) dif = 0.0;\r\n return { ...row, descuadre: dif };\r\n\r\n }\r\n else if (iTipo === 1) {\r\n\r\n const ingresos = (index === 0) ? row.ingresos : 0;\r\n\r\n let dif = row.contadorFin - row.contadorIni;\r\n if (Math.abs(dif) < 0.0001) dif = 0.0;\r\n const t = parseFloat((dif * row.multiplicador).toFixed(2));\r\n const r = ingresos;\r\n let descuadre = r - t;\r\n if (Math.abs(descuadre) < 0.0001) descuadre = 0.0;\r\n return { ...row, ingresos: ingresos, descuadre: parseFloat((descuadre).toFixed(2)) };\r\n\r\n }\r\n else {\r\n\r\n // const ingresos = (index === 0) ? row.ingresos : 0;\r\n\r\n // let dif = row.contadorFin - row.contadorIni;\r\n // if (Math.abs(dif) < 0.0001) dif = 0.0;\r\n // const t = parseFloat((dif * row.multiplicador).toFixed(2));\r\n // const r = ingresos;\r\n // let descuadre = r - t;\r\n // if (Math.abs(descuadre) < 0.0001) descuadre = 0.0;\r\n // return { ...row, ingresos: ingresos, descuadre: parseFloat((descuadre).toFixed(2)) };\r\n\r\n //si hay operadora hay que usar el multiplicador real y los ingresos reales si la semana no está cerrada\r\n //let ingresos = (index === 0) ? row.ingresos : 0; //solo hay ingresos (el total de la máquina) en el primer contador\r\n\r\n let ingresos = 0;\r\n\r\n if (!this.state.isTipoB && !this.state.isMaquinaRegalos) ingresos = (index === 0) ? row.ingresos : 0; //solo hay ingresos (el total de la máquina) en el primer contador\r\n else ingresos = row.ingresos;\r\n\r\n let multiplicador = row.multiplicador;\r\n\r\n if (!this.props.isSemanaCerrada) {\r\n const mult_reopa = this.props.recaudacionDiaria ? 1.0 : (this.props.centroDiaSelected.centro.reopa - 31162) / 100;\r\n\r\n multiplicador = row.multiplicador / mult_reopa;\r\n ingresos = row.ingresosSinMult;\r\n\r\n }\r\n\r\n let dif = 0.0;\r\n if(this.state.isTipoB) dif = row.contadorFin - row.contadorIni - row.controlContFin + row.controlContIni;\r\n else dif = row.contadorFin - row.contadorIni;\r\n if (Math.abs(dif) < 0.0001) dif = 0.0;\r\n const t = parseFloat((dif * multiplicador).toFixed(2));\r\n const r = ingresos;\r\n let descuadre = r - t;\r\n if (Math.abs(descuadre) < 0.0001) descuadre = 0.0;\r\n if (!this.state.isTipoB && !this.state.isMaquinaRegalos)\r\n return { ...row, multiplicadorReal: multiplicador, ingresos: (index === 0) ? row.ingresos : 0, descuadre: parseFloat((descuadre).toFixed(2)) };\r\n else\r\n return { ...row, multiplicadorReal: multiplicador, ingresos: row.ingresos, descuadre: parseFloat((descuadre).toFixed(2)) };\r\n\r\n }\r\n\r\n\r\n });\r\n\r\n };\r\n\r\n getLecturas = (tipo) => {\r\n let iTipo = -1;\r\n if (tipo === \"euros\") iTipo = 0;\r\n else if (tipo === \"tickets\") iTipo = 2;\r\n else if (tipo === \"tokens\") iTipo = 1;\r\n else if (tipo === \"regalos\") iTipo = 4;\r\n else if (tipo === \"visas\") iTipo = 5;\r\n\r\n getData(`VLecturas/LecturasPorMaquina?i_tipo=${iTipo}&maquina_id=${this.props.maquinaId}¢ro_id=${this.props.centroDiaSelected.centro.id}&date=${this.props.fecha}`,\r\n (response) => {\r\n this.setState({\r\n ...this.state,\r\n //[tipo]: this.processRows(response.data.filter(r=>r.multiplicador !== 0 || iTipo === 2), iTipo),\r\n [tipo]: this.processRows(response.data, iTipo),\r\n ['total_' + tipo]: this.calculateTotal(response.data, iTipo), ['total_' + tipo + '_ini']: this.calculateTotal(response.data, iTipo),\r\n isLoading: false\r\n })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching lecturas de ' + tipo + ' ' + error\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n //hace un update de lecturas, muestra un mensaje y actualiza el store\r\n updateLecturas = (open_next) => {\r\n\r\n const dataToUpload = this.state.euros.concat(this.state.tickets.concat(this.state.tokens.concat(this.state.regalos.concat(this.state.visas))));\r\n\r\n const mult = this.props.recaudacionDiaria ? 1.0 : ((this.props.centroDiaSelected.centro.reopa - 31162) / 100);\r\n\r\n dataToUpload.forEach(l => {\r\n if (l.iTipo === 0) { \r\n l.usuarioId = this.props.user ? this.props.user.profile.sub : 0;\r\n l.ingresos = l.ingresosSinMult * mult;\r\n }\r\n });\r\n\r\n postData(\r\n 'vlecturas/lecturas',\r\n (response) => {\r\n this.props.hideDialog();\r\n if (!open_next) {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'lecturas de contadores actualizadas'\r\n }, uuidv4(), false, 'sm');\r\n }\r\n\r\n //const mult = this.props.recaudacionDiaria ? 1.0 : ((this.props.centroDiaSelected.centro.reopa - 31162) / 100);\r\n\r\n if (this.props.navigation.location === 'acc_cierre_semanal') {\r\n this.props.modifyMaqArcade(\r\n this.props.zonaId,\r\n (this.state.total_euros * mult) - (this.state.total_euros_ini * mult),\r\n this.state.total_euros - this.state.total_euros_ini,\r\n this.state.total_tickets - this.state.total_tickets_ini,\r\n this.state.total_tokens - this.state.total_tokens_ini,\r\n this.state.total_regalos - this.state.total_regalos_ini,\r\n this.state.total_visas - this.state.total_visas_ini\r\n );\r\n }\r\n this.props.okHandler(this.props.maquinaId, this.state.total_euros * mult, this.state.total_euros, open_next);\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating arcade'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n dataToUpload,\r\n this.props.user\r\n );\r\n };\r\n\r\n maquinaAnterior = () => {\r\n this.props.backHandler(this.props.maquinaId);\r\n }\r\n\r\n maquinaSiguiente = () => {\r\n this.props.nextHandler(this.props.maquinaId);\r\n }\r\n\r\n checkValues = (lectura) => {\r\n if (lectura.contadorIni > lectura.contadorFin) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n modifyLectura = (lectura) => {\r\n\r\n let tipo = '';\r\n\r\n if (lectura.iTipo === 0) tipo = \"euros\";\r\n else if (lectura.iTipo === 2) tipo = \"tickets\";\r\n else if (lectura.iTipo === 1) tipo = \"tokens\";\r\n else if (lectura.iTipo === 4) tipo = \"regalos\";\r\n else if (lectura.iTipo === 5) tipo = \"visas\";\r\n\r\n var rows = this.state[tipo].map((row) => {\r\n if (row.id === lectura.id) {\r\n return { ...row, multiplicador: lectura.multiplicador, contadorFin: lectura.contadorFin, controlContFin: lectura.controlContFin, ingresos: lectura.ingresos, ingresosSinMult: lectura.ingresosSinMult, comentario: lectura.comentario };\r\n //return { ...row, contadorFin: lectura.contadorFin, comentario: lectura.comentario };\r\n }\r\n else return row;\r\n });\r\n this.setState({\r\n ...this.state,\r\n [tipo]: this.processRows(rows, lectura.iTipo),\r\n ['total_' + tipo]: this.calculateTotal(rows, lectura.iTipo)\r\n });\r\n };\r\n\r\n descuadreEuros = () => {\r\n const descuadreArray = this.state.euros.map(row => row.descuadre);\r\n\r\n const reduced = descuadreArray.length ? descuadreArray.reduce((a, b) => a + b) : 0;\r\n\r\n return reduced;\r\n };\r\n\r\n descuadreEurosRow = (index) => {\r\n\r\n return this.state.euros[index].descuadre;\r\n };\r\n\r\n descuadreTokens = () => {\r\n const descuadreArray = this.state.tokens.map(row => row.descuadre);\r\n\r\n const reduced = descuadreArray.length ? descuadreArray.reduce((a, b) => a + b) : 0;\r\n\r\n return reduced;\r\n };\r\n\r\n totalIngresosEuroTeoricos = () => {\r\n let total = 0.0;\r\n this.state.euros.forEach((row) => {\r\n total += parseFloat(((row.contadorFin - row.contadorIni) * row.multiplicador).toFixed(2));\r\n });\r\n return total;\r\n }\r\n\r\n ticketsXEuro = () => {\r\n //const totalIngresos = this.state.total_euros + this.state.total_tokens;\r\n const totalIngresos = this.totalIngresosEuroTeoricos();\r\n if (totalIngresos === 0) return 0;\r\n else return this.state.total_tickets / totalIngresos;\r\n }\r\n\r\n handleTotalEurosChange = (event) => {\r\n\r\n const mult = this.props.recaudacionDiaria ? 1.0 : ((this.props.centroDiaSelected.centro.reopa - 31162) / 100);\r\n this.modifyLectura({ ...this.state.euros[0], ingresos: parseFloat(event.target.value) * mult, ingresosSinMult: parseFloat(event.target.value) }); //se pone el total como ingresos de la primera fila\r\n //this.modifyLectura({ ...this.state.euros[0], ingresos: event.target.value });\r\n }\r\n\r\n handleTotalEurosRowChange = (event, index) => {\r\n const mult = (this.props.centroDiaSelected.centro.reopa - 31162) / 100;\r\n this.modifyLectura({ ...this.state.euros[index], ingresos: parseFloat(event.target.value) * mult, ingresosSinMult: parseFloat(event.target.value) }); //se pone el total como ingresos de la primera fila\r\n }\r\n\r\n handleTotalTicketsChange = (event) => {\r\n this.modifyLectura({ ...this.state.tickets[0], ingresos: event.target.value }); //se pone el total como ingresos de la primera fila\r\n }\r\n\r\n handleTotalTokensChange = (event) => {\r\n this.modifyLectura({ ...this.state.tokens[0], ingresos: event.target.value });\r\n }\r\n\r\n handleTotalRegalosChange = (event) => {\r\n this.modifyLectura({ ...this.state.regalos[0], ingresos: event.target.value });\r\n }\r\n\r\n handleTotalVisasChange = (event) => {\r\n this.modifyLectura({ ...this.state.visas[0], ingresos: event.target.value });\r\n }\r\n\r\n handleComentariosEurosChange = (event) => {\r\n this.modifyLectura({ ...this.state.euros[0], comentario: event.target.value });\r\n }\r\n\r\n handleComentariosEurosRowChange = (event, index) => {\r\n this.modifyLectura({ ...this.state.euros[index], comentario: event.target.value });\r\n }\r\n\r\n handleComentariosTicketsChange = (event) => {\r\n this.modifyLectura({ ...this.state.tickets[0], comentario: event.target.value });\r\n }\r\n\r\n handleComentariosTokensChange = (event) => {\r\n this.modifyLectura({ ...this.state.tokens[0], comentario: event.target.value });\r\n }\r\n\r\n handleComentariosRegalosChange = (event) => {\r\n this.modifyLectura({ ...this.state.regalos[0], comentario: event.target.value });\r\n }\r\n\r\n handleComentariosVisasChange = (event) => {\r\n this.modifyLectura({ ...this.state.visas[0], comentario: event.target.value });\r\n }\r\n\r\n handleGridRowsUpdated = (fromRow, toRow, updated, tipo) => {\r\n\r\n let rows = this.state[tipo];\r\n\r\n for (let i = fromRow; i <= toRow; i++) {\r\n\r\n let updatedRow = update(rows[i], { $merge: updated });\r\n this.modifyLectura(updatedRow);\r\n }\r\n\r\n };\r\n\r\n handleEurosContadorChange = (event, index) => {\r\n this.modifyLectura({ ...this.state.euros[index], contadorFin: event.target.value }); //no se modifican los ingresos, solo se modifican al cambiar el total\r\n }\r\n\r\n handleEurosContadorBlur = (event, index) => {\r\n if (this.state.euros[index].contadorIni > this.state.euros[index].contadorFin) {\r\n this.props.openDialog('SimpleMessage', { message: 'El contador actual no puede ser menor que el contador inicial' }, 'error-contador-fin', false, 'sm');\r\n this.modifyLectura({ ...this.state.euros[index], contadorFin: this.state.euros[index].contadorIni });\r\n }\r\n }\r\n\r\n handleEurosContadorSalidaChange = (event, index) => {\r\n this.modifyLectura({ ...this.state.euros[index], controlContFin: event.target.value }); //no se modifican los ingresos, solo se modifican al cambiar el total\r\n }\r\n\r\n handleEurosContadorSalidaBlur = (event, index) => {\r\n if (this.state.euros[index].controlContIni > this.state.euros[index].controlContFin) {\r\n this.props.openDialog('SimpleMessage', { message: 'El contador actual no puede ser menor que el contador inicial' }, 'error-contador-salida-fin', false, 'sm');\r\n this.modifyLectura({ ...this.state.euros[index], controlContFin: this.state.euros[index].controlContIni });\r\n }\r\n }\r\n\r\n renderEurosRow = (row, index) => {\r\n\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
{row.numOrden}
\r\n
\r\n
\r\n
\r\n this.handleEurosContadorChange(event, index)}\r\n onBlur={(event) => this.handleEurosContadorBlur(event, index)}\r\n />\r\n
\r\n
\r\n )\r\n }\r\n\r\n\r\n renderEurosRows = () => {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
\r\n
#
\r\n
Multipl.
\r\n
Cont. Ini
\r\n
Cont. Fin
\r\n
\r\n {this.state.euros.map((row, index) => {\r\n return this.renderEurosRow(row, index);\r\n })}\r\n
\r\n )\r\n }\r\n\r\n renderEurosRowPorContador = (row, index) => {\r\n\r\n const { classes } = this.props;\r\n return (\r\n\r\n
\r\n
\r\n
#
\r\n
Multipl.
\r\n
Cont. Ini
\r\n
Cont. Fin
\r\n \r\n \r\n
\r\n
\r\n
{row.numOrden}
\r\n
\r\n
\r\n
\r\n this.handleEurosContadorChange(event, index)}\r\n onBlur={(event) => this.handleEurosContadorBlur(event, index)}\r\n />\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n {!this.props.isSemanaCerrada && this.props.centroDiaSelected.centro.reopa !== 31262 && !this.props.recaudacionDiaria ? 'Total Ingresos Reales' : 'Ingresos Reales'}\r\n

\r\n \r\n this.handleTotalEurosRowChange(event, index)}\r\n />\r\n \r\n
\r\n\r\n {!this.props.recaudacionDiaria ?\r\n
\r\n

Total Descuadre

\r\n \r\n
\r\n :\r\n ''\r\n }\r\n
\r\n\r\n
\r\n

Comentarios

\r\n \r\n this.handleComentariosEurosRowChange(event, index)}\r\n />\r\n \r\n
\r\n\r\n
\r\n\r\n )\r\n }\r\n\r\n\r\n handleTicketsContadorChange = (event, index) => {\r\n this.modifyLectura({ ...this.state.tickets[index], contadorFin: event.target.value });\r\n }\r\n handleTicketsContadorBlur = (event, index) => {\r\n if (this.state.tickets[index].contadorIni > this.state.tickets[index].contadorFin) {\r\n this.props.openDialog('SimpleMessage', { message: 'El contador actual no puede ser menor que el contador inicial' }, 'error-contador-fin', false, 'sm');\r\n this.modifyLectura({ ...this.state.tickets[index], contadorFin: this.state.tickets[index].contadorIni });\r\n }\r\n }\r\n\r\n renderTicketsRow = (row, index) => {\r\n\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
{row.numOrden}
\r\n
\r\n
\r\n
\r\n this.handleTicketsContadorChange(event, index)}\r\n onBlur={(event) => this.handleTicketsContadorBlur(event, index)}\r\n />\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n renderTicketsRows = () => {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
\r\n
#
\r\n
Multipl.
\r\n
Cont. Ini
\r\n
Cont. Fin
\r\n
Diferencia
\r\n
\r\n {this.state.tickets.map((row, index) => {\r\n return this.renderTicketsRow(row, index);\r\n })}\r\n
\r\n )\r\n }\r\n\r\n\r\n handleTokensContadorChange = (event, index) => {\r\n this.modifyLectura({ ...this.state.tokens[index], contadorFin: event.target.value });\r\n }\r\n handleTokensContadorBlur = (event, index) => {\r\n if (this.state.tokens[index].contadorIni > this.state.tokens[index].contadorFin) {\r\n this.props.openDialog('SimpleMessage', { message: 'El contador actual no puede ser menor que el contador inicial' }, 'error-contador-fin', false, 'sm');\r\n this.modifyLectura({ ...this.state.tokens[index], contadorFin: this.state.tokens[index].contadorIni });\r\n }\r\n }\r\n\r\n renderTokensRow = (row, index) => {\r\n\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
{row.numOrden}
\r\n
\r\n
\r\n
\r\n this.handleTokensContadorChange(event, index)}\r\n onBlur={(event) => this.handleTokensContadorBlur(event, index)}\r\n />\r\n
\r\n
\r\n )\r\n }\r\n\r\n renderTokensRows = () => {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
\r\n
#
\r\n
Multipl.
\r\n
Cont. Ini
\r\n
Cont. Fin
\r\n
\r\n {this.state.tokens.map((row, index) => {\r\n return this.renderTokensRow(row, index);\r\n })}\r\n
\r\n )\r\n }\r\n\r\n handleRegalosContadorChange = (event, index) => {\r\n this.modifyLectura({ ...this.state.regalos[index], contadorFin: event.target.value });\r\n }\r\n handleRegalosContadorBlur = (event, index) => {\r\n if (this.state.regalos[index].contadorIni > this.state.regalos[index].contadorFin) {\r\n this.props.openDialog('SimpleMessage', { message: 'El contador actual no puede ser menor que el contador inicial' }, 'error-contador-fin', false, 'sm');\r\n this.modifyLectura({ ...this.state.regalos[index], contadorFin: this.state.regalos[index].contadorIni });\r\n }\r\n }\r\n\r\n renderRegalosRow = (row, index) => {\r\n\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
{row.numOrden}
\r\n
\r\n
\r\n
\r\n this.handleRegalosContadorChange(event, index)}\r\n onBlur={(event) => this.handleRegalosContadorBlur(event, index)}\r\n />\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n renderRegalosRows = () => {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
\r\n
#
\r\n
Multipl.
\r\n
Cont. Ini
\r\n
Cont. Fin
\r\n
Diferencia
\r\n
\r\n {this.state.regalos.map((row, index) => {\r\n return this.renderRegalosRow(row, index);\r\n })}\r\n
\r\n )\r\n }\r\n\r\n \r\n handleVisasContadorChange = (event, index) => {\r\n this.modifyLectura({ ...this.state.visas[index], contadorFin: event.target.value });\r\n }\r\n handleVisasContadorBlur = (event, index) => {\r\n if (this.state.visas[index].contadorIni > this.state.visas[index].contadorFin) {\r\n this.props.openDialog('SimpleMessage', { message: 'El contador actual no puede ser menor que el contador inicial' }, 'error-contador-fin', false, 'sm');\r\n this.modifyLectura({ ...this.state.visas[index], contadorFin: this.state.visas[index].contadorIni });\r\n }\r\n }\r\n\r\n renderVisasRow = (row, index) => {\r\n\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
{row.numOrden}
\r\n
\r\n
\r\n
\r\n this.handleVisasContadorChange(event, index)}\r\n onBlur={(event) => this.handleVisasContadorBlur(event, index)}\r\n />\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n renderVisasRows = () => {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
\r\n
#
\r\n
Multipl.
\r\n
Cont. Ini
\r\n
Cont. Fin
\r\n
Diferencia
\r\n
\r\n {this.state.visas.map((row, index) => {\r\n return this.renderVisasRow(row, index);\r\n })}\r\n
\r\n )\r\n }\r\n\r\n\r\n renderEuros = () => {\r\n\r\n const { classes } = this.props;\r\n return (\r\n
\r\n {!this.props.recaudacionDiaria ?\r\n
\r\n Contadores €\r\n {this.renderEurosRows()}\r\n
\r\n :\r\n Recaudación €\r\n }\r\n\r\n
\r\n
\r\n

\r\n {!this.props.isSemanaCerrada && this.props.centroDiaSelected.centro.reopa !== 31262 && !this.props.recaudacionDiaria ? 'Total Ingresos Reales' : 'Ingresos Reales'}\r\n

\r\n \r\n this.handleTotalEurosChange(event)}\r\n />\r\n \r\n
\r\n\r\n {!this.props.recaudacionDiaria ?\r\n
\r\n

Total Descuadre

\r\n \r\n
\r\n :\r\n ''\r\n }\r\n
\r\n\r\n
\r\n

Comentarios

\r\n \r\n this.handleComentariosEurosChange(event)}\r\n />\r\n \r\n
\r\n\r\n\r\n
\r\n )\r\n\r\n }\r\n\r\n renderEurosPorContador = () => {\r\n\r\n const { classes } = this.props;\r\n return (\r\n
\r\n {this.state.euros.map((row, index) => {\r\n return this.renderEurosRowPorContador(row, index);\r\n })}\r\n
\r\n )\r\n\r\n }\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.props.maquinaId === undefined) {\r\n return (
);\r\n }\r\n\r\n return (\r\n
\r\n\r\n {this.state.isLoading ?\r\n
\r\n \r\n
\r\n\r\n :
\r\n {this.props.maquinaDescr + ' (' + this.props.maquinaRegInterno + ')'}\r\n {this.state.euros.length ?\r\n
\r\n {(this.state.isTipoB || this.state.isMaquinaRegalos) ? this.renderEurosPorContador() : this.renderEuros()}\r\n\r\n
\r\n\r\n : ''}\r\n\r\n\r\n {this.state.tickets.length && !this.props.recaudacionDiaria ?\r\n
\r\n Contadores tickets\r\n {this.renderTicketsRows()}\r\n
\r\n
\r\n

Total

\r\n \r\n this.handleTotalTicketsChange(event)}\r\n />\r\n \r\n
\r\n
\r\n

Tickets x Euro

\r\n \r\n
\r\n
\r\n
\r\n

Comentarios

\r\n\r\n this.handleComentariosTicketsChange(event)}\r\n />\r\n\r\n
\r\n
: ''}\r\n\r\n\r\n {this.state.tokens.length && !this.props.recaudacionDiaria ?\r\n
\r\n Contadores tokens\r\n {this.renderTokensRows()}\r\n\r\n
\r\n
\r\n

Total Ingresos

\r\n \r\n this.handleTotalTokensChange(event)}\r\n />\r\n \r\n
\r\n\r\n
\r\n

Total Descuadre

\r\n \r\n
\r\n
\r\n
\r\n

Comentarios

\r\n this.handleComentariosTokensChange(event)}\r\n />\r\n
\r\n
: ''}\r\n\r\n {this.state.regalos.length && !this.props.recaudacionDiaria ?\r\n
\r\n Contadores regalos\r\n {this.renderRegalosRows()}\r\n
\r\n
\r\n

Total

\r\n \r\n this.handleTotalRegalosChange(event)}\r\n />\r\n \r\n
\r\n
\r\n
\r\n

Comentarios

\r\n\r\n this.handleComentariosRegalosChange(event)}\r\n />\r\n\r\n
\r\n
: ''}\r\n\r\n {this.state.visas.length && !this.props.recaudacionDiaria ?\r\n
\r\n Contadores VISAs\r\n {this.renderVisasRows()}\r\n
\r\n
\r\n

Total

\r\n \r\n this.handleTotalVisasChange(event)}\r\n />\r\n \r\n
\r\n
\r\n
\r\n

Comentarios

\r\n\r\n this.handleComentariosVisasChange(event)}\r\n />\r\n\r\n
\r\n
: ''}\r\n
\r\n }\r\n\r\n\r\n
\r\n {!this.props.isSemanaCerrada ? :\r\n }\r\n {!this.props.isSemanaCerrada ? : ''}\r\n {}\r\n {this.props.isDialog ? : ''}\r\n
\r\n\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierreSemanalLecturasArcadeDetail.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isSemanaCerrada: PropTypes.bool.isRequired,\r\n user: PropTypes.object.isRequired,\r\n maquinaDescr: PropTypes.string.isRequired,\r\n\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n\r\n maquinaId: PropTypes.number.isRequired,\r\n zonaId: PropTypes.number.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n backHandler: PropTypes.func.isRequired,\r\n nextHandler: PropTypes.func.isRequired,\r\n recaudacionDiaria: PropTypes.bool.isRequired,\r\n fecha: PropTypes.object\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isSemanaCerrada: state.centroDiaSelected.isSemanaCerrada,\r\n navigation: state.navigation,\r\n user: state.oidc.user\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n hideDialog,\r\n openDialog,\r\n modifyMaqArcade,\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalLecturasArcadeDetail));","import React from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport uuidv4 from 'uuid';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\n//component:\r\n// import FloatNumberFormatInput from '../float_number_input_formatter';\r\nimport IntNumberFormatInput from '../int_number_input_formatter';\r\nimport { Typography } from '@material-ui/core';\r\n\r\n\r\nconst drawerWidth = 240;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: drawerWidth\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n button: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n span: {\r\n minHeight: 70\r\n },\r\n inputRight: {\r\n textAlign: 'right'\r\n },\r\n title: {\r\n color: theme.palette.secondary.main\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n\r\n});\r\n\r\nclass EditLectArcade extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.lectura.id ? this.props.lectura.id : uuidv4(),\r\n contadorIni: this.props.lectura.contadorIni ? this.props.lectura.contadorIni : 0,\r\n contadorFin: this.props.lectura.contadorFin ? this.props.lectura.contadorFin : 0,\r\n ingresos: this.props.lectura.ingresos ? this.props.lectura.ingresos : 0,\r\n comentario: this.props.lectura.comentario ? this.props.lectura.comentario : '',\r\n regInterno: this.props.lectura.regInterno ? this.props.lectura.regInterno : ''\r\n };\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n renderIngresos = () => {\r\n\r\n // const { classes } = this.props;\r\n\r\n // if (this.props.lectura.iTipo === 2) return (
);\r\n // return (\r\n // \r\n // this.handleValueChange(event, 'ingresos')}\r\n // />\r\n // \r\n // );\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n
\r\n\r\n
\r\n {this.props.maquina}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n this.handleValueChange(event, 'contadorFin')}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n this.handleValueChange(event, 'comentario')}\r\n />\r\n \r\n \r\n\r\n {this.renderIngresos()}\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n\r\n};\r\n\r\nEditLectArcade.propTypes = {\r\n lectura: PropTypes.object,\r\n maquina: PropTypes.string.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n checkValues: PropTypes.func.isRequired,\r\n usuario: PropTypes.number.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditLectArcade);","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport { hideDialog } from '../../actions/index';\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport { getData } from '../../dataLib';\r\n\r\n//components\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: 200,\r\n },\r\n Typography: {\r\n margin: 'auto'\r\n },\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n width: 200,\r\n margin: '30px 8px 20px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 80,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass CierreSemanalResumenGastos extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n gastos: [],\r\n total: 0.0\r\n }\r\n }\r\n\r\n getGastos = () => {\r\n getData('VGastos/gastosSemana?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia,\r\n (response) => {\r\n this.setState({ ...this.state, gastos: response.data, total: this.calculateTotal(response.data) })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'error obteniendo gastos'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n }\r\n\r\n calculateTotal = (rows) => {\r\n let total = 0.0;\r\n rows.forEach((r) => {\r\n total += parseFloat(r.importe);\r\n })\r\n\r\n return total;\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getGastos();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.gastos.length === 0) {\r\n return (
\r\n
\r\n \r\n
\r\n
);\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n

Total

\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nCierreSemanalResumenGastos.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n user: PropTypes.object,\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired\r\n //parameters\r\n\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n user: state.oidc.user\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n hideDialog,\r\n }, dispatch);\r\n}\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalResumenGastos));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport { hideDialog } from '../../actions/index';\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport { getData } from '../../dataLib';\r\n\r\n//components\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\n\r\n\r\n//grid de datos de facturas de MKT\r\n//solo trabaja con state local ya que ningun otro control depende de estos datos\r\n//y hace todas las modificaciones directamente en la DB cuando se hace click en OK\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: 200,\r\n },\r\n Typography: {\r\n margin: 'auto'\r\n },\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n width: 200,\r\n margin: '30px 8px 20px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 80,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass CierreSemanalResumenVisas extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n visas: [],\r\n total: 0.0\r\n }\r\n }\r\n\r\n getVisas = () => {\r\n getData('VDAMovEc/Visas?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia,\r\n (response) => {\r\n this.setState({ ...this.state, visas: response.data, total: this.calculateTotal(response.data) })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching visas'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n }\r\n\r\n calculateTotal = (rows) => {\r\n let total = 0.0;\r\n rows.forEach((r) => {\r\n total += parseFloat(r.importe);\r\n })\r\n\r\n return total;\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getVisas();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.visas.length === 0) {\r\n return (
\r\n
\r\n \r\n
\r\n
);\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n

Total

\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nCierreSemanalResumenVisas.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n user: PropTypes.object,\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired\r\n //parameters\r\n\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n user: state.oidc.user\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n hideDialog,\r\n }, dispatch);\r\n}\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalResumenVisas));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport { hideDialog } from '../../actions/index';\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport { getData } from '../../dataLib';\r\n\r\n//components\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: 200,\r\n },\r\n Typography: {\r\n margin: 'auto'\r\n },\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n width: 200,\r\n margin: '30px 8px 20px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 80,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass CierreSemanalResumenMKT extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n mkt: [],\r\n total: 0.0\r\n }\r\n }\r\n\r\n getMKT = () => {\r\n getData('VMKT/MKTSemana?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia,\r\n (response) => {\r\n this.setState({ ...this.state, mkt: response.data, total: this.calculateTotal(response.data) })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching mkt'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n }\r\n\r\n calculateTotal = (rows) => {\r\n let total = 0.0;\r\n rows.forEach((r) => {\r\n total += parseFloat(r.importe);\r\n })\r\n\r\n return total;\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getMKT();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.mkt.length === 0) {\r\n return (
\r\n
\r\n \r\n
\r\n
);\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n

Total

\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nCierreSemanalResumenMKT.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n user: PropTypes.object,\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired\r\n //parameters\r\n\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n user: state.oidc.user\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n hideDialog,\r\n }, dispatch);\r\n}\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalResumenMKT));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport { openDialog, hideDialog } from '../../actions/index';\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport { getData } from '../../dataLib';\r\n\r\n//components\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: 200,\r\n },\r\n Typography: {\r\n margin: 'auto'\r\n },\r\n total: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: 250,\r\n margin: '10px 8px 20px 0',\r\n },\r\n totales: {\r\n display: 'flex',\r\n fontWeight: '500',\r\n textTransform: 'capitalize',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: 450,\r\n margin: '30px 8px 20px 0',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 80,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n label: {\r\n textAlign: 'left',\r\n marginRight: 5,\r\n marginLeft: 15,\r\n fontSize: 13,\r\n },\r\n grid:{\r\n marginBottom: 20\r\n }\r\n});\r\n\r\nclass CierreSemanalResumenBanco extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n bancos: [],\r\n total: 0.0\r\n }\r\n }\r\n\r\n getBancos = () => {\r\n getData('VIngresosResumen?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia,\r\n (response) => {\r\n this.setState({ ...this.state, bancos: response.data, total: this.calculateTotal(response.data) + this.props.arcadeCompl })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching bancos'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n }\r\n\r\n calculateTotal = (rows) => {\r\n let total = 0.0;\r\n rows.forEach((r) => {\r\n total += parseFloat(r.sumReal);\r\n })\r\n\r\n return parseFloat(total.toFixed(2));\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getBancos();\r\n }\r\n\r\n editIngreso = (ingreso) => {\r\n this.props.openDialog('Arqueo', {\r\n centroId: this.props.centroDiaSelected.centro.id,\r\n fecha: ingreso.fecha,\r\n okHandler: (total) => {\r\n const newIngresos = this.state.bancos.map((i) => {\r\n if (i.fecha === ingreso.fecha) {\r\n return { ...i, sumReal: total };\r\n }\r\n else return i;\r\n });\r\n this.setState({ ...this.state, bancos: newIngresos, total: this.calculateTotal(newIngresos) })\r\n },\r\n disabled: this.props.isSemanaCerrada\r\n }, uuidv4(), true, \"xs\")\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.bancos.length === 0) {\r\n return (
);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n {/*

Total Bancos

*/}\r\n Arqueo arcade regularización\r\n\r\n \r\n
\r\n\r\n
\r\n {/*

Total Bancos

*/}\r\n Total Arqueos\r\n\r\n \r\n
\r\n\r\n
\r\n {/*

Gastos Caja General

*/}\r\n Gastos Caja General\r\n \r\n
\r\n\r\n
\r\n

Total Bancos

\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nCierreSemanalResumenBanco.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n user: PropTypes.object,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n //parameters\r\n gastos: PropTypes.number.isRequired,\r\n arcadeCompl: PropTypes.number.isRequired\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isSemanaCerrada: state.centroDiaSelected.isSemanaCerrada,\r\n user: state.oidc.user\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n }, dispatch);\r\n}\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalResumenBanco));","//componente que muestra una tabla con el importe en € por dia y zona de un centro para una semana concreta (la fecha tiene que ser un día de cierre semanal)\r\n//obtiene los datos de la petición GET cierresemanaldatos/calendario\r\n\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n//components:\r\nimport NeuriteGrid from '../neurite_grid';\r\n\r\n//helpers:\r\nimport { getData } from '../../dataLib';\r\n\r\nconst styles = theme => ({\r\n buttonsContainer: {\r\n marginLeft: 16\r\n },\r\n button: {\r\n margin: '15px 15px 15px 0',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n title: {\r\n color: theme.palette.secondary.main,\r\n marginBottom: 40\r\n },\r\n grid: {\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n }\r\n});\r\n\r\nclass CalendarioSemanal extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n rows: []\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getCalendario();\r\n }\r\n\r\n getCalendario = () => {\r\n getData('cierresemanaldatos/calendario?centro_id=' + this.props.centro + '&date=' + this.props.fecha,\r\n (response) => {\r\n\r\n const totales = { date: '', bolera: 0, bar: 0, arcade: 0, otrosJuegos: 0, parqueInf: 0, cumples: 0, eventos: 0, totales: 0, visas: 0, partidas: 0 };\r\n response.data.forEach(r => {\r\n \r\n totales.bolera += r.bolera;\r\n totales.bar += r.bar;\r\n totales.arcade += r.arcade;\r\n totales.otrosJuegos += r.otrosJuegos;\r\n totales.parqueInf += r.parqueInf;\r\n totales.cumples += r.cumples;\r\n totales.eventos += r.eventos;\r\n totales.totales += r.totales;\r\n totales.visas += r.visas;\r\n totales.partidas += r.partidas;\r\n totales.isGray = true;\r\n totales.isGrayTotal = true;\r\n\r\n r.isGray = false;\r\n r.isGrayTotal = true;\r\n })\r\n\r\n totales.porcentaje = totales.bolera === 0 ? 100 : parseFloat((totales.bar).toFixed(2)) / parseFloat((totales.bolera).toFixed(2)) * 100;\r\n\r\n this.setState({ ...this.state, rows: [...response.data, totales] })\r\n },\r\n (error) => {\r\n console.log(error);\r\n },\r\n this.props.user\r\n );\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nCalendarioSemanal.propTypes = {\r\n\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired,\r\n\r\n //parameters\r\n user: PropTypes.object.isRequired,\r\n\r\n semanaCerrada: PropTypes.bool.isRequired,\r\n multiplicador: PropTypes.number.isRequired\r\n\r\n};\r\n\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(CalendarioSemanal);","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_TIPOS_ZONA,\r\n MODIFY_TIPO_ZONA,\r\n ADD_TIPO_ZONA,\r\n DELETE_TIPO_ZONA,\r\n UPDATE_TIPOS_ZONA,\r\n} from '../constants/action_types';\r\n\r\nexport function getTiposZona() {\r\n return getData('CvTipoZonas', GET_TIPOS_ZONA);\r\n}\r\n\r\nexport function modifyTipoZona(tipoZona) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_TIPO_ZONA, payload: tipoZona });\r\n }\r\n}\r\n\r\nexport function addTipoZona(tipoZona) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_TIPO_ZONA, payload: tipoZona });\r\n }\r\n}\r\n\r\nexport function removeTipoZona(tipoZona) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_TIPO_ZONA, payload: tipoZona });\r\n }\r\n}\r\n\r\nexport function updateTiposZonaDB (tiposZona) {\r\n // return (dispatch, getState) => {\r\n // dispatch({ type: UPDATE_TIPOS_ZONA, payload: tiposZona })\r\n // let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n // axios.post(config.API_URI() + 'cvtipozonas/zonas', tiposZona,\r\n // {\r\n // headers: {\r\n // Authorization: \"Bearer \" + token\r\n // }\r\n // }\r\n // ).then((response) => {\r\n // dispatch({ type: UPDATE_TIPOS_ZONA + \"_SUCCESS\", payload: response })\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: 'Cambios guardados!' },\r\n // dialogid: 'success_update_tipo_zona'\r\n // });\r\n // }).catch((error) => {\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_tipo_zona'\r\n // });\r\n // });\r\n // }\r\n\r\n return postData('cvtipozonas/zonas', UPDATE_TIPOS_ZONA, tiposZona, 'Tipos de zona actualizados', undefined);\r\n}\r\n\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getTiposZona, modifyTipoZona, removeTipoZona, addTipoZona, updateTiposZonaDB } from '../../actions/tipos_zona_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresTipoZona extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getTiposZona();\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n };\r\n\r\n checkCvTipoZona = (tipoZona) => {\r\n if (this.props.tiposZona.find(c => (c.descr === tipoZona.descr) && (c.id !== tipoZona.id))) {\r\n this.messageDialog(`Ya existe una zona ${tipoZona.descr}`);\r\n return false;\r\n } else if (!tipoZona.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca un Nombre');\r\n return false;\r\n } else if (isNaN(tipoZona.iKindElemImp)) {\r\n this.messageDialog('Por favor, introduzca un valor para el campo iKindElemImp');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n newTipoZona = () => {\r\n this.props.openDialog('EditCvTipoZona', {\r\n cvTipoZona: {},\r\n okHandler: (tz) => {\r\n this.props.setSaveState(true);\r\n this.props.addTipoZona(tz);\r\n },\r\n checkTipoZona: this.checkCvTipoZona,\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, fromRowData, updated }) => {\r\n\r\n if (fromRow !== toRow) return; //solo modificamos una fila\r\n\r\n // for (let i = fromRow; i <= toRow; i++) {\r\n // let updatedRow = update(this.props.tiposZona[i], { $merge: updated });\r\n // this.props.setSaveState(true);\r\n // this.props.modifyTipoZona(updatedRow);\r\n // }\r\n\r\n let updatedRow = update(this.props.tiposZona[fromRowData.grid_index], { $merge: updated });\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoZona(updatedRow);\r\n\r\n };\r\n\r\n handleDeleteRow = tipoZona => {\r\n this.props.setSaveState(true);\r\n this.props.removeTipoZona(tipoZona);\r\n };\r\n\r\n // height = () => {\r\n // if(this.props.tiposZona.length > 13) {\r\n // return 500;\r\n // }\r\n // return (35 * (this.props.tiposZona.length + 1))\r\n // };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresTipoZona.propTypes = {\r\n //state\r\n tiposZona: PropTypes.array.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getTiposZona: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyTipoZona: PropTypes.func.isRequired,\r\n removeTipoZona: PropTypes.func.isRequired,\r\n addTipoZona: PropTypes.func.isRequired,\r\n updateTiposZonaDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n\r\n return {\r\n user: state.oidc.user,\r\n tiposZona: state.tiposZona.tiposzona,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getTiposZona,\r\n openDialog,\r\n hideDialog,\r\n modifyTipoZona,\r\n removeTipoZona,\r\n addTipoZona,\r\n updateTiposZonaDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresTipoZona));\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\nimport FloatPercentFormatInput from '../../components/float_percent_input_formatter';\r\n\r\nconst styles = theme => ({\r\n label: {\r\n fontSize: 15,\r\n fontWeight: '400',\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginRight: 20,\r\n },\r\n buttonsBottom: {\r\n marginTop: 25,\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n radiobuttonLabel: {\r\n display: 'flex',\r\n },\r\n input: {\r\n marginRight: theme.spacing(3)\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: theme.spacing(1),\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n});\r\n\r\nclass IncrPresupuestos extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n origen: Math.round(this.props.oldPresupuesto * 100) / 100,\r\n newPresupuesto: Math.round(this.props.oldPresupuesto * 100) / 100,\r\n increment: 0,\r\n type: 'total'\r\n }\r\n }\r\n\r\n handleOptionChange = (event) => {\r\n this.setState({ ...this.state, type: event.target.value });\r\n }\r\n\r\n totalPresupuestoChange = (event) => {\r\n\r\n if (this.state.type === 'total') {\r\n\r\n const total = event.target.value;\r\n\r\n const percent = Math.round((total - this.state.origen) / this.state.origen * 100);\r\n\r\n this.setState({ ...this.state, newPresupuesto: total, increment: percent });\r\n }\r\n\r\n }\r\n\r\n percentPresupuestoChange = (event) => {\r\n\r\n if (this.state.type === 'percent') {\r\n const percent = event.target.value;\r\n\r\n const total = Math.round((1 + percent / 100) * this.state.origen);\r\n\r\n this.setState({ ...this.state, newPresupuesto: total, increment: percent });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n\r\n {'Importe Anterior'}\r\n \r\n\r\n\r\n this.handleOptionChange(event)}\r\n >\r\n } label={\r\n
\r\n {'Nuevo Importe (€)'}\r\n \r\n
\r\n } />\r\n } label={\r\n
\r\n {'Incremento (%)'}\r\n \r\n
\r\n } />\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nIncrPresupuestos.propTypes = {\r\n\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired,\r\n\r\n //parameters\r\n oldPresupuesto: PropTypes.string.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(IncrPresupuestos);","import { getData, postData } from './redux_data';\r\nimport {\r\n GET_PRESUPUESTO, GET_PRESUPUESTO_DETALLE, GENERATE_PRESUPUESTO, GET_NEW_PRESUPUESTO_DETALLE, UPDATE_PRESUPUESTO_DETALLE, COPIAR_PRESUPUESTO, CAMBIAR_BLOQUEO_PRESUPUESTO,\r\n} from '../constants/action_types';\r\n\r\n\r\nexport function getPresupuesto(centro_id, year, provisional) {\r\n return getData('presupuesto?centro_id=' + centro_id + '&actual_year=' + year + '&provisional=' + provisional, GET_PRESUPUESTO);\r\n}\r\n\r\nexport function getPresupuestoDetalle(centro_id, actual_year, ref_year, month, zona_id, arcade, real, presupuesto_id) {\r\n return getData('presupuesto/detalle?centro_id=' + centro_id + '&actual_year=' + actual_year + '&ref_year=' + ref_year + '&month=' + month + '&zona_id=' + zona_id + '&arcade=' + arcade + '&real=' + real + '&presupuesto_id=' + presupuesto_id, GET_PRESUPUESTO_DETALLE);\r\n}\r\n\r\n//generate new presupuesto in DB (post):\r\nexport function generatePresupuesto(centro_id, actual_year, ref_year, start_month, end_month, real, provisional, parametros) {\r\n \r\n const postURL = 'presupuesto/generaPresupuesto?centro_id=' + centro_id +\r\n '&actual_year=' + actual_year + '&ref_year=' + ref_year + '&start_month=' + start_month + \r\n '&end_month=' + end_month + '&real=' + real + '&provisional=' + provisional;\r\n \r\n return postData(postURL, GENERATE_PRESUPUESTO, parametros, undefined, undefined);\r\n\r\n};\r\n\r\nexport function updatePresupuestoDetalle(zona_id, valores, presupuesto_id) {\r\n\r\n const postURL = 'presupuesto/actualizaMes?zona_id=' + zona_id + '&presupuesto_id=' + presupuesto_id;\r\n\r\n return postData(postURL, UPDATE_PRESUPUESTO_DETALLE, valores, undefined, undefined);\r\n\r\n};\r\n\r\nexport function getNewPresupuestoDetalle(centro_id, actual_year, ref_year, month, i_tipozona, factor, real) {\r\n return getData('presupuesto/DetalleNuevo?centro_id=' + centro_id + '&actual_year=' + actual_year + '&ref_year=' + ref_year + '&month=' + month + '&i_tipozona=' + i_tipozona + '&factor=' + factor + '&real=' + real, GET_NEW_PRESUPUESTO_DETALLE);\r\n}\r\n\r\n\r\nexport function copiarPresupuesto(presupuesto_id, prov_to_def)\r\n{\r\n const postURL = 'presupuesto/CopiarPresupuesto?presupuesto_id=' + presupuesto_id + '&prov_to_def=' + prov_to_def;\r\n\r\n return postData(postURL, COPIAR_PRESUPUESTO, {}, undefined, undefined);\r\n}\r\n\r\nexport function cambiarBloqueoPresupuesto(presupuesto_id)\r\n{\r\n const postURL = 'presupuesto/BloquearPresupuesto?presupuesto_id=' + presupuesto_id;\r\n\r\n return postData(postURL, CAMBIAR_BLOQUEO_PRESUPUESTO, {}, undefined, undefined);\r\n\r\n}","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport update from 'immutability-helper';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate, hideDialog } from '../../actions';\r\nimport { getPresupuestoDetalle, updatePresupuestoDetalle, getNewPresupuestoDetalle } from '../../actions/presupuesto_actions';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n//import FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\nimport FloatPercentFormatInput from '../../components/float_percent_input_formatter';\r\n\r\nimport * as config from '../../constants/configuration';\r\nimport { Button } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n centroSelect: {\r\n maxWidth: 240\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 220,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n input: {\r\n width: 80,\r\n margin: theme.spacing(1),\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n buttonGenera: {\r\n margin: theme.spacing(1),\r\n padding: '10px 20px',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n totales: {\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n divOptions: {\r\n display: 'flex',\r\n }\r\n});\r\n\r\nconst months = [\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"];\r\n\r\nclass PresupuestoDetalle extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n //mes: parseInt(this.props.match.params.id),\r\n mes: this.props.mes,\r\n year: this.props.presupuesto.presupuesto.year,\r\n centro_id: this.props.presupuesto.presupuesto.centroId,\r\n zona_id: '',\r\n iTipoZona: '',\r\n //yearRef: this.props.presupuesto.presupuesto.refYearsReal[0].year,\r\n yearRef: this.props.presupuesto.presupuesto.year - 1,\r\n rows: [],\r\n coef: 0.0,\r\n realOrPpto: 'real',\r\n updating: false\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n\r\n if (prevProps.presupuestoDetalle.presupuesto !== this.props.presupuestoDetalle.presupuesto) {\r\n if (this.props.presupuestoDetalle.reload) {\r\n this.props.getPresupuestoDetalle(this.state.centro_id, this.state.year, this.state.yearRef, this.state.mes + 1, this.state.zona_id, this.state.iTipoZona === 5, this.state.realOrPpto === 'real', this.props.presupuesto_id);\r\n }\r\n else {\r\n let rows = [];\r\n if (this.props.presupuestoDetalle.presupuesto.values) {\r\n\r\n this.props.presupuestoDetalle.presupuesto.values.forEach((v, index) => {\r\n\r\n let refValue = this.props.presupuestoDetalle.presupuesto.refValues.find(vr => vr.fecha.slice(4,10) === v.fecha.slice(4, 10));\r\n if(!refValue) refValue = 0.0;\r\n\r\n const date1 = new Date(v.fecha.slice(0, 10));\r\n //const date2 = new Date(refValue.fecha.slice(0, 10));\r\n const date2 = new Date(this.state.yearRef, date1.getMonth(), date1.getDate());\r\n\r\n rows.push({\r\n dia: date1.getDate() + ' de ' + months[date1.getMonth()],\r\n fecha: date1,\r\n refValue: refValue ? refValue.valor : 0.0,\r\n value: v.valor,\r\n isGray1: date1.getDay() === 0 || date1.getDay() === 6,\r\n isGray2: date2.getDay() === 0 || date2.getDay() === 6,\r\n isGray3: date1.getDay() === 0 || date1.getDay() === 6\r\n })\r\n });\r\n }\r\n this.setState({ ...this.state, rows: rows, updating: false });\r\n }\r\n }\r\n\r\n }\r\n\r\n handleSelectZonasValueChange = event => {\r\n\r\n const iTipoZona = this.props.presupuesto.presupuesto.zonas.find(z => z.id === event.target.value).iTipoZona;\r\n this.setState({ ...this.state, zona_id: event.target.value, iTipoZona: iTipoZona });\r\n this.props.getPresupuestoDetalle(this.state.centro_id, this.state.year, this.state.yearRef, this.state.mes + 1, event.target.value, iTipoZona === 5, this.state.realOrPpto === 'real', this.props.presupuesto_id);\r\n\r\n }\r\n\r\n handleYearOrigenValueChange = (event) => {\r\n this.setState({ ...this.state, yearRef: parseInt(event.target.value) });\r\n this.props.getPresupuestoDetalle(this.state.centro_id, this.state.year, parseInt(event.target.value), this.state.mes + 1, this.state.zona_id, this.state.iTipoZona === 5, this.state.realOrPpto === 'real', this.props.presupuesto_id);\r\n }\r\n\r\n renderSelectOrigenYears = () => {\r\n // if (this.props.presupuesto.presupuesto.refYearsReal) {\r\n // return this.props.presupuesto.presupuesto.refYearsPpto.map(y => {\r\n // return ();\r\n // })\r\n // }\r\n\r\n const anyos = [];\r\n\r\n if (this.props.presupuesto.presupuesto.refYearsPpto || this.props.presupuesto.presupuesto.refYearsReal) {\r\n \r\n this.props.presupuesto.presupuesto.refYearsPpto.forEach(y => {\r\n anyos.push(y.year);\r\n });\r\n\r\n this.props.presupuesto.presupuesto.refYearsReal.forEach(y => {\r\n if (!anyos.includes(y.year)) anyos.push(y.year);\r\n });\r\n\r\n anyos.sort(function (a, b) { return a - b });\r\n\r\n return anyos.map(y => {\r\n return ();\r\n })\r\n\r\n }\r\n\r\n }\r\n\r\n coefChange = event => {\r\n this.setState({ ...this.state, coef: event.target.value });\r\n }\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, updated }) => {\r\n\r\n var rows = this.state.rows.slice();\r\n\r\n for (let i = fromRow; i <= toRow; i++) {\r\n let updatedRow = update(this.state.rows[i], { $merge: updated });\r\n rows[i] = updatedRow;\r\n }\r\n\r\n this.setState({ ...this.state, rows: rows });\r\n\r\n };\r\n\r\n renderGrid = () => {\r\n\r\n\r\n const { classes } = this.props;\r\n\r\n if (this.props.presupuestoDetalle.isLoading) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n let columns = [\r\n { key: 'dia', name: 'Fecha', editable: false, draggable: false, width: 120, grayField: 'isGray1' },\r\n { key: 'refValue', name: 'Año ref.', editable: false, draggable: false, width: 120, type: 'float', grayField: 'isGray2' },\r\n { key: 'value', name: 'Año actual', editable: !this.props.cerrado, draggable: false, width: 120, type: 'float', grayField: 'isGray3' }\r\n ];\r\n\r\n return (\r\n \r\n )\r\n\r\n }\r\n\r\n updatePresupuesto = () => {\r\n //const zona = this.props.presupuesto.presupuesto.zonas.find(z => z.iTipoZona === this.state.iTipoZona);\r\n\r\n this.props.updatePresupuestoDetalle(\r\n this.state.zona_id,\r\n this.state.rows.map(r => {\r\n return {\r\n fecha: r.fecha,\r\n valor: r.value\r\n }\r\n }),\r\n this.props.presupuesto_id\r\n );\r\n this.setState({ ...this.state, updating: true });\r\n\r\n }\r\n\r\n\r\n handleRealChange = (event) => {\r\n this.setState({ ...this.state, realOrPpto: event.target.value });\r\n this.props.getPresupuestoDetalle(this.state.centro_id, this.state.year, this.state.yearRef, this.state.mes + 1, this.state.zona_id, this.state.iTipoZona === 5, event.target.value === 'real', this.props.presupuesto_id);\r\n }\r\n\r\n renderSpinner = () => {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n if (this.state.updating) return this.renderSpinner();\r\n\r\n else {\r\n return (\r\n\r\n
\r\n\r\n {/*
*/}\r\n
\r\n \r\n Zona\r\n \r\n \r\n \r\n Año ref\r\n this.handleYearOrigenValueChange(event)}\r\n name={'year'}\r\n disabled={this.state.zona_id === ''}\r\n >\r\n {this.renderSelectOrigenYears()}\r\n \r\n \r\n\r\n \r\n this.handleRealChange(event)}\r\n disabled={this.state.zona_id === ''}\r\n >\r\n } label={'Presupuesto'} disabled={this.state.zona_id === ''}/>\r\n } label={'Real'} disabled={this.state.zona_id === ''}/>\r\n \r\n \r\n
\r\n\r\n\r\n {this.renderGrid()}\r\n\r\n
\r\n {'Incremento'}\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n )\r\n }\r\n }\r\n\r\n}\r\n\r\nPresupuestoDetalle.propTypes = {\r\n //paraneters\r\n mes: PropTypes.number.isRequired,\r\n presupuesto_id: PropTypes.number.isRequired,\r\n cerrado: PropTypes.bool.isRequired,\r\n //state\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n presupuesto: state.presupuesto,\r\n presupuestoDetalle: state.presupuestoDetalle\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getPresupuestoDetalle,\r\n updatePresupuestoDetalle,\r\n getNewPresupuestoDetalle,\r\n hideDialog\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(PresupuestoDetalle));","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Button } from '@material-ui/core';\r\n\r\n//helpers:\r\nimport { getData } from '../../dataLib';\r\n\r\n//components\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n }\r\n});\r\n\r\nclass SelectMaquina extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n maquinaSelected: undefined,\r\n showSpinner: true,\r\n rows: []\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getMaquinas(this.props.centroId);\r\n }\r\n\r\n\r\n getMaquinas = (centro_id) => {\r\n\r\n let maqURL = 'VMaquinas/VMaquinasAlta?centro_id=' + centro_id;\r\n\r\n getData(maqURL,\r\n (response) => {\r\n this.setState({ ...this.state, rows: response.data, showSpinner: false })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR obteniendo las máquinas de este centro'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n onMaquinaSelected = (maquina, column) => {\r\n this.setState({ ...this.state, maquinaSelected: maquina });\r\n }\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n this.state.showSpinner ?\r\n
\r\n \r\n
\r\n :\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n )\r\n\r\n }\r\n\r\n\r\n}\r\n\r\nSelectMaquina.propTypes = {\r\n\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired,\r\n\r\n //parameters\r\n okHandler: PropTypes.func.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n user: PropTypes.object.isRequired\r\n\r\n};\r\n\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(SelectMaquina);","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Button, Typography, Checkbox, FormControl, FormControlLabel } from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n observTextField: {\r\n display: 'flex',\r\n height: '100%',\r\n margin: theme.spacing(1),\r\n },\r\n inputObserv: {\r\n display: 'flex',\r\n alignItems: 'start',\r\n margin: '15px 0',\r\n padding: '5px 8px',\r\n\r\n },\r\n button: {\r\n margin: '15px 15px 15px 0',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n title: {\r\n marginTop: theme.spacing(1),\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n marginBottom: theme.spacing(3),\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n }\r\n});\r\n\r\nclass EditIncidencia extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n incidencia: {},\r\n incidenciaText: '',\r\n diagnosticoText: '',\r\n resolucionText: '',\r\n status: 0,\r\n desactivar: false\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n let status = 0;\r\n if (this.props.incidencia.usuarioIncidencia !== null) status = 1;\r\n if (this.props.incidencia.usuarioDiagnostico !== null) status = 2;\r\n if (this.props.incidencia.usuarioResolucion !== null) status = 3;\r\n this.setState({\r\n incidencia: this.props.incidencia,\r\n incidenciaText: this.props.incidencia.incidencia,\r\n diagnosticoText: this.props.incidencia.diagnostico,\r\n resolucionText: this.props.incidencia.resolucion,\r\n status: status,\r\n desactivar: (status === 0 && this.props.maquina.activa) || !this.props.maquina.activa\r\n });\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value })\r\n }\r\n\r\n\r\n handleCheckboxChange = (event) => {\r\n this.setState({ ...this.state, desactivar: event.target.checked });\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n {this.props.maquina.descr + ' - ' + this.props.maquina.regInterno}\r\n\r\n Incidencia\r\n this.handleValueChange(event, 'incidenciaText')}\r\n />\r\n\r\n \r\n this.handleCheckboxChange(event)}\r\n color=\"primary\"\r\n />\r\n }\r\n label={'Desactivar máquina'}\r\n />\r\n \r\n\r\n\r\n Diagnóstico\r\n this.handleValueChange(event, 'diagnosticoText')}\r\n />\r\n\r\n Resolución\r\n this.handleValueChange(event, 'resolucionText')}\r\n />\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n )\r\n\r\n }\r\n\r\n\r\n}\r\n\r\nEditIncidencia.propTypes = {\r\n\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired,\r\n\r\n //parameters\r\n okHandler: PropTypes.func.isRequired,\r\n incidencia: PropTypes.object.isRequired,\r\n maquina: PropTypes.object.isRequired,\r\n user: PropTypes.number.isRequired\r\n\r\n};\r\n\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditIncidencia);","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\nimport update from 'immutability-helper';\r\n\r\n//helpers:\r\nimport { getData, postData } from '../../dataLib';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Button from '@material-ui/core/Button';\r\nimport InputBase from '@material-ui/core/InputBase';\r\n\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\nimport IntNumberFormatInput from '../../components/int_number_input_formatter';\r\n//import FloatNumberFormatText from '../../components/float_number_text_formatter';\r\nimport IntNumberFormatText from '../../components/int_number_text_formatter';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions';\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n header: {\r\n display: 'flex'\r\n },\r\n headerBox: {\r\n width: 80,\r\n margin: 0,\r\n fontSize: 12,\r\n fontWeight: 500,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n border: '1px solid #dddddd',\r\n background: '#f9f9f9',\r\n },\r\n table: {\r\n display: 'inline-block',\r\n border: '1px solid #dddddd',\r\n },\r\n row: {\r\n display: 'flex',\r\n },\r\n rowTextCell: {\r\n width: 80,\r\n fontSize: 12,\r\n textAlign: 'right',\r\n border: '1px solid #dddddd',\r\n paddingRight: theme.spacing(1),\r\n paddingLeft: theme.spacing(1),\r\n },\r\n inputCell: {\r\n textAlign: 'right',\r\n fontSize: 12,\r\n padding: 0\r\n },\r\n bottomBtn: {\r\n direction: 'rtl'\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n }\r\n});\r\n\r\nclass EditLecturasContador extends React.Component {\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n lecturas: [],\r\n showSpinner: true,\r\n update: true,\r\n modified: []\r\n }\r\n }\r\n\r\n shouldComponentUpdate = (nextProps, nextState) => {\r\n return nextState.update;\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getLecturas();\r\n }\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n\r\n getLecturas = () => {\r\n\r\n let lectURL = 'DCLecturas?contador_id=' + this.props.id;\r\n\r\n getData(lectURL,\r\n (response) => {\r\n this.setState({ ...this.state, lecturas: response.data, modified: [], showSpinner: false })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'error obteniendo lecturas'\r\n }, 'error-obtener-lecturas-contador', false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n\r\n updateLecturas = () => {\r\n\r\n let error = false;\r\n\r\n // XAC - comentado porque quieren poder poner contadores que empiezan otra vez desde 0 o con otros valores completamente distintos\r\n // this.state.lecturas.forEach(l => {\r\n\r\n // if (l.contadorIni > l.contadorFin) {\r\n\r\n // this.props.openDialog('SimpleMessage', {\r\n // message: 'El contador inicial no puede ser mayor al contador final en ninguna de las lecturas'\r\n // }, 'error-guardar-lecturas-contador', false, 'sm');\r\n\r\n // error = true;\r\n // }\r\n\r\n // });\r\n\r\n\r\n if (!error) {\r\n\r\n let lectURL = 'DCLecturas/lecturas';\r\n\r\n this.setState({ ...this.state, showSpinner: true });\r\n\r\n postData(lectURL,\r\n () => {\r\n this.props.hideDialog();\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'lecturas actualizadas'\r\n }, uuidv4(), false, 'sm');\r\n this.props.setSaveState(false);\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'error actualizando lecturas'\r\n }, 'error-actualizar-lecturas-contador', false, 'sm');\r\n },\r\n this.state.lecturas.filter(l => this.state.modified.includes(l.id)),\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n };\r\n\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, fromRowData, updated }) => {\r\n\r\n let rows = this.state.lecturas.slice();\r\n let mod = this.state.modified.slice();\r\n\r\n const i = fromRowData.grid_index;\r\n\r\n console.log(fromRowData);\r\n\r\n let updatedRow = update(this.state.lecturas[i], { $merge: updated });\r\n rows[i] = updatedRow;\r\n\r\n if (!mod.includes(updatedRow.id)) mod.push(updatedRow.id);\r\n\r\n if (i < rows.length - 1) {\r\n rows[i + 1] = { ...rows[i + 1], contadorIni: updatedRow.contadorFin, controlContIni: updatedRow.controlContFin };\r\n if (!mod.includes(rows[i + 1].id)) mod.push(rows[i + 1].id);\r\n }\r\n\r\n this.setState({ ...this.state, lecturas: rows, modified: mod, update: true });\r\n\r\n };\r\n\r\n\r\n handleFieldChange = (event, index, field) => {\r\n\r\n var rows = this.state.lecturas.slice();\r\n rows[index] = { ...this.state.lecturas[index], [field]: event.target.value };\r\n if (field === 'contadorFin' && index !== rows.length - 1) rows[index + 1] = { ...this.state.lecturas[index + 1], contadorIni: event.target.value };\r\n this.setState({ ...this.state, lecturas: rows, update: false });\r\n\r\n }\r\n\r\n handleBlur = (event, index, field) => {\r\n\r\n if (this.state.update === false) this.setState({ ...this.state, update: true });\r\n\r\n }\r\n\r\n\r\n\r\n renderDataGrid = () => {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n {this.renderHeaders()}\r\n {this.state.lecturas.map((row, index) => {\r\n return this.renderRow(row, index);\r\n })}\r\n
\r\n );\r\n }\r\n\r\n renderHeaders = () => {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
Fecha
\r\n
Cont. Ini
\r\n
Cont. Fin
\r\n
Multipl.
\r\n
Precio
\r\n
Ingresos
\r\n
Fichas
\r\n
\r\n );\r\n }\r\n\r\n renderRow = (row, index) => {\r\n\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
{row.fecha.slice(0, 10)}
\r\n
\r\n
\r\n this.handleFieldChange(event, index, 'contadorFin')}\r\n onBlur={(event) => this.handleBlur(event, index, 'contadorFin')}\r\n onKeyPress={(event) => {\r\n if (event.key === 'Enter') { event.preventDefault(); this.handleBlur(event, index, 'contadorFin') }\r\n\r\n }}\r\n />\r\n
\r\n
\r\n this.handleFieldChange(event, index, 'multiplicador')}\r\n onBlur={(event) => this.handleBlur(event, index, 'multiplicador')}\r\n onKeyPress={(event) => {\r\n if (event.key === 'Enter') { event.preventDefault(); this.handleBlur(event, index, 'multiplicador') }\r\n }}\r\n\r\n />\r\n
\r\n
\r\n this.handleFieldChange(event, index, 'precio')}\r\n onBlur={(event) => this.handleBlur(event, index, 'precio')}\r\n onKeyPress={(event) => {\r\n if (event.key === 'Enter') { event.preventDefault(); this.handleBlur(event, index, 'precio') }\r\n\r\n }}\r\n />\r\n
\r\n
\r\n this.handleFieldChange(event, index, 'ingresos')}\r\n onBlur={(event) => this.handleBlur(event, index, 'ingresos')}\r\n onKeyPress={(event) => {\r\n if (event.key === 'Enter') { event.preventDefault(); this.handleBlur(event, index, 'ingresos') }\r\n\r\n }}\r\n />\r\n
\r\n
\r\n this.handleFieldChange(event, index, 'fichas')}\r\n onBlur={(event) => this.handleBlur(event, index, 'fichas')}\r\n onKeyPress={(event) => {\r\n if (event.key === 'Enter') { event.preventDefault(); this.handleBlur(event, index, 'fichas') }\r\n\r\n }}\r\n />\r\n
\r\n
\r\n );\r\n\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n Lecturas\r\n\r\n {/* {!this.props.showSpinner ?\r\n\r\n this.renderDataGrid()\r\n\r\n :
} */}\r\n\r\n {!this.props.showSpinner ?\r\n\r\n this.handleGridRowsUpdated(toRow, updated)}\r\n onRowsUpdated={this.handleGridRowsUpdated}\r\n />\r\n\r\n :
}\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nEditLecturasContador.propTypes = {\r\n //state\r\n saveState: PropTypes.bool.isRequired,\r\n\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n\r\n id: PropTypes.number.isRequired\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n saveState: state.saveState\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(EditLecturasContador));","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//helpers:\r\nimport { getData } from '../../dataLib';\r\n\r\n//component ui:\r\nimport DatePicker from '../../components/utils/DatePicker';\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n//actions:\r\nimport { openDialog, hideDialog } from '../../actions';\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n bottomBtn: {\r\n direction: 'rtl',\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n containerControls: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n});\r\n\r\nclass ListaMovimientos extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n movimientos: [],\r\n fIni: new Date(Date.UTC(2019, 0, 1)).toJSON().slice(0, 10),\r\n fEnd: new Date().toJSON().slice(0, 10),\r\n showSpinner: true,\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getMovimientos();\r\n };\r\n\r\n messageDialog = msg => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: msg,\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n };\r\n\r\n getMovimientos = () => {\r\n let lectURL =\r\n 'VDAMovEc?zona_id=' +\r\n this.props.zona_id +\r\n '&ini_date=' +\r\n this.state.fIni +\r\n '&end_date=' +\r\n this.state.fEnd;\r\n\r\n getData(\r\n lectURL,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n movimientos: response.data,\r\n showSpinner: false,\r\n });\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'error obteniendo movimientos',\r\n },\r\n 'error-obtener-movimientos',\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n handleDateIniChange = event => {\r\n if (this.state.fEnd < event) {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message:\r\n 'la fecha inicial no puede ser posterior a la fecha final',\r\n },\r\n 'error-fecha-inicio-movimientos',\r\n false,\r\n 'sm',\r\n );\r\n return;\r\n }\r\n this.setState({ ...this.state, fIni: event });\r\n };\r\n\r\n handleDateEndChange = event => {\r\n if (this.state.fIni > event) {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message:\r\n 'la fecha final no puede ser anterior a la fecha inicial',\r\n },\r\n 'error-fecha-final-movimientos',\r\n false,\r\n 'sm',\r\n );\r\n return;\r\n }\r\n\r\n this.setState({ ...this.state, fEnd: event });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n \r\n Movimientos\r\n \r\n\r\n {!this.props.showSpinner ? (\r\n
\r\n
\r\n \r\n {/* this.handleDateIniChange(event, 'fIni')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleDateIniChange(d.toISOString().slice(0, 10), 'fIni')\r\n }\r\n }}\r\n />\r\n \r\n \r\n {/* this.handleDateEndChange(event, \"fEnd\")}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleDateEndChange(d.toISOString().slice(0, 10), 'fEnd')\r\n }\r\n }}\r\n />\r\n \r\n\r\n {\r\n this.getMovimientos();\r\n }}\r\n >\r\n Cargar movimientos\r\n \r\n
\r\n\r\n \r\n
\r\n ) : (\r\n
\r\n {' '}\r\n {' '}\r\n
\r\n )}\r\n\r\n
\r\n {\r\n this.props.hideDialog();\r\n }}\r\n >\r\n Cerrar\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nListaMovimientos.propTypes = {\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired,\r\n zona_id: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n openDialog,\r\n hideDialog,\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(withStyles(styles, { withTheme: true })(ListaMovimientos));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\nimport update from 'immutability-helper';\r\n\r\n//helpers:\r\nimport { getData, postData } from '../../dataLib';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions/index';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//material ui components:\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Paper from '@material-ui/core/Paper';\r\n\r\n\r\n\r\n//grid de datos de facturas de MKT\r\n//solo trabaja con state local ya que ningun otro control depende de estos datos\r\n//y hace todas las modificaciones directamente en la DB cuando se hace click en OK\r\n\r\nconst styles = theme => ({\r\n input: {\r\n width: 80,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n buttonNew: {\r\n margin: '15px auto',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n width: 120,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n bottomBtn: {\r\n display: 'flex'\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n divData: {\r\n position: 'relative',\r\n display: 'flex'\r\n },\r\n root: {\r\n display: 'block'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n paperNew: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2),\r\n backgroundColor: '#eeeeee',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: 340\r\n },\r\n divGrid: {\r\n width: 560\r\n },\r\n labelCheck:{\r\n marginLeft: 0\r\n }\r\n\r\n});\r\n\r\nclass CentroMailing extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n rows: [],\r\n cierreDiario: true,\r\n cierreSemanal: true,\r\n inventario: false,\r\n showSpinner: true,\r\n };\r\n };\r\n\r\n componentDidMount = () => {\r\n this.getMailings();\r\n }\r\n\r\n // componentDidUpdate(prevProps) {\r\n // if (this.producto === undefined &&\r\n // prevProps.centroDiaSelected !== this.props.centroDiaSelected) {\r\n // this.getMkt();\r\n // this.props.getArtMktCentro(this.props.centroDiaSelected.centro.id);\r\n // }\r\n\r\n // if (prevProps.centroDiaSelected.dia !== this.props.centroDiaSelected.dia || prevProps.centroDiaSelected.centro !== this.props.centroDiaSelected.centro)\r\n // this.setState({ ...this.state, showSpinner: true })\r\n // };\r\n\r\n messageError = error => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: error\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n\r\n deleteMailing = (mailing) => {\r\n let rows = this.state.rows.filter(m => m.id !== mailing.id);\r\n this.setState({ ...this.state, rows: rows });\r\n };\r\n\r\n\r\n //obtiene las facturas de MKT\r\n getMailings = () => {\r\n\r\n let mailingsURL = 'CentroMailings?centro_id=' + this.props.centroId;\r\n\r\n getData(mailingsURL,\r\n (response) => {\r\n this.setState({ ...this.state, rows: response.data, showSpinner: false })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR obteniendo mailings'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n \r\n updateMailings = () => {\r\n\r\n var mailings = this.state.rows.slice();\r\n mailings.forEach((m) => {\r\n if (typeof m.id !== 'number') m.id = -1;\r\n });\r\n\r\n let mailingsURL = 'CentroMailings/mailings?centroId=' + this.props.centroId;\r\n\r\n\r\n postData(mailingsURL,\r\n () => {\r\n this.props.hideDialog();\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'lista de mailing actualizados'\r\n }, uuidv4(), false, 'sm');\r\n this.props.setSaveState(false);\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR actualizando lista de mailings'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n mailings,\r\n this.props.user\r\n );\r\n\r\n\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, updated }) => {\r\n\r\n var rows = this.state.rows.slice();\r\n\r\n for (let i = fromRow; i <= toRow; i++) {\r\n let updatedRow = update(this.state.rows[i], { $merge: updated });\r\n rows[i] = updatedRow;\r\n }\r\n\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, rows: rows });\r\n\r\n };\r\n\r\n handleGridNewRow = () => {\r\n\r\n const mailing = {\r\n id: uuidv4(),\r\n centroId: this.props.centroId,\r\n mail: this.state.email,\r\n bCierreDiario: this.state.cierreDiario,\r\n bCierreSemanal: this.state.cierreSemanal,\r\n bInventario: this.state.inventario,\r\n }\r\n\r\n\r\n let rows = this.state.rows.slice();\r\n rows.push(mailing);\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, rows: rows, email: '', bCierreDiario: true, bCierreSemanal: true, bInventario: false });\r\n\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n }\r\n\r\n handleCheckboxChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.checked });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.showSpinner)\r\n return (\r\n
\r\n \r\n
\r\n );\r\n\r\n return (\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n this.handleValueChange(event, 'email')}\r\n />\r\n \r\n\r\n \r\n this.handleCheckboxChange(event, 'cierreDiario')}\r\n color=\"primary\"\r\n />\r\n }\r\n label={'Cierre diario'}\r\n />\r\n \r\n \r\n this.handleCheckboxChange(event, 'cierreSemanal')}\r\n color=\"primary\"\r\n />\r\n }\r\n label={'Cierre semanal'}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCentroMailing.propTypes = {\r\n //state\r\n user: PropTypes.object,\r\n\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n\r\n //parametros:\r\n centroId: PropTypes.number.isRequired\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n hideDialog,\r\n openDialog,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CentroMailing));","import React from 'react';\r\n// import { Document, Page } from 'react-pdf';\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\n\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column'\r\n },\r\n PDFdocument: {\r\n maxHeight: 500\r\n },\r\n button: {\r\n margin: '15px 15px 15px 0',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n span: {\r\n minHeight: 60\r\n },\r\n spinnerContainer: {\r\n height: 220,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '600px !important',\r\n height: '8px !important',\r\n },\r\n});\r\n\r\nclass PdfViewer extends React.Component {\r\n\r\n state = {\r\n numPages: null,\r\n // pageNumber: 1,\r\n bytes: null\r\n };\r\n\r\n onDocumentLoadSuccess = (document) => {\r\n const { numPages } = document;\r\n this.setState({\r\n numPages,\r\n // pageNumber: 1,\r\n });\r\n };\r\n\r\n changePage = offset => this.setState(prevState => ({\r\n pageNumber: prevState.pageNumber + offset,\r\n }));\r\n\r\n previousPage = () => this.changePage(-1);\r\n\r\n nextPage = () => this.changePage(1);\r\n\r\n render() {\r\n const { numPages } = this.state;\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n {/* */}\r\n\r\n {Array.from(\r\n new Array(numPages),\r\n (el, index) => {\r\n return (\r\n \r\n )\r\n },\r\n )}\r\n\r\n \r\n
\r\n
\r\n\r\n {/*

\r\n Page {pageNumber || (numPages ? 1 : '--')} of {numPages || '--'}\r\n

*/}\r\n\r\n {/* \r\n = numPages}\r\n onClick={this.nextPage}\r\n >\r\n Next\r\n */}\r\n\r\n {\r\n const url = window.URL.createObjectURL(new Blob([this.props.pdfFile], {type: \"application/pdf\"}));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.target ='_blank';\r\n //link.setAttribute('download', 'report_' + this.props.name + '.pdf');\r\n document.body.appendChild(link);\r\n link.click();\r\n }}\r\n >\r\n Descargar\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nPdfViewer.propTypes = {\r\n pdfFile: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(PdfViewer);","import { SET_CENTRO_DIA, INVALIDATE_CENTRO_DIA, ENABLE_CENTRO_DIA } from '../constants/action_types';\r\nimport { getData } from './redux_data';\r\n\r\nexport function setCentroDia(centro, dia, semanal, fromUI = false) {\r\n\r\n let URL = 'centroDia?centro_id=' + centro + '&semanal=' + semanal;\r\n if (dia !== undefined) URL += '&date=' + dia;\r\n\r\n return getData(URL, SET_CENTRO_DIA, { centro, dia, fromUI });\r\n}\r\n\r\nexport function invalidateCentroDiaData() {\r\n return (dispatch, getState) => {\r\n dispatch({ type: INVALIDATE_CENTRO_DIA });\r\n }\r\n}\r\n\r\nexport function enableCentroDiaData() {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ENABLE_CENTRO_DIA });\r\n }\r\n}","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//actions:\r\nimport { getData, createReport } from '../dataLib';\r\nimport { openDialog, hideDialog } from '../actions/index';\r\nimport { setCentroDia } from '../actions/centro_dia_actions';\r\n\r\n//components\r\nimport NeuriteGrid from '../components/neurite_grid';\r\nimport DatePicker from '../components/utils/DatePicker';\r\n\r\n//#region CSS\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\n//import TextField from '@material-ui/core/TextField';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport { Button, Grid } from '@material-ui/core';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Fade from '@material-ui/core/Fade';\r\nimport Input from '@material-ui/core/Input';\r\n\r\nconst styles = theme => ({\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n centroSelect: {\r\n maxWidth: 240,\r\n },\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n marginLeft: 10,\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n width: 150,\r\n },\r\n buttonCerrar: {\r\n padding: '10px',\r\n margin: '20px 8px 10px',\r\n width: 100,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n spinnerContainer: {\r\n width: 250,\r\n height: 220,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n linearSpinner: {\r\n height: 10,\r\n width: 480,\r\n marginTop: 10,\r\n marginLeft: 10,\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: 'white',\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n//#endregion\r\n\r\nclass ReportGeneric extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n report: {},\r\n values: {\r\n monthIni: new Date().getMonth() + 1,\r\n monthEnd: new Date().getMonth() + 1,\r\n yearIni: new Date().getFullYear(),\r\n yearEnd: new Date().getFullYear(),\r\n centroId:\r\n this.props.centroDiaSelected.dia !== ''\r\n ? this.props.centroDiaSelected.centro.id\r\n : 1,\r\n iniDate:\r\n this.props.centroDiaSelected.dia !== ''\r\n ? this.props.centroDiaSelected.dia\r\n : null,\r\n endDate:\r\n this.props.centroDiaSelected.dia !== ''\r\n ? this.props.centroDiaSelected.dia\r\n : null,\r\n wIniDate:\r\n this.props.centroDiaSelected.dia !== ''\r\n ? this.props.centroDiaSelected.dia\r\n : null,\r\n wEndDate:\r\n this.props.centroDiaSelected.dia !== ''\r\n ? this.props.centroDiaSelected.dia\r\n : null,\r\n maquinaId: -100,\r\n modeloId: -100,\r\n chk1: false,\r\n chk2: false,\r\n chk3: false,\r\n chk4: false,\r\n chk5: false,\r\n opt1: '1',\r\n opt2: '1',\r\n dw: 1,\r\n ids: [0, 4, 5, 16, 17, 20].includes(this.props.userProfile.selectedCentroProfile.iPerfil) ? [] : [this.props.centroDiaSelected.centro.id],\r\n page: -1,\r\n },\r\n modelos: [],\r\n maquinas: [],\r\n regalos: [],\r\n datesToEnabled: [],\r\n datesToRender: [],\r\n loaded: false,\r\n pdfLoading: false,\r\n centroDiaCierre: 1,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getReportDefinition();\r\n this.getModelos();\r\n this.getDcCierres();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (\r\n prevProps.centros !== this.props.centros &&\r\n this.props.centros.length > 0\r\n ) {\r\n this.getMaquinas(this.props.centros[0].id);\r\n }\r\n if (prevProps.centroDiaSelected.centro.id !== this.props.centroDiaSelected.centro.id) {\r\n this.getDcCierres();\r\n }\r\n }\r\n\r\n //#region GetDATA\r\n getReportDefinition = () => {\r\n getData(\r\n 'NaReport/' + this.props.reportId,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n report: response.data,\r\n loaded: true,\r\n });\r\n if (response.data.maquina) {\r\n if (response.data.iGroup !== 2)\r\n this.getMaquinas(this.state.values.centroId);\r\n else\r\n this.getRegalos(this.state.values.centroId);\r\n }\r\n if (response.data.modelo) {\r\n this.getModelos();\r\n }\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching report definition',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n compareDescr = (a, b) => {\r\n if (a.descr.toLowerCase() < b.descr.toLowerCase()) return -1;\r\n if (a.descr.toLowerCase() > b.descr.toLowerCase()) return 1;\r\n return 0;\r\n };\r\n\r\n getModelos = () => {\r\n getData(\r\n 'VModeloMaquinas',\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n modelos: [...response.data].sort(this.compareDescr),\r\n });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching modelos',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n getMaquinas = centroId => {\r\n //maquines del centro\r\n\r\n getData(\r\n 'VMaquinas/VMaquinasAlta?centro_id=' + centroId,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n maquinas: [...response.data].sort(this.compareDescr),\r\n });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching maquinas',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n getRegalos = centroId => {\r\n //regalos del centro\r\n\r\n getData(\r\n 'ArticuloCompraCentros/list/' + centroId,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n regalos: [...response.data].sort(this.compareDescr),\r\n });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching regalos',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n getDcCierres = () => {\r\n //REPORT resumen semanal\r\n if (this.props.reportId === 4 || this.props.reportId === 40 || this.props.reportId === 39) {\r\n getData(\r\n 'DcCierre/' + this.props.centroDiaSelected.centro.id,\r\n response => {\r\n let dates = response.data.map(d => { return new Date(d.fecha) });\r\n\r\n this.setState({\r\n ...this.state,\r\n datesToRender: dates,\r\n datesToEnabled: dates,\r\n });\r\n },\r\n () => {\r\n /* this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n ); */\r\n },\r\n this.props.user,\r\n );\r\n }\r\n //REPORT inventarios\r\n if (this.props.reportId === 46) {\r\n getData(\r\n 'DcInventarios/dates/' + this.props.centroDiaSelected.centro.id,\r\n response => {\r\n let dates = response.data.map(d => { return new Date(d.fInventario) });\r\n this.setState({\r\n ...this.state,\r\n datesToRender: dates,\r\n datesToEnabled: dates,\r\n });\r\n },\r\n () => {\r\n /* this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n ); */\r\n },\r\n this.props.user,\r\n );\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Handle\r\n handleValueChange = (event, field) => {\r\n const newValues = { ...this.state.values, [field]: event.target.value };\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n\r\n handleSelectCentrosValueChange = event => {\r\n var centroSelected = this.props.centros.find(\r\n c => c.id === Number(event.target.value),\r\n );\r\n if (centroSelected !== undefined) {\r\n const newValues = {\r\n ...this.state.values,\r\n centroId: event.target.value,\r\n };\r\n this.setState({\r\n ...this.state,\r\n values: newValues,\r\n centroDiaCierre: centroSelected.iDiaCierre,\r\n });\r\n if (this.state.report.maquina) {\r\n if (this.state.report.iGroup !== 2)\r\n this.getMaquinas(event.target.value);\r\n else\r\n this.getRegalos(event.target.value);\r\n }\r\n this.props.setCentroDia(\r\n centroSelected.id,\r\n this.props.centroDiaSelected.dia,\r\n false,\r\n );\r\n }\r\n };\r\n\r\n handleCheckboxChange = (event, field) => {\r\n const newValues = {\r\n ...this.state.values,\r\n [field]: event.target.checked,\r\n };\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n\r\n handleWIniDateValueChange = event => {\r\n const validWeekday = this.state.report.weekEnd\r\n ? this.state.centroDiaCierre + 1\r\n : this.state.centroDiaCierre;\r\n\r\n var dt = new Date(event);\r\n\r\n if (dt.getDay() !== validWeekday) return;\r\n\r\n const newValues = { ...this.state.values, wIniDate: event };\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n\r\n handleWEndDateValueChange = event => {\r\n var dt = new Date(event);\r\n if (dt.getDay() !== this.state.centroDiaCierre) return;\r\n\r\n const newValues = { ...this.state.values, wEndDate: event };\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n\r\n handleCentroSelection = (rows, centros) => {\r\n\r\n const newValues = {\r\n ...this.state.values,\r\n ids: rows.map(\r\n i => centros[i].id,\r\n ),\r\n };\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n\r\n handlePageValueChange = event => {\r\n const newValues = { ...this.state.values, page: event.target.value };\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n //#endregion\r\n\r\n //#region Displays\r\n renderIniDateTime = () => {\r\n if (this.state.report.dateIni) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n const newValues = {\r\n ...this.state.values,\r\n iniDate: d.toISOString().slice(0, 10),\r\n };\r\n this.setState({ ...this.state, values: newValues });\r\n }\r\n }}\r\n datesToEnabled={this.state.datesToEnabled}\r\n datesToRender={this.state.datesToRender}\r\n />\r\n \r\n );\r\n }\r\n };\r\n\r\n renderEndDateTime = () => {\r\n if (this.state.report.dateEnd) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n const newValues = {\r\n ...this.state.values,\r\n endDate: d.toISOString().slice(0, 10),\r\n };\r\n this.setState({ ...this.state, values: newValues });\r\n }\r\n }}\r\n datesToEnabled={this.state.datesToEnabled}\r\n datesToRender={this.state.datesToRender}\r\n />\r\n \r\n );\r\n }\r\n };\r\n\r\n renderWeekIniDateTime = () => {\r\n\r\n if (this.state.report.weekIni) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleWIniDateValueChange(d.toISOString().slice(0, 10))\r\n }\r\n }}\r\n datesToEnabled={this.state.datesToEnabled}\r\n datesToRender={this.state.datesToRender}\r\n />\r\n \r\n );\r\n }\r\n };\r\n\r\n renderWeekEndDateTime = () => {\r\n if (this.state.report.weekEnd) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleWEndDateValueChange(d.toISOString().slice(0, 10))\r\n }\r\n }}\r\n datesToEnabled={this.state.datesToEnabled}\r\n datesToRender={this.state.datesToRender}\r\n />\r\n \r\n );\r\n }\r\n };\r\n\r\n renderCheckBox = field => {\r\n if (this.state.report[field]) {\r\n return (\r\n \r\n this.handleCheckboxChange(event, field)\r\n }\r\n color=\"primary\"\r\n />\r\n }\r\n label={this.state.report[field]}\r\n />\r\n );\r\n }\r\n };\r\n\r\n renderSelectCentros = () => {\r\n \r\n if ( this.props.kd ) return('');\r\n\r\n const perfil = this.props.userProfile.selectedCentroProfile.iPerfil;\r\n\r\n const centros = [0, 4, 5, 16, 17, 20].includes(perfil)\r\n ? this.props.centros.filter(c => c.activo === 1)\r\n : this.props.centros.filter(\r\n c =>\r\n c.id ===\r\n this.props.userProfile.selectedCentroProfile.centroId,\r\n );\r\n\r\n if (this.state.report.centroId) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n Centro\r\n \r\n this.handleSelectCentrosValueChange(event)\r\n }\r\n input={}\r\n name=\"centroId\"\r\n >\r\n {centros.map(centro => {\r\n return (\r\n \r\n {centro.centro}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n renderSelectMaquinas = () => {\r\n //maquines o regalos del centro\r\n if (this.state.report.maquina) {\r\n const { classes } = this.props;\r\n if (this.state.report.iGroup !== 2) {\r\n return (\r\n
\r\n \r\n \r\n Maquina\r\n \r\n \r\n this.handleValueChange(event, 'maquinaId')\r\n }\r\n input={}\r\n name=\"maquinaId\"\r\n >\r\n \r\n {this.state.maquinas.map(maquina => {\r\n return (\r\n \r\n {maquina.descr}\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n \r\n \r\n Regalo\r\n \r\n \r\n this.handleValueChange(event, 'maquinaId')\r\n }\r\n input={}\r\n name=\"maquinaId\"\r\n >\r\n \r\n {this.state.regalos.map(regalo => {\r\n return (\r\n \r\n {regalo.descr}\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n );\r\n }\r\n }\r\n };\r\n\r\n renderSelectModelos = () => {\r\n if (this.state.report.modelo) {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n Modelo\r\n \r\n this.handleValueChange(event, 'modeloId')\r\n }\r\n input={}\r\n name=\"modeloId\"\r\n >\r\n \r\n {this.state.modelos.map(modelo => {\r\n return (\r\n \r\n {modelo.descr}\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n );\r\n }\r\n };\r\n\r\n renderOptionList1 = () => {\r\n return this.state.report.opt1.split(';').map((o, index) => {\r\n return (\r\n }\r\n label={o}\r\n />\r\n );\r\n });\r\n };\r\n\r\n renderOptionList2 = () => {\r\n return this.state.report.opt2.split(';').map((o, index) => {\r\n return (\r\n }\r\n label={o}\r\n />\r\n );\r\n });\r\n };\r\n\r\n renderOption1 = () => {\r\n if (\r\n this.state.report.opt1 !== undefined &&\r\n this.state.report.opt1 !== null\r\n ) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n this.handleValueChange(event, 'opt1')\r\n }\r\n >\r\n {this.renderOptionList1()}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n renderOption2 = () => {\r\n if (\r\n this.state.report.opt2 !== undefined &&\r\n this.state.report.opt2 !== null\r\n ) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n this.handleValueChange(event, 'opt2')\r\n }\r\n >\r\n {this.renderOptionList2()}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n renderSelectMonth = (field, label) => {\r\n if (this.state.report[field]) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {!this.state.report.monthEnd ? 'Mes final' : label}\r\n this.handleValueChange(event, field)}\r\n name={field}\r\n >\r\n \r\n Enero\r\n \r\n \r\n Febrero\r\n \r\n \r\n Marzo\r\n \r\n \r\n Abril\r\n \r\n \r\n Mayo\r\n \r\n \r\n Junio\r\n \r\n \r\n Julio\r\n \r\n \r\n Agosto\r\n \r\n \r\n Septiembre\r\n \r\n \r\n Octubre\r\n \r\n \r\n Noviembre\r\n \r\n \r\n Diciembre\r\n \r\n {this.state.report[field] === 2 ? (\r\n \r\n Todos\r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n renderSelectYearIni = () => {\r\n if (this.state.report.yearIni) {\r\n const { classes } = this.props;\r\n let years = [];\r\n // if (this.state.report.iYearsFwd === 0) {\r\n // for (var i = 2006; i <= new Date().getFullYear(); i++) {\r\n // years.push(i);\r\n // }\r\n // }\r\n // else {\r\n // for (var j = new Date().getFullYear(); j <= new Date().getFullYear() + parseInt(this.state.report.iYearsFwd); j++) {\r\n // years.push(j);\r\n // }\r\n // }\r\n\r\n for (\r\n var i = 2006;\r\n i <=\r\n new Date().getFullYear() +\r\n parseInt(this.state.report.iYearsFwd);\r\n i++\r\n ) {\r\n years.push(i);\r\n }\r\n\r\n return (\r\n \r\n {!this.state.report.yearEnd ? 'Año final' : 'Año inicial'}\r\n \r\n this.handleValueChange(event, 'yearIni')\r\n }\r\n name={'yearIni'}\r\n >\r\n {years.map(y => {\r\n return (\r\n \r\n {y}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n renderSelectYearEnd = () => {\r\n if (this.state.report.yearEnd) {\r\n const { classes } = this.props;\r\n let years = [];\r\n for (var i = 2006; i <= new Date().getFullYear(); i++) {\r\n years.push(parseInt(i));\r\n }\r\n return (\r\n \r\n {'Año final'}\r\n \r\n this.handleValueChange(event, 'yearEnd')\r\n }\r\n name={'yearEnd'}\r\n >\r\n {years.map(y => {\r\n return (\r\n \r\n {y}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n renderSelectWeekDay = () => {\r\n if (this.state.report.dayofweek) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {'Día de la semana'}\r\n this.handleValueChange(event, 'dw')}\r\n name={'dw'}\r\n >\r\n \r\n Lunes\r\n \r\n \r\n Martes\r\n \r\n \r\n Miércoles\r\n \r\n \r\n Jueves\r\n \r\n \r\n Viernes\r\n \r\n \r\n Sábado\r\n \r\n \r\n Domingo\r\n \r\n {this.state.report.dayofweek === 2 ? (\r\n \r\n Todos\r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n renderDates = () => {\r\n if (this.state.report.dateIni || this.state.report.dateEnd) {\r\n return (\r\n \r\n \r\n {this.renderIniDateTime()}\r\n \r\n \r\n {this.renderEndDateTime()}\r\n \r\n \r\n );\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n\r\n renderWDates = () => {\r\n if (this.state.report.weekIni || this.state.report.weekEnd) {\r\n return (\r\n \r\n \r\n {this.renderWeekIniDateTime()}\r\n \r\n \r\n {this.renderWeekEndDateTime()}\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n renderSelectMonths = () => {\r\n\r\n return (\r\n \r\n \r\n {this.renderSelectMonth('monthIni', 'Mes inicial')}\r\n \r\n \r\n {this.renderSelectMonth('monthEnd', 'Mes final')}\r\n \r\n \r\n );\r\n };\r\n\r\n renderSelectYears = () => {\r\n\r\n return (\r\n \r\n \r\n {this.renderSelectYearIni()}\r\n \r\n \r\n {this.renderSelectYearEnd()}\r\n \r\n \r\n );\r\n };\r\n\r\n renderOptions = () => {\r\n return (\r\n \r\n \r\n {this.renderOption1()}\r\n \r\n \r\n {this.renderOption2()}\r\n \r\n \r\n );\r\n };\r\n\r\n renderCentrosGrid = () => {\r\n const perfil = this.props.userProfile.selectedCentroProfile.iPerfil;\r\n let centros = [0, 4, 5, 16, 17, 20].includes(perfil)\r\n ? this.props.centros.filter(c => c.activo === 1)\r\n : [this.props.centros.find( //dejamos la lista de un elemento\r\n c =>\r\n c.id ===\r\n this.props.userProfile.selectedCentroProfile.centroId,\r\n )];\r\n\r\n centros = centros.filter(c => c.isGroup === false);\r\n\r\n if (this.props.hasIdList && this.props.reportId !== 34) {\r\n return (\r\n this.handleCentroSelection(rows, centros)}\r\n />\r\n );\r\n }\r\n };\r\n\r\n renderPagesOptions = files => {\r\n return files.map((file, index) => {\r\n return (\r\n \r\n {index + 1}\r\n \r\n );\r\n });\r\n };\r\n\r\n renderPageSelector = () => {\r\n const files = this.state.report.reportFile.split('|');\r\n\r\n if (files.length > 1) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {'Página'}\r\n this.handlePageValueChange(event)}\r\n name={'page'}\r\n >\r\n \r\n Todas\r\n \r\n {this.renderPagesOptions(files)}\r\n \r\n \r\n );\r\n }\r\n };\r\n //#endregion\r\n\r\n //#region OnClick\r\n viewPDF = reportValues => {\r\n const suffix = this.props.hasIdList || this.props.reportId === 30? '/IdListReport' : '';\r\n\r\n if(this.props.reportId === 30){\r\n //añade los centros a los que tiene permiso\r\n if(this.props.userProfile.profile.usuarioCentro.find(uc => [0,17,20].includes(uc.iPerfil) && uc.centroId === 10))\r\n {\r\n reportValues.values.ids =[];\r\n }\r\n else{\r\n reportValues.values.ids = this.props.userProfile.profile.usuarioCentro.filter(uc => [14,15,18,19,20,0].includes(uc.iPerfil)).map(uc => uc.centroId);\r\n }\r\n\r\n }\r\n\r\n const win = window.open(\r\n process.env.PUBLIC_URL + '/loading_report.html',\r\n '_blank',\r\n );\r\n\r\n let url = '';\r\n\r\n createReport(reportValues, 'PDF', this.props.user, suffix)\r\n .then(response => {\r\n url = window.URL.createObjectURL(\r\n new Blob([response.data], { type: 'application/pdf' }),\r\n );\r\n //window.open(url, '_blank');\r\n win.location.href = url;\r\n })\r\n .catch(error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR generating PDF',\r\n },\r\n uuidv4(),\r\n false,\r\n false,\r\n );\r\n })\r\n .then(() => {\r\n this.setState({ ...this.state, pdfLoading: false });\r\n });\r\n };\r\n\r\n downloadPDF = reportValues => {\r\n const suffix = this.props.hasIdList || this.props.reportId === 30? '/IdListReport' : '';\r\n\r\n if(this.props.reportId === 30){\r\n //añade los centros a los que tiene permiso\r\n if(this.props.userProfile.profile.usuarioCentro.find(uc => [0,17,20].includes(uc.iPerfil) && uc.centroId === 10))\r\n {\r\n reportValues.values.ids =[];\r\n }\r\n else{\r\n reportValues.values.ids = this.props.userProfile.profile.usuarioCentro.filter(uc => [14,15,18,19,20,0].includes(uc.iPerfil)).map(uc => uc.centroId);\r\n }\r\n\r\n }\r\n\r\n createReport(reportValues, 'PDF', this.props.user, suffix)\r\n .then(response => {\r\n const url = window.URL.createObjectURL(\r\n new Blob([response.data]),\r\n );\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute(\r\n 'download',\r\n 'report_' +\r\n reportValues.reportDefinition.descr.replace(\r\n / /gi,\r\n '_',\r\n ) +\r\n '.pdf',\r\n );\r\n document.body.appendChild(link);\r\n link.click();\r\n })\r\n .catch(error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR generating PDF',\r\n },\r\n uuidv4(),\r\n false,\r\n false,\r\n );\r\n })\r\n .then(() => {\r\n this.setState({ ...this.state, pdfLoading: false });\r\n });\r\n };\r\n\r\n downloadExcel = reportValues => {\r\n const suffix = this.props.hasIdList || this.props.reportId === 30? '/IdListReport' : '';\r\n \r\n if(this.props.reportId === 30){\r\n //añade los centros a los que tiene permiso\r\n if(this.props.userProfile.profile.usuarioCentro.find(uc => [0,17,20].includes(uc.iPerfil) && uc.centroId === 10))\r\n {\r\n reportValues.values.ids =[];\r\n }\r\n else{\r\n reportValues.values.ids = this.props.userProfile.profile.usuarioCentro.filter(uc => [14,15,18,19,20,0].includes(uc.iPerfil)).map(uc => uc.centroId);\r\n }\r\n\r\n }\r\n\r\n createReport(reportValues, 'EXCEL', this.props.user, suffix)\r\n .then(response => {\r\n const url = window.URL.createObjectURL(\r\n new Blob([response.data]),\r\n );\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute(\r\n 'download',\r\n 'report_' +\r\n reportValues.reportDefinition.descr.replace(\r\n / /gi,\r\n '_',\r\n ) +\r\n '.xls',\r\n );\r\n document.body.appendChild(link);\r\n link.click();\r\n })\r\n .catch(error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR generating PDF',\r\n },\r\n uuidv4(),\r\n false,\r\n false,\r\n );\r\n })\r\n .then(() => {\r\n this.setState({ ...this.state, pdfLoading: false });\r\n });\r\n };\r\n //#endregion\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n //console.log(this.state, this.props);\r\n\r\n return (\r\n
\r\n {this.state.loaded ? (\r\n
\r\n
\r\n {this.props.isDialog ? (\r\n \r\n {this.state.report.descr}\r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n {this.renderSelectCentros()}\r\n {this.renderDates()}\r\n {this.renderWDates()}\r\n {this.renderSelectMonths()}\r\n {this.renderSelectYears()}\r\n {this.renderSelectWeekDay()}\r\n {this.renderSelectMaquinas()}\r\n {this.renderSelectModelos()}\r\n {this.renderCheckBox('chk1')}\r\n {this.renderCheckBox('chk2')}\r\n {this.renderCheckBox('chk3')}\r\n {this.renderCheckBox('chk4')}\r\n {this.renderCheckBox('chk5')}\r\n {this.renderOptions()}\r\n {this.renderCentrosGrid()}\r\n {this.renderPageSelector()}\r\n\r\n
\r\n \r\n {\r\n const reportValues = {\r\n reportDefinition: this.state\r\n .report,\r\n values: this.state.values,\r\n };\r\n this.setState({\r\n ...this.state,\r\n pdfLoading: true,\r\n });\r\n this.viewPDF(reportValues);\r\n }}\r\n >\r\n Abrir PDF\r\n \r\n \r\n \r\n {\r\n const reportValues = {\r\n reportDefinition: this.state\r\n .report,\r\n values: this.state.values,\r\n };\r\n this.setState({\r\n ...this.state,\r\n pdfLoading: true,\r\n });\r\n this.downloadPDF(reportValues);\r\n }}\r\n >\r\n Descargar PDF\r\n \r\n \r\n \r\n {\r\n const reportValues = {\r\n reportDefinition: this.state\r\n .report,\r\n values: this.state.values,\r\n };\r\n this.props.openDialog('ReportDataGrid', { reportValues: reportValues }, 'report-data-grid', false, 'lg');\r\n }}\r\n >\r\n Tabla rápida\r\n \r\n \r\n \r\n {\r\n const reportValues = {\r\n reportDefinition: this.state\r\n .report,\r\n values: this.state.values,\r\n };\r\n this.setState({\r\n ...this.state,\r\n pdfLoading: true,\r\n });\r\n this.downloadExcel(reportValues);\r\n }}\r\n >\r\n Descargar Excel\r\n \r\n \r\n
\r\n
\r\n {this.state.pdfLoading ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n {this.props.isDialog ? (\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nReportGeneric.propTypes = {\r\n //state:\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n centros: PropTypes.array,\r\n user: PropTypes.object.isRequired,\r\n //dispatch:\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n //params:\r\n reportId: PropTypes.number.isRequired,\r\n hasIdList: PropTypes.bool,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n centros: state.centros.centros,\r\n user: state.oidc.user,\r\n userProfile: state.userProfile,\r\n kd : state.userProfile.kd,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n openDialog,\r\n hideDialog,\r\n setCentroDia,\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(withStyles(styles, { withTheme: true })(ReportGeneric));\r\n","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//component ui:\r\nimport DatePicker from '../components/utils/DatePicker';\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport { Button, Grid } from '@material-ui/core';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Fade from '@material-ui/core/Fade';\r\nimport Input from '@material-ui/core/Input';\r\n\r\n//actions:\r\nimport { getData, createReport } from '../dataLib';\r\nimport { openDialog, hideDialog } from '../actions/index';\r\nimport { setCentroDia } from '../actions/centro_dia_actions';\r\n\r\nconst styles = theme => ({\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n centroSelect: {\r\n maxWidth: 240,\r\n },\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n marginLeft: 10,\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n width: 150,\r\n },\r\n buttonCerrar: {\r\n padding: '10px',\r\n margin: '20px 8px 10px',\r\n width: 100,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n spinnerContainer: {\r\n width: 250,\r\n height: 220,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n linearSpinner: {\r\n height: 10,\r\n width: 480,\r\n marginTop: 10,\r\n marginLeft: 10,\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: 'white',\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass ReportRankingMaquinas extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n report: {},\r\n values: {\r\n monthIni: 1,\r\n monthEnd: 1,\r\n yearIni: 2019,\r\n yearEnd: 2019,\r\n centroId:\r\n this.props.centroDiaSelected.dia !== ''\r\n ? this.props.centroDiaSelected.centro.id\r\n : 1,\r\n iniDate:\r\n this.props.centroDiaSelected.dia !== ''\r\n ? this.props.centroDiaSelected.dia\r\n : null,\r\n endDate:\r\n this.props.centroDiaSelected.dia !== ''\r\n ? this.props.centroDiaSelected.dia\r\n : null,\r\n wIniDate:\r\n this.props.centroDiaSelected.dia !== ''\r\n ? this.props.centroDiaSelected.dia\r\n : null,\r\n wEndDate:\r\n this.props.centroDiaSelected.dia !== ''\r\n ? this.props.centroDiaSelected.dia\r\n : null,\r\n maquinaId: -100,\r\n modeloId: -100,\r\n chk1: false,\r\n chk2: false,\r\n chk3: false,\r\n chk4: false,\r\n chk5: false,\r\n opt1: '1',\r\n opt2: '1',\r\n dw: 1,\r\n ids: [],\r\n page: -1,\r\n },\r\n modelos: [],\r\n maquinas: [],\r\n loaded: false,\r\n pdfLoading: false,\r\n centroDiaCierre: 1,\r\n };\r\n\r\n this.reportId = 27;\r\n }\r\n\r\n componentDidMount() {\r\n this.getReportDefinition();\r\n this.getModelos();\r\n this.getMaquinas(this.state.values.centroId);\r\n }\r\n\r\n // componentDidUpdate(prevProps) {\r\n // if (prevProps.centros !== this.props.centros && this.props.centros.length > 0) {\r\n // this.getMaquinas(this.props.centros[0].id);\r\n // }\r\n // };\r\n\r\n getReportDefinition = () => {\r\n getData(\r\n 'NaReport/' + this.reportId,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n report: response.data,\r\n loaded: true,\r\n });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching report definition',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n compareDescr = (a, b) => {\r\n if (a.descr.toLowerCase() < b.descr.toLowerCase()) return -1;\r\n if (a.descr.toLowerCase() > b.descr.toLowerCase()) return 1;\r\n return 0;\r\n };\r\n\r\n getModelos = () => {\r\n getData(\r\n 'VModeloMaquinas',\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n modelos: [...response.data].sort(this.compareDescr),\r\n });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching modelos',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n getMaquinas = centroId => {\r\n //maquines del centro\r\n\r\n getData(\r\n 'VMaquinas/VMaquinasAlta?centro_id=' + centroId,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n maquinas: [...response.data].sort(this.compareDescr),\r\n });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching maquinas',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n const newValues = { ...this.state.values, [field]: event.target.value };\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n\r\n handleSelectCentrosValueChange = event => {\r\n var centroSelected = this.props.centros.find(\r\n c => c.id === Number(event.target.value),\r\n );\r\n if (centroSelected !== undefined) {\r\n const newValues = {\r\n ...this.state.values,\r\n centroId: event.target.value,\r\n };\r\n this.setState({\r\n ...this.state,\r\n values: newValues,\r\n centroDiaCierre: centroSelected.iDiaCierre,\r\n });\r\n this.getMaquinas(event.target.value);\r\n this.props.setCentroDia(\r\n centroSelected.id,\r\n this.props.centroDiaSelected.dia,\r\n false,\r\n );\r\n }\r\n };\r\n\r\n handleCheckboxChange = (event, field) => {\r\n const newValues = {\r\n ...this.state.values,\r\n [field]: event.target.checked,\r\n };\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n\r\n renderIniDateTime = () => {\r\n if (this.state.report.dateIni) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n const newValues = {\r\n ...this.state.values,\r\n iniDate: d.toISOString().slice(0, 10),\r\n };\r\n this.setState({ ...this.state, values: newValues });\r\n }\r\n }}\r\n />\r\n \r\n );\r\n }\r\n };\r\n\r\n renderEndDateTime = () => {\r\n if (this.state.report.dateEnd) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n const newValues = {\r\n ...this.state.values,\r\n endDate: d.toISOString().slice(0, 10),\r\n };\r\n this.setState({ ...this.state, values: newValues });\r\n }\r\n }}\r\n />\r\n \r\n );\r\n }\r\n };\r\n\r\n renderCheckBox = field => {\r\n if (this.state.report[field]) {\r\n return (\r\n \r\n this.handleCheckboxChange(event, field)\r\n }\r\n color=\"primary\"\r\n />\r\n }\r\n label={this.state.report[field]}\r\n />\r\n );\r\n }\r\n };\r\n\r\n renderSelectCentros = () => {\r\n const perfil = this.props.userProfile.selectedCentroProfile.iPerfil;\r\n\r\n const centros = ([0, 4, 5, 16, 17, 20].includes(perfil) && this.props.userProfile.selectedCentroProfile.centroId === 10)\r\n ? this.props.centros.filter(\r\n c => c.esCasino === this.state.values.chk1 && c.activo === 1,\r\n )\r\n : this.props.centros.filter(\r\n c =>\r\n c.id ===\r\n this.props.userProfile.selectedCentroProfile.centroId,\r\n );\r\n\r\n if (this.state.report.centroId) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n Centro\r\n \r\n this.handleSelectCentrosValueChange(event)\r\n }\r\n input={}\r\n name=\"centroId\"\r\n >\r\n {centros.map(centro => {\r\n return (\r\n \r\n {centro.centro}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n renderSelectMaquinas = () => {\r\n //maquines del centro\r\n if (this.state.report.maquina) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n renderSelectModelos = () => {\r\n if (this.state.report.modelo) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n renderOptionList1 = () => {\r\n return this.state.report.opt1.split(';').map((o, index) => {\r\n return (\r\n }\r\n label={o}\r\n />\r\n );\r\n });\r\n };\r\n\r\n renderOptionList2 = () => {\r\n return this.state.report.opt2.split(';').map((o, index) => {\r\n return (\r\n }\r\n label={o}\r\n />\r\n );\r\n });\r\n };\r\n\r\n renderOption1 = () => {\r\n if (\r\n this.state.report.opt1 !== undefined &&\r\n this.state.report.opt1 !== null\r\n ) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n this.handleValueChange(event, 'opt1')\r\n }\r\n >\r\n {this.renderOptionList1()}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n renderOption2 = () => {\r\n if (\r\n this.state.report.opt2 !== undefined &&\r\n this.state.report.opt2 !== null\r\n ) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n this.handleValueChange(event, 'opt2')\r\n }\r\n >\r\n {this.renderOptionList2()}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n viewPDF = reportValues => {\r\n const suffix = this.props.hasIdList ? '/IdListReport' : '';\r\n\r\n const win = window.open(\r\n process.env.PUBLIC_URL + '/loading_report.html',\r\n '_blank',\r\n );\r\n\r\n let url = '';\r\n\r\n createReport(reportValues, 'PDF', this.props.user, suffix)\r\n .then(response => {\r\n url = window.URL.createObjectURL(\r\n new Blob([response.data], { type: 'application/pdf' }),\r\n );\r\n //window.open(url, '_blank');\r\n win.location.href = url;\r\n })\r\n .catch(error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR generating PDF',\r\n },\r\n uuidv4(),\r\n false,\r\n false,\r\n );\r\n })\r\n .then(() => {\r\n this.setState({ ...this.state, pdfLoading: false });\r\n });\r\n };\r\n\r\n downloadPDF = reportValues => {\r\n const suffix = this.props.hasIdList ? '/IdListReport' : '';\r\n\r\n createReport(reportValues, 'PDF', this.props.user, suffix)\r\n .then(response => {\r\n const url = window.URL.createObjectURL(\r\n new Blob([response.data]),\r\n );\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute(\r\n 'download',\r\n 'report_' +\r\n reportValues.reportDefinition.descr.replace(\r\n / /gi,\r\n '_',\r\n ) +\r\n '.pdf',\r\n );\r\n document.body.appendChild(link);\r\n link.click();\r\n })\r\n .catch(error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR generating PDF',\r\n },\r\n uuidv4(),\r\n false,\r\n false,\r\n );\r\n })\r\n .then(() => {\r\n this.setState({ ...this.state, pdfLoading: false });\r\n });\r\n };\r\n\r\n downloadExcel = reportValues => {\r\n const suffix = this.props.hasIdList ? '/IdListReport' : '';\r\n\r\n createReport(reportValues, 'EXCEL', this.props.user, suffix)\r\n .then(response => {\r\n const url = window.URL.createObjectURL(\r\n new Blob([response.data]),\r\n );\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute(\r\n 'download',\r\n 'report_' +\r\n reportValues.reportDefinition.descr.replace(\r\n / /gi,\r\n '_',\r\n ) +\r\n '.xls',\r\n );\r\n document.body.appendChild(link);\r\n link.click();\r\n })\r\n .catch(error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR generating PDF',\r\n },\r\n uuidv4(),\r\n false,\r\n false,\r\n );\r\n })\r\n .then(() => {\r\n this.setState({ ...this.state, pdfLoading: false });\r\n });\r\n };\r\n\r\n renderDates = () => {\r\n return (\r\n \r\n \r\n {this.renderIniDateTime()}\r\n \r\n \r\n {this.renderEndDateTime()}\r\n \r\n \r\n );\r\n };\r\n\r\n renderOptions = () => {\r\n return (\r\n \r\n \r\n {this.renderOption1()}\r\n \r\n \r\n {this.renderOption2()}\r\n \r\n \r\n );\r\n };\r\n\r\n handleCentroSelection = rows => {\r\n const newValues = {\r\n ...this.state.values,\r\n ids: rows.map(\r\n i => this.props.centros.filter(c => c.isGroup === false)[i].id,\r\n ),\r\n };\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n\r\n handlePageValueChange = event => {\r\n const newValues = { ...this.state.values, page: event.target.value };\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n\r\n renderPagesOptions = files => {\r\n return files.map((file, index) => {\r\n return (\r\n \r\n {index + 1}\r\n \r\n );\r\n });\r\n };\r\n\r\n renderPageSelector = () => {\r\n const files = this.state.report.reportFile.split('|');\r\n\r\n if (files.length > 1) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {'Página'}\r\n this.handlePageValueChange(event)}\r\n name={'page'}\r\n >\r\n \r\n Todas\r\n \r\n {this.renderPagesOptions(files)}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n handleCheckboxCasinoChange = event => {\r\n const id = this.props.centros.filter(\r\n c => c.esCasino === event.target.checked,\r\n )[0].id;\r\n\r\n this.getMaquinas(id);\r\n\r\n const newValues = {\r\n ...this.state.values,\r\n chk1: event.target.checked,\r\n centroId: id,\r\n };\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n\r\n renderEsCasinoCheckBox = () => {\r\n //this.props.userProfile.selectedCentroProfile.centroId\r\n\r\n const perfil = this.props.userProfile.selectedCentroProfile.iPerfil;\r\n\r\n return (\r\n\r\n ([0, 4, 5, 16, 17, 20].includes(perfil) && this.props.userProfile.selectedCentroProfile.centroId === 10) ?\r\n\r\n \r\n this.handleCheckboxCasinoChange(event)\r\n }\r\n color=\"primary\"\r\n />\r\n }\r\n label={'Es casino?'}\r\n />\r\n : ''\r\n\r\n );\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n {this.state.loaded ? (\r\n
\r\n
\r\n {this.props.isDialog ? (\r\n \r\n {this.state.report.descr}\r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n \r\n \r\n {this.renderSelectCentros()}\r\n \r\n \r\n {this.renderEsCasinoCheckBox()}\r\n \r\n \r\n\r\n {this.renderDates()}\r\n {this.renderOptions()}\r\n {this.renderSelectMaquinas()}\r\n {this.renderSelectModelos()}\r\n {this.renderPageSelector()}\r\n\r\n
\r\n \r\n {\r\n const reportValues = {\r\n reportDefinition: this.state\r\n .report,\r\n values: this.state.values,\r\n };\r\n this.setState({\r\n ...this.state,\r\n pdfLoading: true,\r\n });\r\n this.viewPDF(reportValues);\r\n }}\r\n >\r\n Abrir PDF\r\n \r\n \r\n \r\n {\r\n const reportValues = {\r\n reportDefinition: this.state.report,\r\n values: this.state.values,\r\n };\r\n this.setState({\r\n ...this.state,\r\n pdfLoading: true,\r\n });\r\n this.downloadPDF(reportValues);\r\n }}\r\n >\r\n Descargar PDF\r\n \r\n \r\n \r\n {\r\n const reportValues = {\r\n reportDefinition: this.state.report,\r\n values: this.state.values,\r\n };\r\n this.props.openDialog('ReportDataGrid', { reportValues: reportValues }, 'report-data-grid', false, 'lg');\r\n }}\r\n >\r\n Tabla rápida\r\n \r\n \r\n \r\n {\r\n const reportValues = {\r\n reportDefinition: this.state\r\n .report,\r\n values: this.state.values,\r\n };\r\n this.setState({\r\n ...this.state,\r\n pdfLoading: true,\r\n });\r\n this.downloadExcel(reportValues);\r\n }}\r\n >\r\n Descargar Excel\r\n \r\n \r\n
\r\n
\r\n {this.state.pdfLoading ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n {this.props.isDialog ? (\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nReportRankingMaquinas.propTypes = {\r\n //state:\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n centros: PropTypes.array,\r\n user: PropTypes.object.isRequired,\r\n //dispatch:\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n //params:\r\n hasIdList: PropTypes.bool,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n centros: state.centros.centros,\r\n user: state.oidc.user,\r\n userProfile: state.userProfile,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n openDialog,\r\n hideDialog,\r\n setCentroDia,\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(withStyles(styles, { withTheme: true })(ReportRankingMaquinas));\r\n","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport DatePicker from '../components/utils/DatePicker';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Typography from '@material-ui/core/Typography';\r\n//import MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n//import Checkbox from '@material-ui/core/Checkbox';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport { Button, Grid } from '@material-ui/core';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Fade from '@material-ui/core/Fade';\r\nimport Input from '@material-ui/core/Input';\r\n\r\n//actions:\r\nimport { getData, createReport } from '../dataLib';\r\nimport { openDialog, hideDialog } from '../actions/index';\r\nimport { setCentroDia } from '../actions/centro_dia_actions';\r\n//import { get } from 'ol/proj';\r\n\r\n\r\nconst styles = theme => ({\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n optionForms: {\r\n margin: '15px 8px',\r\n minWidth: 120,\r\n },\r\n centroSelect: {\r\n maxWidth: 240\r\n },\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n marginLeft: 10,\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n width: 150,\r\n },\r\n buttonCerrar: {\r\n padding: '10px',\r\n margin: '20px 8px 10px',\r\n width: 100,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n spinnerContainer: {\r\n width: 250,\r\n height: 220,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n linearSpinner: {\r\n height: 10,\r\n width: 480,\r\n marginTop: 10,\r\n marginLeft: 10,\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass ReportRegalosEntregados extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n report: {},\r\n values: {\r\n monthIni: 1,\r\n monthEnd: 1,\r\n yearIni: 2019,\r\n yearEnd: 2019,\r\n centroId: this.props.centroDiaSelected.dia !== '' ? this.props.centroDiaSelected.centro.id : 1,\r\n iniDate: this.props.centroDiaSelected.dia !== '' ? this.props.centroDiaSelected.dia : '2018-04-03',\r\n endDate: this.props.centroDiaSelected.dia !== '' ? this.props.centroDiaSelected.dia : '2018-04-03',\r\n wIniDate: this.props.centroDiaSelected.dia !== '' ? this.props.centroDiaSelected.dia : '2018-04-03',\r\n wEndDate: this.props.centroDiaSelected.dia !== '' ? this.props.centroDiaSelected.dia : '2018-04-03',\r\n maquinaId: -100,\r\n modeloId: -100,\r\n chk1: false,\r\n chk2: false,\r\n chk3: false,\r\n chk4: false,\r\n chk5: false,\r\n opt1: '1',\r\n opt2: '1',\r\n dw: 1,\r\n ids: [],\r\n page: -1\r\n },\r\n modelos: [],\r\n maquinas: [],\r\n loaded: false,\r\n pdfLoading: false,\r\n centroDiaCierre: 1,\r\n };\r\n\r\n this.reportId = 52;\r\n };\r\n\r\n componentDidMount() {\r\n this.getReportDefinition();\r\n this.getMaquinas(this.state.values.centroId, this.state.values.opt1); // un poco inutil porque inicialmente es la opción fecha que no busca datos\r\n };\r\n\r\n getReportDefinition = () => {\r\n\r\n getData(\r\n 'NaReport/' + this.reportId,\r\n (response) => {\r\n this.setState({ ...this.state, report: response.data, loaded: true })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching report definition'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n compareDescr = (a, b) => {\r\n\r\n if (a.descr.toLowerCase() < b.descr.toLowerCase())\r\n return -1;\r\n if (a.descr.toLowerCase() > b.descr.toLowerCase())\r\n return 1;\r\n return 0;\r\n\r\n }\r\n\r\n getMaquinas = (centroId, option) => { //maquines del centro fbp ojo solo las que dan regalos (expendedoras)\r\n\r\n // en función de la opción se cargan clientes, máquinas o artículos\r\n let llamada = '';\r\n let mensaje = '';\r\n switch (option) {\r\n case '1': // fecha\r\n return;\r\n case '2': // Clientes\r\n llamada = 'DCMovRedemMaqs/ClientesRegalos/' + centroId;\r\n mensaje = 'clientes';\r\n break;\r\n case '3': // Máquina\r\n llamada = 'VMaquinas/VMaquinasRegalo?centro_id=' + centroId;\r\n mensaje = 'ubicaciones';\r\n break;\r\n case '4': // Artículos de compra\r\n llamada = 'ArticuloCompraCentros/list/' + centroId;\r\n mensaje = 'artículos';\r\n break;\r\n default: break;\r\n }\r\n getData(\r\n llamada,\r\n (response) => {\r\n this.setState({ ...this.state, loaded: true, maquinas: [...response.data].sort(this.compareDescr) })\r\n },\r\n () => {\r\n this.setState({ ...this.state, loaded: true });\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching ' + mensaje,\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n\r\n const newValues = { ...this.state.values, [field]: event.target.value }\r\n if (field === 'opt1') {\r\n this.setState({ ...this.state, values: newValues, loaded: event.target.value !== '1' ? false : true });\r\n this.getMaquinas(this.state.values.centroId, event.target.value);\r\n }\r\n else {\r\n this.setState({ ...this.state, values: newValues });\r\n }\r\n };\r\n\r\n handleSelectCentrosValueChange = (event) => {\r\n var centroSelected = this.props.centros.find(c => c.id === Number(event.target.value));\r\n if (centroSelected !== undefined) {\r\n const newValues = { ...this.state.values, centroId: event.target.value };\r\n this.setState({ ...this.state, values: newValues, centroDiaCierre: centroSelected.iDiaCierre });\r\n this.getMaquinas(event.target.value, this.state.values.opt1);\r\n this.props.setCentroDia(centroSelected.id, this.props.centroDiaSelected.dia, false);\r\n }\r\n };\r\n\r\n handleCheckboxChange = (event, field) => {\r\n const newValues = { ...this.state.values, [field]: event.target.checked }\r\n this.setState({ ...this.state, values: newValues });\r\n };\r\n\r\n\r\n renderIniDateTime = () => {\r\n if (this.state.report.dateIni) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n const newValues = {\r\n ...this.state.values,\r\n iniDate: d.toISOString().slice(0, 10),\r\n };\r\n this.setState({ ...this.state, values: newValues });\r\n }\r\n }}\r\n />\r\n \r\n );\r\n };\r\n };\r\n\r\n renderEndDateTime = () => {\r\n if (this.state.report.dateEnd) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n const newValues = {\r\n ...this.state.values,\r\n endDate: d.toISOString().slice(0, 10),\r\n };\r\n this.setState({ ...this.state, values: newValues });\r\n }\r\n }}\r\n />\r\n \r\n );\r\n };\r\n };\r\n\r\n renderSelectCentros = () => {\r\n\r\n const perfil = this.props.userProfile.selectedCentroProfile.iPerfil;\r\n\r\n const centros = [0, 4, 5, 16, 17, 20].includes(perfil) ?\r\n this.props.centros.filter(c => c.esCasino === this.state.values.chk1 && c.activo === 1)\r\n : this.props.centros.filter(c => c.id === this.props.userProfile.selectedCentroProfile.centroId);\r\n\r\n if (this.state.report.centroId) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n Centro\r\n }\r\n name=\"centroId\"\r\n >\r\n {centros.map(centro => {\r\n return ()\r\n })}\r\n \r\n \r\n );\r\n };\r\n };\r\n\r\n renderSelectMaquinas = () => { //maquines del centro\r\n if (this.state.report.maquina) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n };\r\n\r\n renderOptionList1 = () => {\r\n return this.state.report.opt1.split(';').map((o, index) => {\r\n return (\r\n } label={o} />\r\n );\r\n });\r\n\r\n };\r\n\r\n renderOption1 = () => {\r\n if (this.state.report.opt1 !== undefined && this.state.report.opt1 !== null) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n this.handleValueChange(event, 'opt1')}\r\n >\r\n {this.renderOptionList1()}\r\n \r\n \r\n );\r\n };\r\n };\r\n\r\n\r\n viewPDF = (reportValues) => {\r\n\r\n const suffix = this.props.hasIdList ? '/IdListReport' : ''\r\n\r\n const win = window.open(process.env.PUBLIC_URL + '/loading_report.html', '_blank');\r\n\r\n let url = '';\r\n\r\n createReport(reportValues, \"PDF\", this.props.user, suffix)\r\n .then(response => {\r\n url = window.URL.createObjectURL(new Blob([response.data], { type: \"application/pdf\" }));\r\n //window.open(url, '_blank');\r\n win.location.href = url\r\n }).catch(error => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR generating PDF'\r\n }, uuidv4(), false, false);\r\n }).then(() => {\r\n this.setState({ ...this.state, pdfLoading: false });\r\n });\r\n\r\n }\r\n\r\n downloadPDF = (reportValues) => {\r\n\r\n const suffix = this.props.hasIdList ? '/IdListReport' : ''\r\n\r\n createReport(reportValues, \"PDF\", this.props.user, suffix)\r\n .then(response => {\r\n const url = window.URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', 'report_' + reportValues.reportDefinition.descr.replace(/ /gi, \"_\") + \".pdf\");\r\n document.body.appendChild(link);\r\n link.click();\r\n }).catch(error => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR generating PDF'\r\n }, uuidv4(), false, false);\r\n }).then(() => {\r\n this.setState({ ...this.state, pdfLoading: false });\r\n });\r\n\r\n };\r\n\r\n downloadExcel = (reportValues) => {\r\n\r\n const suffix = this.props.hasIdList ? '/IdListReport' : ''\r\n\r\n createReport(reportValues, \"EXCEL\", this.props.user, suffix)\r\n .then(response => {\r\n const url = window.URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', 'report_' + reportValues.reportDefinition.descr.replace(/ /gi, \"_\") + \".xls\");\r\n document.body.appendChild(link);\r\n link.click();\r\n }).catch(error => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR generating PDF'\r\n }, uuidv4(), false, false);\r\n }).then(() => {\r\n this.setState({ ...this.state, pdfLoading: false });\r\n });\r\n };\r\n\r\n renderDates = () => {\r\n return (\r\n \r\n \r\n {this.renderIniDateTime()}\r\n \r\n \r\n {this.renderEndDateTime()}\r\n \r\n \r\n );\r\n };\r\n\r\n handleCentroSelection = (rows) => {\r\n\r\n const newValues = { ...this.state.values, ids: rows.map(i => this.props.centros.filter(c => c.isGroup === false)[i].id) };\r\n this.setState({ ...this.state, values: newValues, });\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n {this.state.loaded ?\r\n
\r\n
\r\n {\r\n this.props.isDialog ?\r\n {this.state.report.descr}\r\n : ''\r\n }\r\n\r\n {this.renderSelectCentros()}\r\n {this.renderDates()}\r\n {this.renderOption1()}\r\n {this.renderSelectMaquinas()}\r\n\r\n
\r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n
\r\n\r\n
\r\n {this.state.pdfLoading ?\r\n \r\n : ''}\r\n\r\n {this.props.isDialog ?\r\n \r\n : ''\r\n }\r\n
\r\n :\r\n
\r\n \r\n
\r\n }\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nReportRegalosEntregados.propTypes = {\r\n //state:\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n centros: PropTypes.array,\r\n user: PropTypes.object.isRequired,\r\n //dispatch:\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n //params:\r\n hasIdList: PropTypes.bool\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n centros: state.centros.centros,\r\n user: state.oidc.user,\r\n userProfile: state.userProfile\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n setCentroDia,\r\n }, dispatch);\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles, { withTheme: true })(ReportRegalosEntregados));","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Button, Typography } from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n observTextField: {\r\n display: 'flex',\r\n height: '100%',\r\n margin: theme.spacing(1),\r\n },\r\n inputObserv: {\r\n display: 'flex',\r\n alignItems: 'start',\r\n margin: '15px 0',\r\n padding: '5px 8px',\r\n\r\n },\r\n button: {\r\n margin: '15px 15px 15px 0',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n title:{\r\n marginTop: theme.spacing(1),\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n marginBottom: theme.spacing(3), \r\n }\r\n});\r\n\r\nclass TextBoxDialog extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n value: this.props.obs\r\n };\r\n }\r\n\r\n\r\n handleValueChange = (event) => {\r\n this.setState({ ...this.state, value: event.target.value })\r\n }\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n {this.props.title}\r\n\r\n {this.props.label}\r\n this.handleValueChange(event)}\r\n />\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n )\r\n\r\n }\r\n\r\n\r\n}\r\n\r\nTextBoxDialog.propTypes = {\r\n\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired,\r\n\r\n //parameters\r\n okHandler: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n obs: PropTypes.string.isRequired\r\n\r\n};\r\n\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(TextBoxDialog);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditCvFamilia extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.cvFamilia.id ? this.props.cvFamilia.id : uuidv4(),\r\n description: this.props.cvFamilia.descr ? this.props.cvFamilia.descr : '',\r\n code: this.props.cvFamilia.cod ? this.props.cvFamilia.cod : ''\r\n\r\n };\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'code')}\r\n />\r\n this.handleValueChange(event, 'description')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nEditCvFamilia.propTypes = {\r\n cvFamilia: PropTypes.object.isRequired,\r\n checkFamilia: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCvFamilia);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\n//import IntNumberFormatInput from '../../int_number_input_formatter';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\n//import { Tooltip, Fade } from '@material-ui/core';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 50,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n margin: {\r\n marginTop: 10,\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n width_obsv: {\r\n width: 500,\r\n },\r\n width_descr: {\r\n width: 400,\r\n },\r\n width_cod_sm: {\r\n width: 50,\r\n },\r\n width_cod_md: {\r\n width: 100,\r\n },\r\n width_cod_lg: {\r\n width: 400,\r\n },\r\n\r\n});\r\n\r\nclass EditCvSubFamilia extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.subFamilia.id ? this.props.subFamilia.id : uuidv4(),\r\n descr: this.props.subFamilia.descr ? this.props.subFamilia.descr : '',\r\n cod: this.props.subFamilia.cod ? this.props.subFamilia.cod : '',\r\n iFamilia: this.props.subFamilia.iFamilia ? this.props.subFamilia.iFamilia : this.props.familiaList[0].id,\r\n familiaDescr: this.props.subFamilia.familiaDescr ? this.props.subFamilia.familiaDescr : this.props.familiaList[0].descr, //\r\n }\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n\r\n };\r\n\r\n compareDescr = (a, b) => {\r\n if (a.descr < b.descr)\r\n return -1;\r\n if (a.descr > b.descr)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n fillSelectOptionList = () => {\r\n\r\n return this.props.familiaList.sort(this.compareDescr).map(gp => {\r\n return (\r\n \r\n );\r\n });\r\n\r\n };\r\n\r\n handleChangeSelect = event => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iFamilia: value,\r\n familiaDescr: this.props.familiaList.find(gp => gp.id === value).descr\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'cod')}\r\n />\r\n \r\n
\r\n
\r\n \r\n this.handleValueChange(event, 'descr')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Familia\r\n \r\n this.handleChangeSelect(event)}\r\n >\r\n {this.fillSelectOptionList()}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n};\r\n\r\nEditCvSubFamilia.propTypes = {\r\n subFamilia: PropTypes.object.isRequired,\r\n checkSubFamilia: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCvSubFamilia);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditTipoFicha extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.tipoFicha.id ? this.props.tipoFicha.id : uuidv4(),\r\n descr: this.props.tipoFicha.descr ? this.props.tipoFicha.descr : '',\r\n\r\n };\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'descr')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nEditTipoFicha.propTypes = {\r\n tipoFicha: PropTypes.object.isRequired,\r\n checkTipoFicha: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditTipoFicha);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport IntNumberFormatInput from '../../int_number_input_formatter';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n margin: {\r\n marginTop: 10,\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n\r\n});\r\n\r\nclass EditTipoFichaSub extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.tipoFichaSub.id ? this.props.tipoFichaSub.id : uuidv4(),\r\n descr: this.props.tipoFichaSub.descr ? this.props.tipoFichaSub.descr : '',\r\n factor: this.props.tipoFichaSub.factor ? this.props.tipoFichaSub.factor : 1,\r\n iTipoficha: this.props.tipoFichaSub.iTipoficha ? this.props.tipoFichaSub.iTipoficha : this.props.tipoFichaList[0].id,\r\n tipoFichaDescr: this.props.tipoFichaSub.tipoFichaDescr ? this.props.tipoFichaSub.tipoFichaDescr : this.props.tipoFichaList[0].descr,\r\n }\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n\r\n };\r\n\r\n compareDescr = (a, b) => {\r\n if (a.descr < b.descr)\r\n return -1;\r\n if (a.descr > b.descr)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n fillSelectOptionList = () => {\r\n\r\n return this.props.tipoFichaList.sort(this.compareDescr).map(tf => {\r\n return (\r\n \r\n );\r\n });\r\n\r\n };\r\n\r\n handleChangeSelect = event => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoficha: value,\r\n tipoFichaDescr: this.props.tipoFichaList.find(tf => tf.id === value).descr\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'descr')}\r\n />\r\n \r\n\r\n \r\n \r\n this.handleValueChange(event, 'factor')}\r\n />\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Tipo Ficha\r\n \r\n this.handleChangeSelect(event)}\r\n >\r\n {this.fillSelectOptionList()}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n};\r\n\r\nEditTipoFichaSub.propTypes = {\r\n tipoFichaSub: PropTypes.object.isRequired,\r\n checkTipoFichaSub: PropTypes.func.isRequired,\r\n tipoFichaList: PropTypes.array.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditTipoFichaSub);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 350,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditTipoMovRedem extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.tipoMovRedem.id ? this.props.tipoMovRedem.id : uuidv4(),\r\n descr: this.props.tipoMovRedem.descr ? this.props.tipoMovRedem.descr : '',\r\n descrWeb: this.props.tipoMovRedem.descrWeb ? this.props.tipoMovRedem.descrWeb : '',\r\n b_signo: this.props.tipoMovRedem.signo ? (this.props.tipoMovRedem.signo > 0) : false,\r\n activo: this.props.tipoMovRedem.activo ? this.props.tipoMovRedem.activo : true,\r\n };\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n handleBooleanChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.checked });\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'descr')}\r\n />\r\n \r\n
\r\n
\r\n \r\n this.handleValueChange(event, 'descrWeb')}\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n this.handleBooleanChange(event, 'b_signo')}\r\n value='b_signo'\r\n />\r\n }\r\n label=\"Movimiento de Carga\"\r\n />\r\n \r\n \r\n \r\n this.handleBooleanChange(event, 'activo')}\r\n value='activo'\r\n />\r\n }\r\n label=\"Activo\"\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nEditTipoMovRedem.propTypes = {\r\n tipoMovRedem: PropTypes.object.isRequired,\r\n checkTipoMovRedem: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditTipoMovRedem);","import { GET_PROMOCION, ADD_PROMOCION, MODIFY_PROMOCION, DELETE_PROMOCION, UPDATE_PROMOCION } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n promocionList: [],\r\n isLoading: false\r\n};\r\n\r\nexport function getDescr(value)\r\n{\r\n const tipos = ['','General', 'Bienvenida', 'Teórica'];\r\n return tipos[value ? value : 0]\r\n}\r\n\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_PROMOCION:\r\n \r\n return {\r\n ...state, centroId: action.meta,\r\n isLoading: true\r\n };\r\n\r\n case GET_PROMOCION + \"_SUCCESS\":\r\n const newPromo = action.payload.data.map(p => {\r\n return {...p, tipoPromocionDescr: getDescr(p.iTipoPromocion)}\r\n })\r\n\r\n return {\r\n promocionList: newPromo, //action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_PROMOCION:\r\n \r\n const newArr = [...state.promocionList, action.payload]\r\n return {\r\n promocionList: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_PROMOCION:\r\n \r\n return {\r\n promocionList: state.promocionList.map((p) => {\r\n if (p.id !== action.payload.id) \r\n return p;\r\n else\r\n return {...action.payload, tipoPromocionDescr: getDescr(action.payload.iTipoPromocion)};\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_PROMOCION:\r\n\r\n return {\r\n promocionList: state.promocionList.filter(p => p.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_PROMOCION + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport FloatNumberFormatInput from '../../../components/float_number_input_formatter';\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\nimport DatePicker from '../../../components/utils/DatePicker';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\nimport { getDescr } from '../../../reducers/reducer_promocion';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 50,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n formComent: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '10px 0 5px 25px',\r\n width: 520,\r\n minWidth: 120,\r\n },\r\n width_descr: {\r\n width: 400,\r\n },\r\n width_int_md: {\r\n width: 150,\r\n },\r\n width_float_sm: {\r\n width: 100,\r\n },\r\n width_date: {\r\n width: 200,\r\n },\r\n});\r\n\r\nclass EditPromocion extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.promocion.id ? this.props.promocion.id : uuidv4(),\r\n centroId: this.props.centroId ? this.props.centroId : undefined,\r\n usuarioId: this.props.usuarioId ? this.props.usuarioId : undefined,\r\n descr: this.props.promocion.descr ? this.props.promocion.descr : '',\r\n activa: this.props.promocion.activa\r\n ? this.props.promocion.activa\r\n : true,\r\n puntosPorEuro: this.props.promocion.puntosPorEuro\r\n ? this.props.promocion.puntosPorEuro\r\n : undefined,\r\n puntosFijos: this.props.promocion.puntosFijos\r\n ? this.props.promocion.puntosFijos\r\n : undefined,\r\n fAlta: this.props.promocion.fAlta\r\n ? this.props.promocion.fAlta.slice(0, 10)\r\n : new Date().toISOString().slice(0, 10),\r\n obsv: this.props.promocion.obsv ? this.props.promocion.obsv : '',\r\n iTipoPromocion: this.props.promocion.iTipoPromocion\r\n ? this.props.promocion.iTipoPromocion\r\n : 1,\r\n tipoPromocionDescr: getDescr(\r\n this.props.promocion.iTipoPromocion\r\n ? this.props.promocion.iTipoPromocion\r\n : 1,\r\n ),\r\n };\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n handleBooleanChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.checked });\r\n };\r\n\r\n handleChangeSelect = event => {\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoPromocion: value,\r\n tipoPromocionDescr: getDescr(value),\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'descr')\r\n }\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.handleValueChange(\r\n event,\r\n 'puntosPorEuro',\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n this.handleValueChange(event, 'puntosFijos')\r\n }\r\n />\r\n \r\n \r\n \r\n {/* this.handleValueChange(event, 'fAlta')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fAlta')\r\n }\r\n }}\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n Tipo Promocion\r\n \r\n this.handleChangeSelect(event)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.handleBooleanChange(\r\n event,\r\n 'activa',\r\n )\r\n }\r\n value=\"activa\"\r\n />\r\n }\r\n label=\"Activa\"\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'obsv')\r\n }\r\n />\r\n \r\n
\r\n\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n {\r\n const promocion = {\r\n id: this.state.id,\r\n centroId: this.state.centroId,\r\n usuarioId: this.state.usuarioId,\r\n descr: this.state.descr,\r\n activa: this.state.activa,\r\n puntosPorEuro: this.state.puntosPorEuro,\r\n puntosFijos: this.state.puntosFijos,\r\n fAlta: this.state.fAlta,\r\n obsv: this.state.obsv,\r\n iTipoPromocion: this.state.iTipoPromocion,\r\n tipoPromocionDescr: this.state\r\n .tipoPromocionDescr,\r\n };\r\n if (this.props.checkPromocion(promocion)) {\r\n this.props.okHandler(promocion);\r\n this.props.hideDialog();\r\n }\r\n }}\r\n >\r\n Guardar\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nEditPromocion.propTypes = {\r\n promocion: PropTypes.object.isRequired,\r\n checkPromocion: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditPromocion);\r\n","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport update from 'immutability-helper';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\n\r\n//import InputLabel from '@material-ui/core/InputLabel';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../neurite_grid';\r\nimport DatePicker from '../../utils/DatePicker';\r\n\r\n//helpers:\r\nimport { getData, putData, postData, createReport } from '../../../dataLib';\r\n\r\nimport FloatNumberFormatInput from '../../../components/float_number_input_formatter';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n // height: '100%',\r\n // width: 240\r\n flexGrow: 1,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: 700,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n //margin: '5px 25px',\r\n minWidth: 120,\r\n //height: 72,\r\n },\r\n buttonsContainer: {\r\n width: 700,\r\n padding: '25px 0 0 25px',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n formComent: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '10px 0 5px 25px',\r\n width: 520,\r\n minWidth: 120,\r\n },\r\n});\r\n\r\nclass EditNuevoAlbaran extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n pedido_id: this.props.pedido.id,\r\n centro_id: this.props.centroId,\r\n centroDescr: this.props.centroDescr,\r\n proveedorDescr: this.props.pedido.proveedorDescr,\r\n fDoc: this.props.pedido.fDoc,\r\n documento: this.props.pedido.refPedido,\r\n obsv: this.props.pedido.obsv,\r\n showSpinner: true,\r\n a_refAlbaran: '', // <=> albaran.refAlbaran\r\n a_iTipoAlbaran: 0, // <=> albaran.iTipoAlbaran\r\n a_fEntrega: new Date().toISOString().slice(0, 10), // <=> albaran.fEntrega\r\n a_obsv: '', // <=> albaran.obsv\r\n albaran: {},\r\n tot_albaran: 0.0,\r\n tot_uds: 0,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n // obtiene un nuevo albarán\r\n let URL = (this.props.imenu === \"1\" ?\r\n 'DCAlbarans/pendiente?pedido_id='\r\n :\r\n 'DCAlbarans/'\r\n ) + this.props.pedido.id;\r\n\r\n this.setState({ ...this.state, showSpinner: true });\r\n getData(\r\n URL,\r\n response => {\r\n // añadea a cada fila del inventario un campo para el contro del color\r\n // de las columnas\r\n response.data.lLineas = response.data.lLineas.map(p => {\r\n return { ...p, colColorTrue: true };\r\n });\r\n\r\n const udsArray = response.data.lLineas.map(row => row.cantidad);\r\n const totalArray = response.data.lLineas.map(row => row.total);\r\n\r\n this.setState({\r\n ...this.state,\r\n albaran: response.data,\r\n tot_uds: udsArray.length ? udsArray.reduce((a, b) => a + b) : 0,\r\n tot_albaran: totalArray.length ? totalArray.reduce((a, b) => a + b) : 0,\r\n showSpinner: false,\r\n a_fEntrega: response.data.fEntrega ? response.data.fEntrega.slice(0, 10) : new Date().toISOString().slice(0, 10)\r\n });\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching pedido',\r\n },\r\n 'ent_nuevo_albaran',\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, showSpinner: false });\r\n },\r\n this.props.user,\r\n );\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n handleCheckboxNumber = (e, field) => {\r\n const value = e.target.checked;\r\n\r\n this.setState({ ...this.state, [field]: value ? 1 : 0 });\r\n };\r\n\r\n\r\n nuevoAlbaran_hideDialog = () => {\r\n // Verifica que tenga la referencia\r\n if (!this.state.a_refAlbaran || this.state.a_refAlbaran === '') {\r\n this.props.openDialog(\r\n 'SimpleMessage', { message: 'La referencia del albarán no puede ser nula' }, uuidv4(), false, 'sm',\r\n );\r\n }\r\n else {\r\n // Calcula previamente cuanto se ha introducido de forma valorada\r\n let total = 0.0;\r\n this.state.albaran.lLineas.forEach(r => {\r\n if (r.cantidad !== null && r.precio !== null)\r\n total += parseFloat(r.cantidad) * parseFloat(r.precio);\r\n });\r\n\r\n // genera un nuevo albarán con todas la lista de lineas\r\n this.setState(\r\n {\r\n ...this.state,\r\n albaran: {\r\n ...this.state.albaran,\r\n refAlbaran: this.state.a_refAlbaran,\r\n iTipoAlbaran: this.state.a_iTipoAlbaran,\r\n fEntrega: this.state.a_fEntrega,\r\n obsv: this.state.a_obsv,\r\n },\r\n showSpinner: true,\r\n },\r\n () => {\r\n postData(\r\n 'DCAlbarans/' + this.state.centro_id,\r\n response => {\r\n this.setState({ ...this.state, showSpinner: false });\r\n this.props.okHandler(total);\r\n this.props.hideDialog();\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message:\r\n 'Error generando nuevo albarán: ' +\r\n error.response.data,\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, showSpinner: false });\r\n },\r\n this.state.albaran,\r\n this.props.user,\r\n );\r\n },\r\n );\r\n }\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, fromRowData, updated }) => {\r\n\r\n console.log(fromRowData);\r\n\r\n if (fromRow !== toRow || fromRowData.iCantidadPendiente === null) return; //solo modificamos una fila\r\n\r\n // const nuevaLista = this.state.albaran.lLineas.slice();\r\n // for (let i = fromRow; i <= toRow; i++) {\r\n // let updatedRow = update(this.state.albaran.lLineas[i], {\r\n // $merge: updated,\r\n // });\r\n // nuevaLista[i] = updatedRow;\r\n // }\r\n\r\n const nuevaLista = this.state.albaran.lLineas.slice();\r\n let updatedRow = update(this.state.albaran.lLineas[fromRowData.grid_index], {\r\n $merge: updated,\r\n });\r\n nuevaLista[fromRowData.grid_index] = updatedRow;\r\n\r\n const udsArray = nuevaLista.map(row => row.cantidad == null ? 0 : parseInt(row.cantidad));\r\n const totalArray = nuevaLista.map(row => row.cantidad == null || row.precio == null ? 0 : parseFloat(row.cantidad) * row.precio);\r\n\r\n this.setState({\r\n ...this.state,\r\n albaran: { ...this.state.albaran, lLineas: nuevaLista },\r\n tot_uds: udsArray.length ? udsArray.reduce((a, b) => a + b) : 0,\r\n tot_albaran: totalArray.length ? totalArray.reduce((a, b) => a + b) : 0,\r\n });\r\n };\r\n\r\n\r\n imprimir = () => {\r\n\r\n this.setState({ ...this.state, showSpinner: true });\r\n\r\n const win = window.open(process.env.PUBLIC_URL + '/loading_report.html', '_blank');\r\n\r\n let url = '';\r\n\r\n createReport(\r\n {\r\n reportDefinition: { id: 59 },\r\n values: {\r\n centroId: this.props.centroId,\r\n maquinaId: this.props.pedido.id,\r\n page: -1\r\n }\r\n },\r\n \"PDF\",\r\n this.props.user, '')\r\n .then(response => {\r\n url = window.URL.createObjectURL(new Blob([response.data], { type: \"application/pdf\" }));\r\n win.location.href = url;\r\n }).catch(error => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR generating PDF'\r\n }, 'error-opem-report-pdf', false, false);\r\n }).then(() => {\r\n this.setState({ ...this.state, showSpinner: false });\r\n });\r\n };\r\n\r\n\r\n borrarAlbaran = () => {\r\n\r\n let url = 'DCAlbarans/borrar?albaran_id=' + this.state.albaran.id;\r\n\r\n this.setState({ ...this.state, showSpinner: true }, () => {\r\n\r\n putData(url, (response) => {\r\n\r\n this.setState({ ...this.state, showSpinner: false });\r\n\r\n this.props.hideDialog();\r\n\r\n if (this.props.refreshHandler !== undefined) this.props.refreshHandler();\r\n\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'Albaran eliminado',\r\n },\r\n 'borrar_albaran_hist_success',\r\n false,\r\n 'sm',\r\n );\r\n\r\n }, (error) => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'Error eliminando albaran, compruebe que no hay inventarios posteriores cerrados',\r\n },\r\n 'borrar_albaran_hist_error',\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, showSpinner: false });\r\n }, {}, this.props.user, false);\r\n });\r\n\r\n }\r\n\r\n abrirAlbaran = () => {\r\n\r\n let url = 'DCAlbarans/abrir?albaran_id=' + this.state.albaran.id;\r\n\r\n this.setState({ ...this.state, showSpinner: true }, () => {\r\n\r\n putData(url, (response) => {\r\n\r\n const newAlbaran = { ...this.state.albaran, bCerrado: false }\r\n\r\n this.setState({ ...this.state, albaran: newAlbaran, showSpinner: false });\r\n\r\n }, (error) => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'Error abriendo albaran, compruebe que no hay inventarios posteriores cerrados',\r\n },\r\n 'borrar_albaran_hist_error',\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, showSpinner: false });\r\n }, {}, this.props.user, false);\r\n });\r\n\r\n }\r\n\r\n actualizarAbaran_hideDialog = () => {\r\n\r\n this.setState({ ...this.state, showSpinner: true }, () => {\r\n\r\n putData(\r\n 'DCAlbarans/' + this.state.centro_id,\r\n response => {\r\n\r\n this.setState({ ...this.state, showSpinner: false });\r\n\r\n this.props.hideDialog();\r\n\r\n if (this.props.refreshHandler !== undefined) this.props.refreshHandler();\r\n\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'Albaran modificado',\r\n },\r\n 'modificar_albaran_hist_success',\r\n false,\r\n 'sm',\r\n );\r\n\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message:\r\n 'Error modificando albarán: ' +\r\n error.response.data,\r\n },\r\n 'error_modificando_albaran',\r\n false,\r\n 'sm',\r\n );\r\n\r\n this.setState({ ...this.state, showSpinner: false });\r\n\r\n },\r\n { ...this.state.albaran, fEntrega: this.state.a_fEntrega },\r\n this.props.user,\r\n );\r\n });\r\n\r\n }\r\n\r\n cerrarAbaran_hideDialog = () => {\r\n let url = 'DCAlbarans/cerrar?albaran_id=' + this.state.albaran.id;\r\n\r\n this.setState({ ...this.state, showSpinner: true }, () => {\r\n\r\n putData(url, (response) => {\r\n\r\n this.setState({ ...this.state, showSpinner: false });\r\n\r\n this.props.hideDialog();\r\n\r\n if (this.props.refreshHandler !== undefined) this.props.refreshHandler();\r\n\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'Albaran cerrado',\r\n },\r\n 'cerrar_albaran_hist_success',\r\n false,\r\n 'sm',\r\n );\r\n\r\n }, (error) => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'Error cerrando albaran',\r\n },\r\n 'cerrar_albaran_hist_error',\r\n false,\r\n 'sm',\r\n );\r\n\r\n this.setState({ ...this.state, showSpinner: false });\r\n\r\n }, {}, this.props.user, false);\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.showSpinner === true)\r\n return (\r\n
\r\n \r\n
\r\n );\r\n else {\r\n if (this.state.albaran && this.state.albaran.lLineas)\r\n this.state.albaran.lLineas.forEach(p => {\r\n if (p.iCantidadPendiente === 0) {\r\n p.iCantidadPendiente = null;\r\n p.cantidad = null;\r\n }\r\n });\r\n\r\n const { classes } = this.props;\r\n\r\n const grColumns = (this.props.imenu === \"1\") ?\r\n [\r\n { key: 'articuloDescr', name: 'Artículo', editable: false, dragable: false, width: 300, grayField: 'colColorTrue', },\r\n { key: 'puntos', name: 'Puntos', type: 'int', editable: false, dragable: false, width: 60, grayField: 'colColorTrue', },\r\n { key: 'codBarras', name: 'Cód. Barras', editable: true, dragable: false, width: 150, },\r\n {\r\n key: 'iCantidadPendiente', editable: false, dragable: false, type: 'int', width: 60, grayField: 'colColorTrue',\r\n name: 'Ud.Pdte.',\r\n tooltip: 'Número de unidades pendientes de recibir'\r\n },\r\n {\r\n key: 'cantidad', editable: this.props.iPerfil !== 22, dragable: false, type: 'int', width: 60,\r\n name: 'Ud.Recib.',\r\n tooltip: 'Número de unidades recibidas'\r\n },\r\n { key: 'articuloCod', name: 'Cód.Art.', editable: false, dragable: false, width: 60, grayField: 'colColorTrue', },\r\n ]\r\n :\r\n [\r\n { key: 'articuloDescr', name: 'Artículo', editable: false, dragable: false, width: 300 },\r\n {\r\n key: 'cantidad', editable: this.props.iPerfil !== 22, dragable: false, type: 'int', width: 60,\r\n name: 'Ud.Recib.',\r\n tooltip: 'Número de unidades recibidas'\r\n },\r\n // { key: 'tarifa', name: 'Tarifa', type: 'float', editable: false, dragable: false, width: 60 },\r\n { key: 'puntos', name: 'Puntos', type: 'int', editable: false, dragable: false, width: 60 },\r\n { key: 'precio', name: 'Precio', type: 'float', editable: false, dragable: false, width: 60 },\r\n { key: 'total', name: 'Total', type: 'float', editable: false, dragable: false, width: 60 },\r\n { key: 'articuloCod', name: 'Cód.Art.', editable: false, dragable: false, width: 60 },\r\n ];\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {'Centro: ' + (this.props.kd === undefined ? this.props.centroDescr : this.props.kd.empresa)}\r\n \r\n
\r\n
\r\n \r\n {'Fecha pedido: ' + this.props.pedido.fDoc.slice(0, 10)}\r\n \r\n \r\n {'Proveedor: ' + this.props.pedido.proveedorDescr}\r\n \r\n
\r\n
\r\n \r\n {'Documento: ' + this.props.pedido.refPedido}\r\n \r\n \r\n {'Obsv: ' + this.props.pedido.obsv}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Albarán\r\n \r\n
\r\n
\r\n {(this.props.imenu === \"1\") ?\r\n \r\n \r\n this.handleValueChange(\r\n event,\r\n 'a_refAlbaran',\r\n )\r\n }\r\n />\r\n this.handleCheckboxNumber(e, 'a_iTipoAlbaran')}\r\n />\r\n }\r\n label=\"Devolución\"\r\n />\r\n \r\n :\r\n \r\n {'Ref Albaran: ' + this.state.albaran.refAlbaran}\r\n \r\n }\r\n {(this.props.imenu === \"1\" || this.state.albaran.bCerrado === false) ?\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(\r\n d.toISOString().slice(0, 10),\r\n 'a_fEntrega',\r\n )\r\n }\r\n }}\r\n />\r\n \r\n :\r\n \r\n {' Fecha Entrega: ' + new Date(this.state.albaran.fEntrega).toLocaleDateString('es-ES', { year: '2-digit', month: '2-digit', day: '2-digit' })}\r\n \r\n }\r\n {(this.props.imenu === \"1\") ?\r\n \r\n \r\n this.handleValueChange(event, 'a_obsv')\r\n }\r\n />\r\n \r\n :\r\n \r\n {' Observaciones: ' + this.state.albaran.obsv}\r\n \r\n }\r\n
\r\n
\r\n\r\n
\r\n {this.state.albaran && this.state.albaran.lLineas ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Atrás\r\n \r\n {(this.props.imenu === \"1\") ?\r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\n}\r\n\r\nEditNuevoAlbaran.propTypes = {\r\n pedido: PropTypes.object.isRequired,\r\n imenu: PropTypes.string.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n refreshHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n user: PropTypes.object.isRequired,\r\n iPerfil: PropTypes.number.isRequired\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditNuevoAlbaran);\r\n","import React from 'react';\r\n//import uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\n//import update from 'immutability-helper';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../neurite_grid';\r\n\r\n//helpers:\r\nimport { getData } from '../../../dataLib';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n // height: '100%',\r\n // width: 240\r\n flexGrow: 1,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: 700,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n //margin: '5px 25px',\r\n minWidth: 120,\r\n //height: 72,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n formComent: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '10px 0 5px 25px',\r\n width: 520,\r\n minWidth: 120,\r\n },\r\n});\r\n\r\nclass EditListaAlbaran extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n pedido_id: this.props.pedido.id,\r\n centro_id: this.props.pedido.centroId,\r\n centroDescr: this.props.centroDescr,\r\n proveedorDescr: this.props.pedido.proveedorDescr,\r\n fDoc: this.props.pedido.fDoc,\r\n documento: this.props.pedido.refPedido,\r\n obsv: this.props.pedido.obsv,\r\n showSpinner: true,\r\n albaranes: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n // obtiene lista de líneas de albarán para un pedido\r\n let URL = 'DCAlbarans/lista_alb?pedido_id=' + this.props.pedido.id;\r\n\r\n this.setState({ ...this.state, showSpinner: true });\r\n getData(\r\n URL,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n albaranes: response.data.map(p => {\r\n return {\r\n ...p,\r\n ft_fEntrega: p.fEntrega ? new Date(p.fEntrega).toLocaleDateString('es-ES', { year: '2-digit', month: '2-digit', day: '2-digit' }) : '',\r\n }\r\n }),\r\n\r\n showSpinner: false,\r\n });\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching lista albaranes',\r\n },\r\n 'edit_lista_albaran',\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, showSpinner: false });\r\n },\r\n this.props.user,\r\n );\r\n }\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.showSpinner === true)\r\n return (\r\n
\r\n \r\n
\r\n );\r\n else {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {'Centro: ' + this.props.centroDescr}\r\n \r\n
\r\n
\r\n \r\n {'Fecha pedido: ' +\r\n this.props.pedido.fDoc.slice(0, 10)}\r\n \r\n \r\n {'Proveedor: ' +\r\n this.props.pedido.proveedorDescr}\r\n \r\n
\r\n
\r\n \r\n {'Documento: ' + this.props.pedido.refPedido}\r\n \r\n \r\n {'Obsv: ' + this.props.pedido.obsv}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Albaranes\r\n \r\n
\r\n
\r\n\r\n
\r\n {this.state.albaranes ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n
\r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\nEditListaAlbaran.propTypes = {\r\n pedido: PropTypes.object.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditListaAlbaran);\r\n","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport { getData, postData } from '../../../dataLib';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport update from 'immutability-helper';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport AddBoxIcon from '@material-ui/icons/AddBox';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../neurite_grid';\r\nimport DatePicker from '../../utils/DatePicker';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: 700,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n minWidth: 120,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n formComent: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '10px 0 5px 25px',\r\n width: 520,\r\n minWidth: 120,\r\n },\r\n spinnerContainer: {\r\n width: \"100%\"\r\n }\r\n});\r\n\r\nclass EditInventario extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showSpinner: false,\r\n a_fInventario: this.props.inventario.fInventario.slice(0, 10),\r\n inventario: this.props.inventario,\r\n primeroAbierto: this.props.primeroAbierto,\r\n ultimoCerrado: this.props.ultimoCerrado,\r\n };\r\n // añade un atributo para poner grayed las columnas que no deben modificarse\r\n this.state.inventario.lLineas = this.props.inventario.lLineas.map(p => {\r\n return { ...p, colColorTrue: true };\r\n });\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n\r\n\r\n guarda_Inventario = () => {\r\n this.setState(\r\n {\r\n ...this.state,\r\n inventario: {\r\n ...this.state.inventario,\r\n fValidado: new Date().toISOString().slice(0, 10),\r\n fInventario: this.state.a_fInventario,\r\n },\r\n showSpinner: true,\r\n },\r\n () => {\r\n this.props.okHandler(this.state.inventario);\r\n this.props.hideDialog();\r\n },\r\n );\r\n };\r\n\r\n refreshInventario = inventarioId => {\r\n getData(\r\n 'DCInventarios/' + inventarioId,\r\n response => {\r\n this.setState({ ...this.state, inventario: response.data, showSpinner: false });\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching inventario',\r\n },\r\n 'acc_inventario',\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, showSpinner: false });\r\n },\r\n this.props.user,\r\n );\r\n }\r\n\r\n onClickAddLineInventario = () => {\r\n this.props.openDialog(\r\n 'ListArticulos',\r\n {\r\n acceptHandler: articulo => {\r\n this.setState({ ...this.state, showSpinner: true });\r\n postData(\r\n `DCInventarios/nuevo_articulo?inventario_id=${this.state.inventario.id}&articulo_centro_compra_id=${articulo.idArticuloCompraCentro}&usuario_id=${this.state.inventario.usuarioId}`,\r\n response => {\r\n this.refreshInventario(this.state.inventario.id);\r\n },\r\n e => {\r\n this.setState({ ...this.state, showSpinner: false });\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR ' + e.response.data,\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n {},\r\n this.props.user,\r\n );\r\n },\r\n },\r\n uuidv4(),\r\n true,\r\n 'md',\r\n );\r\n }\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, fromRowData, updated }) => {\r\n if (parseInt(fromRow) !== parseInt(toRow)) return; //solo modificamos una fila\r\n\r\n // const nuevaLista = this.state.inventario.lLineas.slice();\r\n // for (let i = fromRow; i <= toRow; i++) {\r\n // let updatedRow = update(this.state.inventario.lLineas[i], {\r\n // $merge: updated,\r\n // });\r\n // nuevaLista[i] = updatedRow;\r\n // }\r\n\r\n const nuevaLista = this.state.inventario.lLineas.slice();\r\n\r\n let updatedRow = update(this.state.inventario.lLineas[fromRowData.grid_index], {\r\n $merge: updated,\r\n });\r\n nuevaLista[fromRowData.grid_index] = updatedRow;\r\n\r\n this.setState({\r\n ...this.state,\r\n inventario: { ...this.state.inventario, lLineas: nuevaLista },\r\n });\r\n };\r\n\r\n cierraInventario = () => {\r\n this.props.openDialog(\r\n 'ConfirmationDialog',\r\n {\r\n message:\r\n '¿Desea cerrar el inventario de ' +\r\n this.state.inventario.fInventario.slice(0, 10) +\r\n ' ?',\r\n acceptHandler: () => {\r\n this.setState(\r\n {\r\n ...this.state,\r\n inventario: {\r\n ...this.state.inventario,\r\n bCerrado: true,\r\n fCerrado: new Date().toISOString().slice(0, 10),\r\n cerradoUsuarioId: this.props.user.profile.sub,\r\n },\r\n showSpinner: true,\r\n },\r\n () => {\r\n this.props.cierraInventarioHandler(\r\n this.state.inventario,\r\n );\r\n this.props.hideDialog();\r\n },\r\n );\r\n },\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n };\r\n\r\n abreInventario = () => {\r\n this.props.openDialog(\r\n 'ConfirmationDialog',\r\n {\r\n message:\r\n '¿Desea abrir el inventario de ' +\r\n this.state.inventario.fInventario.slice(0, 10) +\r\n ' ?',\r\n acceptHandler: () => {\r\n this.setState(\r\n {\r\n ...this.state,\r\n inventario: {\r\n ...this.state.inventario,\r\n bCerrado: false,\r\n fCerrado: {},\r\n cerradoUsuarioId: this.props.user.profile.sub,\r\n },\r\n showSpinner: true,\r\n },\r\n () => {\r\n this.props.abreInventarioHandler(\r\n this.state.inventario,\r\n );\r\n this.props.hideDialog();\r\n },\r\n );\r\n },\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n };\r\n\r\n muestraFechaInventario = () => {\r\n const { classes } = this.props;\r\n\r\n if (\r\n this.state.inventario.fValidado ||\r\n this.state.inventario.bCerrado === true\r\n ) {\r\n return (\r\n
\r\n \r\n {'Fecha Inventario: ' + new Date(this.props.inventario.fInventario.slice(0, 10)).toLocaleDateString(\"es-ES\", { year: \"numeric\", month: \"2-digit\", day: \"2-digit\" })}\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n \r\n {/* this.handleValueChange(event, 'a_fInventario')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(\r\n d.toISOString().slice(0, 10),\r\n 'a_fInventario',\r\n )\r\n }\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n };\r\n\r\n botoneraValidacionCierre = () => {\r\n const { classes } = this.props;\r\n\r\n if ([0, 4, 5, 14, 15, 17, 18].includes(this.props.iPerfil)) {\r\n if (this.state.inventario.bCerrado === false) {\r\n if (this.state.primeroAbierto) {\r\n return (\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Atrás\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Atrás\r\n \r\n
\r\n );\r\n }\r\n } else {\r\n if (this.state.ultimoCerrado) {\r\n return (\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Atrás\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Atrás\r\n \r\n
\r\n );\r\n }\r\n }\r\n } else {\r\n if (this.state.inventario.bCerrado === true) {\r\n return (\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Atrás\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Atrás\r\n \r\n this.guarda_Inventario()}\r\n >\r\n Guardar\r\n \r\n
\r\n );\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.showSpinner === true)\r\n return (\r\n \r\n \r\n \r\n );\r\n else {\r\n return (\r\n
\r\n
{this.muestraFechaInventario()}
\r\n\r\n
\r\n {this.state.inventario &&\r\n this.state.inventario.lLineas ? (\r\n \r\n { this.onClickAddLineInventario() }}>\r\n \r\n \r\n \r\n Stock ant.\r\n \r\n ),\r\n editable: false,\r\n dragable: false,\r\n type: 'int',\r\n width: 70,\r\n grayField: 'colColorTrue',\r\n },\r\n {\r\n key: 'stock',\r\n name: (\r\n \r\n Stock\r\n \r\n ),\r\n editable: false,\r\n dragable: false,\r\n type: 'int',\r\n width: 70,\r\n grayField: 'colColorTrue',\r\n }, */\r\n {\r\n key: 'unidades',\r\n name: 'Unidades',\r\n tooltip: 'Unidades inventariadas',\r\n editable: this.state.ultimoCerrado ? false : true,\r\n dragable: false,\r\n type: 'int',\r\n width: 70,\r\n },\r\n /* {\r\n key: 'maquinaDescr',\r\n name: 'Máquina',\r\n editable: false,\r\n dragable: false,\r\n width: 200,\r\n grayField: 'colColorTrue',\r\n }, */\r\n ]}\r\n rows={this.state.inventario.lLineas}\r\n height={300}\r\n buttonEdit={false}\r\n buttonDelete={false}\r\n buttonNew={false}\r\n onRowsUpdated={this.handleGridRowsUpdated}\r\n />\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n\r\n {this.botoneraValidacionCierre()}\r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\nEditInventario.propTypes = {\r\n inventario: PropTypes.object.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n cierraInventarioHandler: PropTypes.func.isRequired,\r\n abreInventarioHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n user: PropTypes.object.isRequired,\r\n iPerfil: PropTypes.number.isRequired,\r\n ultimoCerrado: PropTypes.bool.isRequired,\r\n primeroAbierto: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditInventario);\r\n","import { GET_MOTIVO, ADD_MOTIVO, MODIFY_MOTIVO, DELETE_MOTIVO, UPDATE_MOTIVO } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n motivos: [],\r\n isLoading: false\r\n};\r\n\r\n\r\nexport function getDescr(value)\r\n{\r\n const tipos = ['','Cliente inactivo', 'Movimiento autoriz.'];\r\n return tipos[value ? value : 1]\r\n}\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_MOTIVO:\r\n \r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n\r\n case GET_MOTIVO + \"_SUCCESS\":\r\n const newMotivo = action.payload.data.map(p => {\r\n return {...p, kindDescr: getDescr(p.iKind)}\r\n })\r\n\r\n return {\r\n motivos: newMotivo, // action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_MOTIVO:\r\n \r\n const newArr = [...state.motivos, action.payload]\r\n return {\r\n motivos: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_MOTIVO:\r\n\r\n return {\r\n motivos: state.motivos.map((p) => {\r\n if (p.id !== action.payload.id) \r\n return p;\r\n else\r\n return {...action.payload, kindDescr: getDescr(action.payload.iKind)};\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_MOTIVO:\r\n\r\n return {\r\n motivos: state.motivos.filter(p => p.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_MOTIVO + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\n//import { Tooltip, Fade } from '@material-ui/core';\r\n\r\nimport { getDescr } from '../../../reducers/reducer_motivo';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 300,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass EditCvMotivo extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n id: this.props.motivo.id ? this.props.motivo.id : uuidv4(),\r\n description: this.props.motivo.descr ? this.props.motivo.descr : '',\r\n iKind: this.props.motivo.iKind ? this.props.motivo.iKind : 1,\r\n kindDescr: getDescr(this.props.motivo.iKind),\r\n };\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n handleChangeSelect = event => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iKind: value,\r\n kindDescr: getDescr(value),\r\n });\r\n };\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n \r\n Tipo Motivo\r\n \r\n this.handleChangeSelect(event)}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n this.handleValueChange(event, 'description')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nEditCvMotivo.propTypes = {\r\n motivo: PropTypes.object.isRequired,\r\n checkMotivo: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCvMotivo);","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\nimport { postData, putData } from '../../../dataLib';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n margin: {\r\n marginTop: 10,\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n\r\n});\r\n\r\nclass EditCodigoBarras extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.codigo.id ? this.props.codigo.id : 0,\r\n codBarras: this.props.codigo.codBarras ? this.props.codigo.codBarras : '',\r\n articuloCompraId: this.props.codigo.articuloCompraId\r\n }\r\n\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n\r\n };\r\n\r\n updateCodigoBarras = () => {\r\n\r\n let url = 'ArticuloCompraCodBarras'\r\n\r\n const codigo = { id: this.state.id, articuloCompraId: this.state.articuloCompraId, codBarras: this.state.codBarras };\r\n\r\n if (this.state.id === 0) { //nuevo codigo\r\n postData(url, () => {\r\n this.props.hideDialog();\r\n this.props.okHandler(codigo);\r\n },\r\n (error) => {\r\n if (error.response.data.startsWith('REPETIDO')) {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'Código ya existente'\r\n }, 'error_post_codBarras', false, 'sm');\r\n }\r\n else {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'error agregando codigo de barras'\r\n }, 'error_post_codBarras', false, 'sm');\r\n }\r\n },\r\n codigo,\r\n this.props.user);\r\n\r\n }\r\n else { //actualizar codigo\r\n url += '/' + this.state.id;\r\n putData(url, () => {\r\n this.props.hideDialog();\r\n this.props.okHandler(codigo);\r\n },\r\n (error) => {\r\n if (error.response.data.startsWith('REPETIDO')) {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'Código ya existente'\r\n }, 'error_put_codBarras', false, 'sm');\r\n }\r\n else {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'error modificando codigo de barras'\r\n }, 'error_put_codBarras', false, 'sm');\r\n }\r\n },\r\n codigo,\r\n this.props.user);\r\n }\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n\r\n \r\n this.handleValueChange(event, 'codBarras')}\r\n />\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n};\r\n\r\nEditCodigoBarras.propTypes = {\r\n codigo: PropTypes.object.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditCodigoBarras);","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport NeuriteGrid from '../../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, loading } from '../../../actions';\r\nimport { getData } from '../../../dataLib';\r\nimport { setCentroDia } from '../../../actions/centro_dia_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Input from '@material-ui/core/Input';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\n\r\nimport * as config from '../../../constants/configuration';\r\nimport { Typography } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n formControl: {\r\n marginLeft: '10px'\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass MaeArticulo extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n centroId: this.props.centroDiaSelected.dia !== '' ? this.props.centroDiaSelected.centro.id : 1,\r\n articulos: [],\r\n selectedArticle: {}\r\n }\r\n\r\n };\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.getArticulos(this.state.centroId ? this.state.centroId : -1);\r\n\r\n };\r\n\r\n getArticulos = (centro_id) => {\r\n\r\n this.props.loading(true);\r\n getData(\r\n 'ArticuloCompraCtl/list/' + centro_id,\r\n (response) => {\r\n this.props.loading(false);\r\n this.setState({ ...this.state, articulos: response.data })\r\n },\r\n () => {\r\n this.props.loading(false);\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching ArticuloCompraCtl'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n\r\n editArticulo = (articulo) => {\r\n this.props.navigate(\"edit_articulo/\" + articulo.idArticuloCompraCentro);\r\n };\r\n\r\n handleSelectCentrosValueChange = (event) => {\r\n const c_id = parseInt(event.target.value ? event.target.value : 1);\r\n this.setState({ ...this.state, centroId: c_id },\r\n () => {\r\n this.getArticulos(c_id);\r\n this.props.setCentroDia(c_id, this.props.centroDiaSelected.dia, false);\r\n });\r\n };\r\n\r\n cellSelectedHandlerArticulo = row => {\r\n this.setState({...this.state,selectedArticle:row});\r\n }\r\n\r\n renderSelectCentros = () => {\r\n\r\n const perfil = this.props.userProfile.selectedCentroProfile ? this.props.userProfile.selectedCentroProfile.iPerfil : 0;\r\n\r\n const centros = [0, 4, 5, 17, 20].includes(perfil) ?\r\n this.props.centros.filter(c => c.activo === 1)\r\n : this.props.centros.filter(c => c.id === this.props.userProfile.selectedCentroProfile.centroId);\r\n\r\n const { classes } = this.props;\r\n return (\r\n \r\n Centro\r\n }\r\n name=\"centroId\"\r\n >\r\n {centros.map(centro => {\r\n return ()\r\n })}\r\n \r\n \r\n );\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n
\r\n {/* {this.renderSelectCentros()} */}\r\n \r\n Añadir linea de inventario\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeArticulo.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n userProfile: state.userProfile,\r\n centros: state.centros.centros,\r\n centroDiaSelected: state.centroDiaSelected,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n openDialog,\r\n setCentroDia,\r\n loading\r\n }, dispatch);\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeArticulo));\r\n","import React from 'react';\r\nimport uuidv4 from 'uuid';\r\nimport update from 'immutability-helper';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\nimport { Typography } from '@material-ui/core';\r\n\r\nimport { setSaveState } from '../../../actions';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../../components/neurite_grid';\r\nimport { LocalConvenienceStoreOutlined } from '@material-ui/icons';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100%',\r\n width: 240,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: 550,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 50,\r\n height: 72,\r\n width: 185,\r\n },\r\n buttonsContainer: {\r\n width: 520,\r\n padding: '25px 0 0 25px',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n width_where: {\r\n width: 500,\r\n },\r\n width_descr: {\r\n width: 500,\r\n },\r\n width_int_md: {\r\n width: 100,\r\n },\r\n width_date: {\r\n width: 100,\r\n },\r\n grid: {\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n width: 550,\r\n }\r\n\r\n});\r\n\r\nclass EditSegmentacion extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n id: this.props.segmentacion.id ? this.props.segmentacion.id : uuidv4(),\r\n centroId: this.props.centroId ? this.props.centroId : undefined,\r\n usuarioId: this.props.usuarioId ? this.props.usuarioId : undefined,\r\n descr: this.props.segmentacion.descr ? this.props.segmentacion.descr : '',\r\n where_clause: this.props.segmentacion.where_clause ? this.props.segmentacion.where_clause : '',\r\n contador: this.props.segmentacion.contador\r\n ? this.props.segmentacion.contador\r\n : undefined,\r\n fecha: this.props.segmentacion.fecha\r\n ? this.props.segmentacion.fecha.slice(0, 10)\r\n : new Date().toISOString().slice(0, 10),\r\n segmentacionLineaList: this.props.segmentacion.dcSegmentacionLinea ? this.props.segmentacion.dcSegmentacionLinea : [],\r\n };\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n handleDeleteRow = (linea) => {\r\n let rows = this.state.segmentacionLineaList.filter(f => f.id !== linea.id);\r\n // this.props.setSaveState(true);\r\n this.setState({ ...this.state, segmentacionLineaList: rows });\r\n };\r\n\r\n handleRowsUpdated = ({ fromRow, toRow, updated }) => {\r\n\r\n if (fromRow !== toRow) return; //we only allow modficiation of a single row\r\n\r\n let updatedRow = update(this.state.segmentacionLineaList[fromRow], { $merge: updated });\r\n\r\n // if (this.props.checkValues(updatedRow)) {\r\n this.modifyRow(updatedRow);\r\n // }\r\n\r\n };\r\n\r\n modifyRow = (linea) => {\r\n var rows = this.state.segmentacionLineaList.map((row) => {\r\n if (row.id === linea.id) {\r\n return {\r\n ...row,\r\n iField: parseInt(linea.iField),\r\n iOperator: parseInt(linea.iOperator),\r\n param1: linea.param1,\r\n param2: linea.param2,\r\n };\r\n }\r\n else return row;\r\n });\r\n // this.props.setSaveState(true);\r\n this.setState({ ...this.state, segmentacionLineaList: rows });\r\n };\r\n\r\n handleNewRow = () => {\r\n let minId = -1;\r\n const rows = this.state.segmentacionLineaList.map((row) => {\r\n if (row.id !== undefined && row.id <= minId) minId = row.id - 1;\r\n return row\r\n });\r\n\r\n if (rows === undefined) rows = [];\r\n rows.push({ id: minId });\r\n\r\n // this.props.setSaveState(true);\r\n this.setState({ ...this.state, segmentacionLineaList: rows });\r\n };\r\n\r\n calcular = () => {\r\n\r\n // this.props.setSaveState(true);\r\n this.setState({ ...this.state, contador: 567 });\r\n };\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n const optionsField = [];\r\n optionsField.push({ id: 1, value: 1, text: 'Saldo tarjeta' });\r\n optionsField.push({ id: 2, value: 2, text: 'Dias sin uso' });\r\n optionsField.push({ id: 3, value: 3, text: 'Núm. Tarjeta (concreta)' });\r\n optionsField.push({ id: 99, value: 99, text: 'Where genérico' });\r\n\r\n const optionsOperator = [];\r\n optionsOperator.push({ id: 1, value: 1, text: 'igual a...' });\r\n optionsOperator.push({ id: 2, value: 2, text: 'mayor que...' });\r\n optionsOperator.push({ id: 3, value: 3, text: 'menor que...' });\r\n optionsOperator.push({ id: 4, value: 4, text: 'entre ...y...' });\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'descr')\r\n }\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.calcular()}\r\n >\r\n Calcular\r\n \r\n
\r\n
\r\n this.props.hideDialog()}\r\n >\r\n Cerrar\r\n \r\n {\r\n const segmentacion = {\r\n id: this.state.id,\r\n centroId: this.state.centroId,\r\n usuarioId: this.state.usuarioId,\r\n descr: this.state.descr,\r\n where_clause: this.state.where_clause,\r\n fecha: this.state.fecha,\r\n contador: this.state.contador,\r\n segmentacionLineaList: this.state.segmentacionLineaList,\r\n };\r\n console.log(\"EO4\");\r\n console.log(segmentacion);\r\n if (this.props.checkSegmentacion(segmentacion)) {\r\n // this.props.okHandler(segmentacion);\r\n // this.props.hideDialog();\r\n }\r\n }}\r\n >\r\n Guardar\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nEditSegmentacion.propTypes = {\r\n segmentacion: PropTypes.object.isRequired,\r\n checkSegmentacion: PropTypes.func.isRequired,\r\n okHandler: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(EditSegmentacion);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\n//CSS\r\nimport \"./Snackbar.css\";\r\n\r\nexport default function Snackbar({ show, setShow, message }) {\r\n const [showSnackbar, setShowSnackbar] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (show) {\r\n setShowSnackbar(\"show\");\r\n setTimeout(() => {\r\n setShowSnackbar(\"\");\r\n setShow(false);\r\n }, 3000); \r\n }\r\n }, [show, setShow]);\r\n\r\n return (\r\n
\r\n {message}\r\n
\r\n );\r\n}\r\n\r\nSnackbar.propTypes = {\r\n show: PropTypes.bool.isRequired,\r\n setShow: PropTypes.func.isRequired,\r\n message: PropTypes.string.isRequired\r\n};\r\n","import React, { useState } from 'react';\r\nimport clsx from \"clsx\";\r\n\r\nimport {putData} from '../dataLib'\r\n\r\n//COMPONENT\r\nimport Snackbar from \"../components/Snackbar/Snackbar\";\r\n\r\n//#region CSS\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Visibility from \"@material-ui/icons/Visibility\";\r\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginTop: \"10px\",\r\n display: \"flex\",\r\n },\r\n form: {\r\n width: \"90%\",\r\n marginTop: theme.spacing(3),\r\n paddingBottom: \"20px\",\r\n },\r\n disabled: {},\r\n}));\r\n//#endregion\r\n\r\nfunction ChangePasswordDialog(props) {\r\n const classes = useStyles();\r\n const [formValues, setFormValues] = useState({\r\n showSnackBar: false,\r\n snackMessage: \"Contraseña modificada\",\r\n showPassword: false,\r\n edit: true,\r\n editPassword: true,\r\n errorMessage: \"\",\r\n });\r\n const [values, setValues] = useState({\r\n oldPassword: \"\",\r\n password: \"\",\r\n repassword: \"\",\r\n });\r\n const [checkValues, setCheckValues] = useState({\r\n oldPassword: false,\r\n password: false,\r\n repassword: false,\r\n });\r\n\r\n //#region OnBlur\r\n const handleBlur = prop => event => {\r\n let check = checkSpecialCondition(prop, event.target.value);\r\n setValues({\r\n ...values,\r\n [prop]: event.target.value,\r\n });\r\n setCheckValues({\r\n ...checkValues,\r\n [prop]: check.check,\r\n });\r\n setFormValues({\r\n ...formValues,\r\n errorMessage: check.errorMessage,\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region Function\r\n const checkSpecialCondition = (atribute, value) => {\r\n let result = {\r\n check: false,\r\n errorMessage: \"\",\r\n };\r\n switch (atribute) {\r\n case \"password\":\r\n if (!/^[a-z0-9_-]{3,}$/i.test(value)) {\r\n result.check = true;\r\n result.errorMessage = \"La contraseña debe tener como mínimo 3 caracteres.\";\r\n } else {\r\n result.check = false;\r\n result.errorMessage = \"\";\r\n }\r\n break;\r\n case \"repassword\":\r\n if (values.password !== value) {\r\n result.check = true;\r\n result.errorMessage = \"Las contraseñas deberian coincidir.\";\r\n } else {\r\n result.check = false;\r\n result.errorMessage = \"\";\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return result;\r\n };\r\n const handleChange = prop => event => {\r\n setValues({\r\n ...values,\r\n [prop]: event.target.value,\r\n });\r\n setCheckValues({\r\n ...checkValues,\r\n [prop]: false,\r\n });\r\n };\r\n const handleChangeFormValuesBoolean = prop => event => {\r\n setFormValues({\r\n ...formValues,\r\n [prop]: !formValues[prop],\r\n });\r\n };\r\n const handleMouseDownPassword = event => {\r\n event.preventDefault();\r\n };\r\n //#endregion\r\n\r\n //#region OnSubmit\r\n const onSubmitChangePassword = () =>{\r\n putData('Usuarios/changePassword/'+props.userProfile.profile.id\r\n ,v=>{\r\n setFormValues({...formValues,showSnackBar:true})\r\n setTimeout(()=>{\r\n props.hideDialog();\r\n },1000);\r\n },e=>{\r\n setFormValues({...formValues,errorMessage: \"Error en la contraseña\"});\r\n },{password:values.password,oldPassword:values.oldPassword}\r\n ,props.user);\r\n }\r\n //#endregion\r\n\r\n //#region Displays\r\n const displayTextFieldTitle = () => {\r\n return \r\n \r\n \r\n {\"Editar contraseña\"}\r\n \r\n \r\n ;\r\n }\r\n const displayTextFieldError = () => {\r\n return formValues.errorMessage.length > 0 ? (\r\n \r\n
\r\n {formValues.errorMessage}\r\n
\r\n
\r\n ) : null;\r\n }\r\n const displayInputOldPassword = () => {\r\n return \r\n \r\n \r\n Contraseña actual *\r\n \r\n \r\n \r\n {formValues.showPassword ? : }\r\n \r\n \r\n }\r\n labelWidth={155}\r\n />\r\n \r\n ;\r\n }\r\n const displayInputPassword = () => {\r\n return \r\n \r\n {formValues.editPassword ? \"Contraseña nueva * (min. 3)\" : \"Contraseña * (min. 3)\"}\r\n \r\n \r\n \r\n {formValues.showPassword ? : }\r\n \r\n \r\n }\r\n labelWidth={formValues.editPassword ? 210 : 160}\r\n />\r\n ;\r\n }\r\n const displayInputRePassword = () => {\r\n return \r\n \r\n Repetir contraseña *\r\n \r\n \r\n \r\n {formValues.showPassword ? : }\r\n \r\n \r\n }\r\n labelWidth={163}\r\n />\r\n ;\r\n }\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n { setFormValues({ ...formValues, showSnackBar: v }); }}\r\n message={formValues.snackMessage}\r\n />\r\n {displayTextFieldTitle()}\r\n
\r\n \r\n {displayTextFieldError()}\r\n {/* Passwords */}\r\n {displayInputOldPassword()}\r\n \r\n {displayInputPassword()}\r\n \r\n \r\n {displayInputRePassword()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ChangePasswordDialog;","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog, loading } from '../actions/index';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Button, Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\n//components:\r\nimport { postData } from '../dataLib';\r\nimport NeuriteGrid from '../components/neurite_grid';\r\n\r\nimport * as config from '../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n\troot: {\r\n\t\tmargin: 10\r\n\t},\r\n\tspinnerContainer: {\r\n\t\twidth: '95%',\r\n\t\theight: 300,\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tspinner: {\r\n\t\twidth: '50px !important',\r\n\t\theight: '50px !important',\r\n\t},\r\n\tbutton: {\r\n\t\tmargin: '15px 8px',\r\n\t\tpadding: '10px',\r\n\t\tborderRadius: 0,\r\n\t\ttextTransform: 'capitalize',\r\n\t\tcolor: 'white',\r\n\t\tborder: 'none',\r\n\t\tboxShadow: 'none',\r\n\t\twidth: 150,\r\n\t},\r\n});\r\n\r\nclass ReportDataGrid extends React.Component {\r\n\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tdatasets: [],\r\n\t\t\tloading: true\r\n\t\t};\r\n\t};\r\n\r\n\tcomponentDidMount() {\r\n\r\n\t\tpostData(config.REPORTS_API_URI() + '/PostJson',\r\n\t\t\t(response) => {\r\n\r\n\t\t\t\tthis.processDataSets(response.data);\r\n\t\t\t},\r\n\t\t\t() => {\r\n\t\t\t\tthis.props.openDialog('SimpleMessage', {\r\n\t\t\t\t\tmessage: 'ERROR obtaining report data'\r\n\t\t\t\t}, 'error-obtaining-report-data', false, 'sm');\r\n\t\t\t},\r\n\t\t\tthis.props.reportValues,\r\n\t\t\tthis.props.user,\r\n\t\t\ttrue\r\n\t\t);\r\n\r\n\t}\r\n\r\n\r\n\tprocessDataSets = (serverDataSets) => {\r\n\r\n\t\tvar localDataSets = [];\r\n\r\n\t\tserverDataSets.forEach(ds => {\r\n\r\n\t\t\tvar dataset = {};\r\n\r\n\t\t\tvar columns = [];\r\n\t\t\tvar rows = [];\r\n\r\n\t\t\tconst page = ds.Page;\r\n\r\n\t\t\tds.Columns.forEach((c, i) => {\r\n\r\n\t\t\t\tvar type = '';\r\n\t\t\t\tswitch (c.DataType) {\r\n\t\t\t\t\tcase 'System.Int32':\r\n\t\t\t\t\t\ttype = 'int';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'System.String':\r\n\t\t\t\t\t\ttype = 'string';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'System.Double':\r\n\t\t\t\t\t\ttype = 'float';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'System.DateTime':\r\n\t\t\t\t\t\ttype = 'date';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'System.Boolean':\r\n\t\t\t\t\t\ttype = 'bool';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcolumns.push({ key: c.Name, name: c.Name, editable: false, dragable: false, width: 100, type: type });\r\n\r\n\t\t\t});\r\n\r\n\t\t\tds.Rows.forEach(r => {\r\n\r\n\t\t\t\tvar row = {};\r\n\t\t\t\tds.Columns.forEach((c, i) => {\r\n\t\t\t\t\trow[c.Name] = r.Values[i];\r\n\t\t\t\t});\r\n\t\t\t\trows.push(row);\r\n\r\n\t\t\t});\r\n\r\n\t\t\tdataset = { columns: columns, rows: rows };\r\n\r\n\t\t\tif (localDataSets[page] === undefined) localDataSets[page] = [];\r\n\t\t\tlocalDataSets[page].push(dataset);\r\n\r\n\t\t});\r\n\r\n\t\tthis.setState({ ...this.state, serverDatasets: serverDataSets, datasets: localDataSets, loading: false });\r\n\r\n\t}\r\n\r\n\r\n\r\n\trenderPages = () => {\r\n\r\n\t\treturn this.state.datasets.map((p, i) => {\r\n\r\n\t\t\tconst pagina = parseInt(i) + 1;\r\n\r\n\t\t\tif (p !== undefined) {return (\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{'Página ' + pagina}\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{this.renderDataGrids(p)}\r\n\r\n\r\n\t\t\t\t
\r\n\t\t\t)}else{\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\r\n\trenderDataGrids = (datasets) => {\r\n\r\n\t\t//const { classes } = this.props;\r\n\r\n\t\treturn (\r\n\t\t\tdatasets.map((ds, i) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{this.renderDataGrid(ds, i)}\r\n\t\t\t\t\t\t{/* this.downloadCsvData(ds)}\r\n\t\t\t\t\t\t>Descargar CSV */}\r\n\t\t\t\t\t
\r\n\t\t\t\t)\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t}\r\n\r\n\trenderDataGrid = (dataSet, i) => {\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\r\n\t}\r\n\r\n\t// downloadCsvData = (dataset) => {\r\n\t// \tvar csvData = '';\r\n\t// \tdataset.columns.forEach(c => {\r\n\t// \t\tcsvData += c.name + ';';\r\n\t// \t});\r\n\t// \tcsvData = csvData.slice(0, -1);\r\n\t// \tcsvData += '\\n';\r\n\r\n\t// \tdataset.rows.forEach((r, i) => {\r\n\r\n\t// \t\tdataset.columns.forEach(c => {\r\n\t// \t\t\tcsvData += r[c.name] + ';';\r\n\t// \t\t});\r\n\r\n\t// \t\tcsvData = csvData.slice(0, -1);\r\n\t// \t\tcsvData += '\\n';\r\n\r\n\t// \t})\r\n\r\n\t// \tconst link = document.createElement('a');\r\n\t// \tlink.href = 'data:text/csv;charset=utf-8,' + encodeURIComponent(csvData);\r\n\t// \tlink.setAttribute('download', 'dataset.csv');\r\n\t// \tdocument.body.appendChild(link);\r\n\t// \tlink.click();\r\n\t// }\r\n\r\n\trender() {\r\n\t\tconst { classes } = this.props;\r\n\r\n\t\tif (this.state.loading)\r\n\t\t\treturn (\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t);\r\n\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t{this.renderPages()}\r\n\t\t\t\tCerrar\r\n\t\t\t
\r\n\t\t);\r\n\t};\r\n};\r\n\r\nReportDataGrid.propTypes = {\r\n\treportValues: PropTypes.object.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n\treturn {\r\n\t\tuser: state.oidc.user,\r\n\t\tuserProfile: state.userProfile\r\n\t};\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n\treturn bindActionCreators({\r\n\t\thideDialog,\r\n\t\topenDialog,\r\n\t\tloading\r\n\t}, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(ReportDataGrid));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport { hideDialog } from '../actions/index';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\n\r\nimport EditCvTipoZona from '../components/dialogs/mae_auxiliares_tipo_zona/edit_cv_tipo_zona';\r\nimport EditCvGrupoPartida from '../components/dialogs/mae_auxiliares_grupo_partida/edit_cv_grupo_partida';\r\nimport EditCvTipoZonaIva from '../components/dialogs/mae_auxiliares_tipo_zona_iva/edit_cv_tipo_zona_iva';\r\nimport EditCvTipoPartida from '../components/dialogs/mae_auxiliares_tipo_partida/edit_cv_tipo_partida';\r\nimport EditCvTipoArticulo from '../components/dialogs/mae_auxiliares_tipo_articulos/edit_cv_tipo_articulos';\r\nimport EditCvTipoGasto from '../components/dialogs/mae_auxiliares_tipo_gasto/edit_cv_tipo_gasto';\r\nimport EditCvTipoMaquina from '../components/dialogs/mae_auxiliares_tipo_maquina/edit_cv_tipo_maquina';\r\nimport EditVModeloMaquina from '../components/dialogs/mae_auxiliares_modelo_maquina/edit_v_modelo_maquina';\r\nimport EditCentroUsuario from '../components/dialogs/mae_auxiliares_perfiles_usuario/edit_centro_usuario';\r\nimport EditCajaCentro from '../components/dialogs/mae_centro/edit_caja_centro';\r\nimport EditZonaIvaCentro from '../components/dialogs/mae_centro/edit_zonaiva_centro';\r\nimport EditContabCentro from '../components/dialogs/mae_centro/edit_contab_centro';\r\nimport EditZonaCentro from '../components/dialogs/mae_centro/edit_zona_centro';\r\nimport EditCentroCentro from '../components/dialogs/mae_centro/edit_centro_centro';\r\nimport EditFondo from '../components/dialogs/mae_centro/edit_fondo';\r\n\r\n\r\nimport EditContadorMaquina from '../components/dialogs/mae_maquina/edit_maquina_contador';\r\nimport EditIncidenciaMaquina from '../components/dialogs/mae_maquina/edit_maquina_incidencia';\r\nimport EditLicenciaMaquina from '../components/dialogs/mae_maquina/edit_maquina_licencia';\r\nimport EditItvMaquina from '../components/dialogs/mae_maquina/edit_maquina_itv';\r\nimport EditCentroMaquina from '../components/dialogs/mae_maquina/edit_maquina_centro';\r\n\r\nimport EditZonaTipoPartida from '../components/dialogs/mae_zona/edit_zona_tipopartida';\r\nimport EditZonaProduct from '../components/dialogs/mae_zona/edit_zona_productos';\r\nimport EditZonaProductCaja from '../components/dialogs/mae_zona/edit_zona_productos_caja';\r\nimport CentroNew from '../containers/dialogs/centro_new';\r\nimport MoreDetailsCentro from '../components/dialogs/mae_centro/more_details_centro';\r\nimport SimpleMessage from '../components/dialogs/simple_message';\r\nimport ConfirmationDialog from '../components/dialogs/confirmation_dialog';\r\nimport CierreDiarioMKTGrid from '../containers/acc_cierre_diario/cierre_diario_mkt_grid';\r\nimport EditMktGrid from '../components/dialogs/cierre_diario_mkt_grid_edit';\r\nimport CierreDiarioArcadeGrid from '../containers/acc_cierre_diario/cierre_diario_arcade_grid';\r\nimport EditArcadeGrid from '../components/dialogs/cierre_diario_arcade_grid_edit';\r\nimport CierreDiarioGastosGrid from '../containers/acc_cierre_diario/cierre_diario_gastos_grid';\r\nimport EditGastosGrid from '../components/dialogs/cierre_diario_gastos_grid_edit';\r\nimport CierreDiarioPorHoras from '../containers/acc_cierre_diario/cierre_diario_por_horas';\r\nimport CierreDiarioPartidasTipoGrid from '../containers/acc_cierre_diario/cierre_diario_partidas_tipo_grid';\r\nimport EditPartidasPorTipoGrid from '../components/dialogs/cierre_diario_partidas_tipo_grid_edit';\r\nimport CierreDiarioObservaciones from '../components/dialogs/cierre_diario_observaciones';\r\nimport Arqueo from '../containers/arqueo';\r\nimport CierreSemanalLecturasArcade from '../containers/acc_cierre_semanal/cierre_semanal_lect_arcade';\r\nimport CierreSemanalLecturasArcadeDetail from '../containers/acc_cierre_semanal/cierre_semanal_lect_arcade_detail';\r\nimport EditLectArcade from '../components/dialogs/cierre_semanal_lect_arcade_edit';\r\nimport CierreSemanalResumenGastos from '../containers/acc_cierre_semanal/cierre_semanal_resumen_gastos';\r\nimport CierreSemanalResumenVisas from '../containers/acc_cierre_semanal/cierre_semanal_resumen_visas';\r\nimport CierreSemanalResumenMKT from '../containers/acc_cierre_semanal/cierre_semanal_resumen_mkt';\r\nimport CierreSemanalResumenBanco from '../containers/acc_cierre_semanal/cierre_semanal_resumen_banco';\r\nimport CalendarioSemanal from '../components/dialogs/cierre_semanal_calendario';\r\n\r\n\r\nimport MaeAuxiliaresTipoZona from '../containers/mae_auxiliares_tipo_zona/mae_auxiliares_tipo_zona';\r\n\r\nimport IncrPresupuestos from '../components/dialogs/presupuestos_incr';\r\nimport PresupuestoDetalle from '../containers/ent_presupuestos/presupuesto_detalle';\r\n\r\nimport SelectMaquina from '../components/dialogs/select_maquina';\r\nimport EditIncidencia from '../components/dialogs/ent_alertas_edit_inicidencia';\r\n\r\nimport EditLecturasContador from '../containers/mae_maquina/edit_lecturas_contador';\r\nimport ListaMovimientos from '../containers/mae_centro/lista_movimientos';\r\n\r\nimport CentroMailing from '../containers/mae_centro/centro_mailing';\r\n\r\nimport PdfViewer from '../components/dialogs/pdf_viewer';\r\nimport ReportGeneric from './report_generic';\r\nimport ReportRankingMaquinas from './report_ranking_maquinas';\r\nimport ReportRegalosEntregados from './report_regalos_entregados';\r\n\r\nimport TextBoxDialog from '../components/dialogs/textbox_dialog';\r\n\r\nimport EditCvFamilia from '../components/dialogs/mae_redemption_familia/edit_familia';\r\nimport EditCvSubFamilia from '../components/dialogs/mae_redemption_sub_familia/edit_sub_familia';\r\nimport EditTipoFicha from '../components/dialogs/mae_redemption_tipo_ficha/edit_tipo_ficha';\r\nimport EditTipoFichaSub from '../components/dialogs/mae_redemption_tipo_ficha_sub/edit_tipo_ficha_sub';\r\nimport EditTipoMovRedem from '../components/dialogs/mae_redemption_tipo_mov_redem/edit_tipo_mov_redem';\r\nimport EditPromocion from '../components/dialogs/mae_redemption_promocion/edit_promocion';\r\nimport EditNuevoAlbaran from '../components/dialogs/ent_albaran_pdte/edit_nuevo_albaran';\r\nimport EditListaAlbaran from '../components/dialogs/ent_pedido/edit_lista_albaran';\r\nimport EditInventario from '../components/dialogs/acc_inventario/edit_inventario';\r\nimport EditCvMotivo from '../components/dialogs/mae_redemption_motivo/edit_motivo';\r\nimport EditCodigoBarras from '../components/dialogs/mae_redemption_articulo/edit_codigo_barras';\r\nimport ListArticulos from '../components/dialogs/mae_redemption_articulo/list_articulos_dialog';\r\nimport EditSegmentacion from '../components/dialogs/mae_redemption_segmentacion/edit_segmentacion';\r\n\r\nimport ChangePasswordDialog from '../containers/change_password_dialog';\r\n\r\nimport ReportDataGrid from '../containers/report_datagrid';\r\n\r\nconst styles = theme => ({\r\n\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing(1) * 50,\r\n height: '500px',\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(1) * 4,\r\n }\r\n\r\n});\r\n\r\n\r\nconst MODAL_COMPONENTS = {\r\n 'EditCvGrupoPartida': EditCvGrupoPartida,\r\n 'EditCvTipoPartida': EditCvTipoPartida,\r\n 'EditCvTipoArticulo': EditCvTipoArticulo,\r\n 'EditCvTipoGasto': EditCvTipoGasto,\r\n 'EditCvTipoMaquina': EditCvTipoMaquina,\r\n 'EditVModeloMaquina': EditVModeloMaquina,\r\n 'EditCvTipoZona': EditCvTipoZona,\r\n 'EditCajaCentro': EditCajaCentro,\r\n 'EditZonaIvaCentro': EditZonaIvaCentro,\r\n 'EditZonaCentro': EditZonaCentro,\r\n 'EditContabCentro': EditContabCentro,\r\n 'CentroNew': CentroNew,\r\n 'MoreDetailsCentro': MoreDetailsCentro,\r\n 'EditCentroCentro': EditCentroCentro,\r\n 'EditCentroUsuario': EditCentroUsuario,\r\n 'EditCvTipoZonaIva': EditCvTipoZonaIva,\r\n 'EditFondo': EditFondo,\r\n\r\n //cierre diario\r\n 'CierreDiarioMKTGrid': CierreDiarioMKTGrid,\r\n 'EditMktGrid': EditMktGrid,\r\n 'CierreDiarioArcadeGrid': CierreDiarioArcadeGrid,\r\n 'MaeAuxiliaresTipoZona': MaeAuxiliaresTipoZona,\r\n 'EditArcadeGrid': EditArcadeGrid,\r\n 'CierreDiarioGastosGrid': CierreDiarioGastosGrid,\r\n 'EditGastosGrid': EditGastosGrid,\r\n 'CierreDiarioPartidasTipoGrid': CierreDiarioPartidasTipoGrid,\r\n 'EditPartidasPorTipoGrid': EditPartidasPorTipoGrid,\r\n 'CierreDiarioPorHoras': CierreDiarioPorHoras,\r\n 'Arqueo': Arqueo,\r\n 'CierreDiarioObservaciones': CierreDiarioObservaciones,\r\n\r\n 'EditZonaTipoPartida': EditZonaTipoPartida,\r\n 'EditZonaProduct': EditZonaProduct,\r\n 'EditZonaProductCaja': EditZonaProductCaja,\r\n 'EditContadorMaquina': EditContadorMaquina,\r\n 'EditIncidenciaMaquina': EditIncidenciaMaquina,\r\n 'EditLicenciaMaquina': EditLicenciaMaquina,\r\n 'EditItvMaquina': EditItvMaquina,\r\n 'EditCentroMaquina': EditCentroMaquina,\r\n 'SimpleMessage': SimpleMessage,\r\n 'ConfirmationDialog': ConfirmationDialog,\r\n\r\n //cierre semanal\r\n 'CierreSemanalLecturasArcade': CierreSemanalLecturasArcade,\r\n 'CierreSemanalLecturasArcadeDetail': CierreSemanalLecturasArcadeDetail,\r\n 'EditLectArcade': EditLectArcade,\r\n 'CierreSemanalResumenVisas': CierreSemanalResumenVisas,\r\n 'CierreSemanalResumenGastos': CierreSemanalResumenGastos,\r\n 'CierreSemanalResumenMKT': CierreSemanalResumenMKT,\r\n 'CierreSemanalResumenBanco': CierreSemanalResumenBanco,\r\n 'CalendarioSemanal': CalendarioSemanal,\r\n\r\n //presupuestos\r\n 'IncrPresupuestos': IncrPresupuestos,\r\n 'PresupuestoDetalle': PresupuestoDetalle,\r\n\r\n 'SelectMaquina': SelectMaquina,\r\n 'EditIncidencia': EditIncidencia,\r\n\r\n 'EditLecturasContador': EditLecturasContador,\r\n 'ListaMovimientos': ListaMovimientos,\r\n\r\n 'CentroMailing': CentroMailing,\r\n\r\n 'PdfViewer': PdfViewer,\r\n 'ReportGeneric': ReportGeneric,\r\n 'ReportRankingMaquinas': ReportRankingMaquinas,\r\n 'ReportRegalosEntregados':ReportRegalosEntregados,\r\n 'TextBoxDialog': TextBoxDialog,\r\n\r\n // maestros redemption\r\n 'EditCvFamilia': EditCvFamilia,\r\n 'EditCvSubFamilia': EditCvSubFamilia,\r\n 'EditTipoFicha': EditTipoFicha,\r\n 'EditTipoFichaSub': EditTipoFichaSub,\r\n 'EditTipoMovRedem': EditTipoMovRedem,\r\n 'EditPromocion': EditPromocion,\r\n 'EditCvMotivo': EditCvMotivo,\r\n 'ListArticulos': ListArticulos,\r\n 'EditSegmentacion': EditSegmentacion,\r\n\r\n // redemption\r\n 'EditListaAlbaran': EditListaAlbaran,\r\n 'EditNuevoAlbaran': EditNuevoAlbaran,\r\n 'EditInventario': EditInventario,\r\n 'EditCodigoBarras' : EditCodigoBarras,\r\n\r\n 'ReportDataGrid': ReportDataGrid,\r\n\r\n 'ChangePasswordDialog': ChangePasswordDialog,\r\n\r\n};\r\n\r\nclass DialogsRoot extends Component {\r\n\r\n render() {\r\n return (\r\n
\r\n {this.props.dialogs.map((dialog, index) => {\r\n let top = index * 5;\r\n let left = index * 5;\r\n const SpecificModal = MODAL_COMPONENTS[dialog.modalType];\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nDialogsRoot.propTypes = {\r\n //state:\r\n dialogs: PropTypes.array.isRequired,\r\n //dispatch:\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n dialogs: state.dialogs\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({ hideDialog: hideDialog }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles, { withTheme: true })(DialogsRoot))","import { ContactlessOutlined } from \"@material-ui/icons\";\r\n\r\nexport function GetKDfromString(pathname) {\r\n let centro_id = -1, nombre_empresa = \"\";\r\n\r\n if (pathname.includes(\"feccoslada\")) {\r\n centro_id = 61; nombre_empresa = \"FEC Coslada\";\r\n } else if (pathname.includes(\"fecbilbao2020\")) {\r\n centro_id = 12; nombre_empresa = \"FEC Bilbao 2020\";\r\n } else if (pathname.includes(\"alcobendasentertainment\")) {\r\n centro_id = 14; nombre_empresa = \"Alcobendas Ent.\";\r\n } else if (pathname.includes(\"albaceteocio2015\")) {\r\n centro_id = 98; nombre_empresa = \"Albacete Ocio\";\r\n } else if (pathname.includes(\"bowlingstation2015\")) {\r\n centro_id = 41; nombre_empresa = \"Bowling Station\";\r\n } else if (pathname.includes(\"bolerabaliak\")) {\r\n centro_id = 43; nombre_empresa = \"Bowling Baliak\";\r\n } else if (pathname.includes(\"boleraxanadu2010\")) {\r\n centro_id = 102; nombre_empresa = \"Bolera Xanadu 2010\";\r\n } else if (pathname.includes(\"bolerarec2000\")) {\r\n centro_id = 96; nombre_empresa = \"Bolera REC 2000\";\r\n } else if (pathname.includes(\"boleralaplana\")) {\r\n centro_id = 99; nombre_empresa = \"Bolera La Plana\";\r\n } else if (pathname.includes(\"bowlinggirones\")) {\r\n centro_id = 56; nombre_empresa = \"Bowling Girones\";\r\n } else if (pathname.includes(\"boleracentrosdejuego\")) {\r\n centro_id = 51; nombre_empresa = \"Centros de Juego\";\r\n } else if (pathname.includes(\"bowlingdaro\")) {\r\n centro_id = 1; nombre_empresa = \"Bowling d'Aro\";\r\n } else if (pathname.includes(\"barnaocio2015\")) {\r\n centro_id = 86; nombre_empresa = \"Barna Ocio 2015\";\r\n } else if (pathname.includes(\"pamplonabowling\")) {\r\n centro_id = 64; nombre_empresa = \"Pamplona Bowling\";\r\n } else if (pathname.includes(\"neuritelab\")) {\r\n centro_id = 0; nombre_empresa = \"Neurite Lab\";\r\n }\r\n\r\n return { empresa: nombre_empresa, centro_id: centro_id };\r\n}\r\n\r\nexport function GetOriginfromPathname() {\r\n\r\n const pathname = window.location.pathname;\r\n if (pathname.includes(\"feccoslada\")) return ('https://feccoslada.com') ;\r\n else if (pathname.includes(\"fecbilbao2020\")) return ('https://fecbilbao2020.com') ;\r\n else if (pathname.includes(\"alcobendasentertainment\")) return ('https://alcobendasentertainment.com') ;\r\n else if (pathname.includes(\"albaceteocio2015\")) return ('https://albaceteocio2015.com') ;\r\n else if (pathname.includes(\"bowlingstation2015\")) return ('https://bowlingstation2015.com') ;\r\n else if (pathname.includes(\"bolerabaliak\")) return ('https://bolerabaliak.com') ;\r\n else if (pathname.includes(\"boleraxanadu2010\")) return ('https://boleraxanadu2010.com') ;\r\n else if (pathname.includes(\"bolerarec2000\")) return ('https://bolerarec2000.com') ;\r\n else if (pathname.includes(\"boleralaplana\")) return ('https://boleralaplana.com') ;\r\n else if (pathname.includes(\"bowlinggirones\")) return ('https://bowlinggirones.com') ;\r\n else if (pathname.includes(\"boleracentrosdejuego\")) return ('https://boleracentrosdejuego.com') ;\r\n else if (pathname.includes(\"bowlingdaro\")) return ('https://bowlingdaro.com') ;\r\n else if (pathname.includes(\"barnaocio2015\")) return ('https://barnaocio2015.com') ;\r\n else if (pathname.includes(\"pamplonabowling\")) return ('https://pamplonabowling.com') ;\r\n else if (pathname.includes(\"neuritelab\")) return ('https://neuritelab.com') ;\r\n else return ('');\r\n}\r\n\r\n\r\nexport function HasKDpath() {\r\n return GetKDfromString(window.location.pathname).centro_id !== -1;\r\n}\r\n\r\nfunction hasUserLoggedIn() {\r\n return window.hasUserKD !== undefined;\r\n}\r\n\r\nfunction comesFromIframe() {\r\n return window.location.ancestorOrigins[0] !== undefined;\r\n //fbpkd\r\n //return true;\r\n}\r\n\r\nexport function setKDuserLoggedIn() {\r\n window.hasUserKD = true;\r\n}\r\n\r\nexport function IsKD_Login() {\r\n //return (hasKDpath() && !hasUserLoggedIn() && !comesFromIframe()); comentado hasta que funcione hasUserLoggedIn()\r\n return (HasKDpath() && !comesFromIframe());\r\n}\r\n\r\nexport function IsKD_Inventario() {\r\n //return (hasKDpath() && hasUserLoggedIn() && comesFromIframe()); comentado hasta que funcione hasUserLoggedIn()\r\n return (comesFromIframe());\r\n}\r\n\r\n// export function IsTCG_Login()\r\n// {\r\n// return (!HasKDpath() && ! HasUserLoggedIn() && ! ComesFromIframe());\r\n// }\r\n\r\n// export function NonStandardAccess()\r\n// {\r\n// return (!IsTCG_Login() && !IsKD_Login() && !IsKD_Inventario());\r\n// }\r\n\r\nexport function SetKD() {\r\n window.location.kd = window.location.ancestorOrigins[0];\r\n //fbpkd \r\n //window.location.kd = window.location.ancestorOrigins[0] ? window.location.ancestorOrigins[0] : \"http://feccoslada.com\";\r\n}\r\n\r\nexport function AfterKDlogin() {\r\n setKDuserLoggedIn();\r\n}","import { createUserManager } from 'redux-oidc';\r\nimport { IsKD_Login, HasKDpath, IsKD_Inventario } from './KDgeneric';\r\n\r\n/////////////////// LOCAL\r\n/* const userManagerConfig = {\r\n client_id: 'js-local',\r\n redirect_uri: 'http://localhost:3000/callback.html',\r\n response_type: 'token id_token',\r\n scope: 'openid profile ilusionaapi',\r\n // scope: 'openid profile neuriteapi',\r\n authority: 'https://ilusionaClubIdentityserver.azurewebsites.net/',\r\n // authority: 'https://neuriteidentityserver20181019042600.azurewebsites.net/',\r\n silent_redirect_uri: 'http://localhost:3000/silent_renew.html',\r\n automaticSilentRenew: true,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n}; */\r\n\r\n/////////////////// LOCAL - 3AGUAS\r\n// const userManagerConfig = {\r\n// client_id: 'js-local',\r\n// redirect_uri: 'http://localhost:3000/callback.html',\r\n// response_type: 'token id_token',\r\n// scope: 'openid profile ilusionaapi',\r\n// // scope: 'openid profile neuriteapi',\r\n// authority: 'https://3aguas-identityserver.azurewebsites.net/',\r\n// // authority: 'https://neuriteidentityserver20181019042600.azurewebsites.net/',\r\n// silent_redirect_uri: 'http://localhost:3000/silent_renew.html',\r\n// automaticSilentRenew: true,\r\n// filterProtocolClaims: true,\r\n// loadUserInfo: true,\r\n// };\r\n\r\n\r\n/////////////////// test-n-ilu\r\n// const userManagerConfig = {\r\n// client_id: 'js-ilusiona',\r\n// redirect_uri: 'https://test-n-ilu.azurewebsites.net/callback.html',\r\n// response_type: 'token id_token',\r\n// scope: 'openid profile ilusionaapi',\r\n// //scope: 'openid profile neuriteapi',\r\n// authority: 'https://ilusionaIdentityserver.azurewebsites.net/',\r\n// //authority: 'https://neuriteidentityserver20181019042600.azurewebsites.net/',\r\n// silent_redirect_uri: 'https://test-n-ilu.azurewebsites.net/silent_renew.html',\r\n// automaticSilentRenew: true,\r\n// filterProtocolClaims: true,\r\n// loadUserInfo: true,\r\n// };\r\n\r\n\r\n/////////////////// debug-n-ilu\r\n// const userManagerConfig = {\r\n// client_id: 'js-ilusiona-debug',\r\n// redirect_uri: 'https://debug-n-ilu.azurewebsites.net/callback.html',\r\n// response_type: 'token id_token',\r\n// scope: 'openid profile ilusionaapi',\r\n// //scope: 'openid profile neuriteapi',\r\n// authority: 'https://ilusionaIdentityserver.azurewebsites.net/',\r\n// //authority: 'https://neuriteidentityserver20181019042600.azurewebsites.net/',\r\n// silent_redirect_uri: 'https://debug-n-ilu.azurewebsites.net/silent_renew.html',\r\n// automaticSilentRenew: true,\r\n// filterProtocolClaims: true,\r\n// loadUserInfo: true,\r\n// };\r\n\r\n\r\n/////////////////// ilusionadataanalytics\r\n// const userManagerConfig = {\r\n// client_id: 'js-ilusionadataanalytics',\r\n// redirect_uri: 'https://ilusionadataanalytics.azurewebsites.net/callback.html',\r\n// response_type: 'token id_token',\r\n// scope: 'openid profile ilusionaapi',\r\n// //scope: 'openid profile neuriteapi',\r\n// authority: 'https://ilusionaIdentityserver.azurewebsites.net/',\r\n// //authority: 'https://neuriteidentityserver20181019042600.azurewebsites.net/',\r\n// silent_redirect_uri: 'https://ilusionadataanalytics.azurewebsites.net/silent_renew.html',\r\n// automaticSilentRenew: true,\r\n// filterProtocolClaims: true,\r\n// loadUserInfo: true,\r\n// };\r\n\r\n// /////////////////// 3aguas-tcg\r\n/* const userManagerConfig = {\r\n client_id: 'js-3aguas-client',\r\n redirect_uri: 'https://3aguas-tcg.azurewebsites.net/callback.html',\r\n response_type: 'token id_token',\r\n scope: 'openid profile ilusionaapi',\r\n //scope: 'openid profile neuriteapi',\r\n authority: 'https://3aguas-identityserver.azurewebsites.net/',\r\n silent_redirect_uri: 'https://3aguas-tcg.azurewebsites.net/silent_renew.html',\r\n automaticSilentRenew: true,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n }; */\r\n\r\n\r\n// NOOOOOOOOOOOOO\r\n// const userManagerConfig = {\r\n// client_id: 'js-ilusiona',\r\n// redirect_uri: 'https://test-n-ilu.azurewebsites.net/callback.html',\r\n// response_type: 'token id_token',\r\n// scope: 'openid profile neuriteapi',\r\n// authority: 'https://ilusionaIdentityserver.azurewebsites.net/',\r\n// silent_redirect_uri: 'https://test-n-ilu.azurewebsites.net/silent_renew.html',\r\n// automaticSilentRenew: true,\r\n// filterProtocolClaims: true,\r\n// loadUserInfo: true,\r\n// };\r\n\r\n// const userManagerConfig = {\r\n// client_id: 'js',\r\n// redirect_uri: 'https://neurite-client.azurewebsites.net/callback.html',\r\n// response_type: 'token id_token',\r\n// scope: 'openid profile neuriteapi',\r\n// authority: 'https://neuriteidentityserver20181019042600.azurewebsites.net/',\r\n// silent_redirect_uri: 'https://neurite-client.azurewebsites.net/silent_renew.html',\r\n// automaticSilentRenew: true,\r\n// filterProtocolClaims: true,\r\n// loadUserInfo: true,\r\n// };\r\n\r\nconst userManagerConfig = () => {\r\n if (!IsKD_Login()) {\r\n switch (process.env.REACT_APP_CLIENT) {\r\n case \"3aguas-local\":\r\n return {\r\n client_id: 'js-local',\r\n redirect_uri: 'http://localhost:3000/callback.html',\r\n response_type: 'token id_token',\r\n scope: 'openid profile ilusionaapi',\r\n authority: 'https://3aguas-identityserver.azurewebsites.net/',\r\n silent_redirect_uri: 'http://localhost:3000/silent_renew.html',\r\n post_logout_redirect_uri: 'http://localhost:3000/index.html',\r\n automaticSilentRenew: true,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n }\r\n case \"3aguas\":\r\n return {\r\n client_id: 'js-3aguas-client',\r\n redirect_uri: 'https://3aguas-tcg.azurewebsites.net/callback.html',\r\n response_type: 'token id_token',\r\n scope: 'openid profile ilusionaapi',\r\n authority: 'https://3aguas-identityserver.azurewebsites.net/',\r\n silent_redirect_uri: 'https://3aguas-tcg.azurewebsites.net/silent_renew.html',\r\n post_logout_redirect_uri: 'https://3aguas-tcg.azurewebsites.net/index.html',\r\n automaticSilentRenew: true,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n }\r\n case \"Ilusiona-local\":\r\n return {\r\n client_id: 'js-local',\r\n redirect_uri: 'http://localhost:3000/callback.html',\r\n response_type: 'token id_token',\r\n scope: 'openid profile ilusionaapi',\r\n authority: 'https://ilusionaClubIdentityserver.azurewebsites.net/',\r\n //authority: 'https://ilusionaidentityservertest.azurewebsites.net/',\r\n //authority: 'https://localhost:5003/',\r\n silent_redirect_uri: 'http://localhost:3000/silent_renew.html',\r\n post_logout_redirect_uri: 'http://localhost:3000/index.html',\r\n automaticSilentRenew: true,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n }\r\n case \"Ilusiona\":\r\n // return {\r\n // client_id: 'js-ilusiona-debug',\r\n // redirect_uri: 'https://debug-n-ilu.azurewebsites.net/callback.html',\r\n // response_type: 'token id_token',\r\n // scope: 'openid profile ilusionaapi',\r\n // authority: 'https://ilusionaClubIdentityserver.azurewebsites.net/',\r\n // silent_redirect_uri: 'https://debug-n-ilu.azurewebsites.net/silent_renew.html',\r\n // automaticSilentRenew: true,\r\n // filterProtocolClaims: true,\r\n // loadUserInfo: true,\r\n // }\r\n if (HasKDpath() || IsKD_Inventario()) {\r\n return {\r\n client_id: 'js-ilusiona-tcg-sinlogout',\r\n redirect_uri: 'https://tcg.ilusiona.com/callback.html',\r\n response_type: 'token id_token',\r\n scope: 'openid profile ilusionaapi',\r\n authority: 'https://ilusionaClubIdentityserver.azurewebsites.net/',\r\n silent_redirect_uri: 'https://tcg.ilusiona.com/silent_renew.html',\r\n post_logout_redirect_uri: 'https://tcg.ilusiona.com/logout.html',\r\n automaticSilentRenew: true,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n }\r\n } else {\r\n return {\r\n client_id: 'js-ilusiona-tcg',\r\n redirect_uri: 'https://tcg.ilusiona.com/callback.html',\r\n response_type: 'token id_token',\r\n scope: 'openid profile ilusionaapi',\r\n authority: 'https://ilusionaClubIdentityserver.azurewebsites.net/',\r\n silent_redirect_uri: 'https://tcg.ilusiona.com/silent_renew.html',\r\n post_logout_redirect_uri: 'https://tcg.ilusiona.com/index.html',\r\n automaticSilentRenew: true,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n }\r\n }\r\n\r\n default:\r\n break;\r\n }\r\n } else {\r\n // Para kd el callback es al callback de KD\r\n switch (process.env.REACT_APP_CLIENT) {\r\n case \"Ilusiona-local\":\r\n return {\r\n client_id: 'js-local-kd',\r\n redirect_uri: 'http://localhost:3000/callback_kd.html',\r\n response_type: 'token id_token',\r\n scope: 'openid profile ilusionaapi',\r\n authority: 'https://ilusionaClubIdentityserver.azurewebsites.net/',\r\n //authority: 'https://ilusionaidentityserver.azurewebsites.net/',\r\n //authority: 'https://localhost:5003/',\r\n silent_redirect_uri: 'http://localhost:3000/silent_renew.html',\r\n post_logout_redirect_uri: 'http://localhost:3000/index.html',\r\n automaticSilentRenew: true,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n }\r\n case \"Ilusiona\":\r\n return {\r\n client_id: 'js-ilusiona-tcg-kd',\r\n redirect_uri: 'https://tcg.ilusiona.com/callback_kd.html',\r\n response_type: 'token id_token',\r\n scope: 'openid profile ilusionaapi',\r\n authority: 'https://ilusionaClubIdentityserver.azurewebsites.net/',\r\n //authority: 'https://ilusionaidentityserver.azurewebsites.net/',\r\n silent_redirect_uri: 'https://tcg.ilusiona.com/silent_renew.html',\r\n post_logout_redirect_uri: 'https://tcg.ilusiona.com/index.html',\r\n automaticSilentRenew: true,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n }\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n\r\nconst userManager = createUserManager(userManagerConfig());\r\n\r\nexport default userManager;","import React from \"react\";\r\nimport { CallbackComponent } from \"redux-oidc\";\r\nimport userManager from \"../userManager\";\r\n\r\nclass CallbackPage extends React.Component {\r\n render() {\r\n // just redirect to '/' in both cases\r\n return (\r\n {\r\n console.log('callback');\r\n this.props.history.push(\"/\")\r\n }}\r\n errorCallback={error => {\r\n //this.props.history.push(\"/\");\r\n userManager.signinRedirect();\r\n console.error(error);\r\n }}\r\n >\r\n
Redirecting...
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default CallbackPage;","import React from \"react\";\r\nimport { CallbackComponent } from \"redux-oidc\";\r\nimport userManager from \"../userManager\";\r\nimport { AfterKDlogin } from \"../KDgeneric\"\r\n\r\n\r\nclass CallbackPageKD extends React.Component {\r\n render() {\r\n AfterKDlogin();\r\n document.title = 'Neurite login';\r\n var link = document.querySelector(\"link[rel~='icon']\");\r\n link.href = \"/Ilusiona_fav.png\";\r\n return (\r\n
\r\n Login ok. Puede acceder al área corportativa.\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CallbackPageKD; ","import React from \"react\";\r\n\r\n//REDUX\r\nimport { useSelector } from \"react-redux\";\r\n\r\n//#region CSS\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n position: \"fixed\",\r\n top: 0,\r\n bottom: 0,\r\n right: 0,\r\n left: 0,\r\n zIndex: 2050,\r\n background: \"center no-repeat rgba(16, 3, 75, 0.3)\"\r\n },\r\n spinner: {\r\n position: \"absolute\",\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n margin: \"auto\"\r\n }\r\n}));\r\n//#endregion\r\n\r\nexport default function Loading() {\r\n const classes = useStyles();\r\n\r\n const loading = useSelector(state => state.loading);\r\n const loadingEmpresa = useSelector(state => state.empresas.isLoading);\r\n const loadingCentro = useSelector(state => state.centros.isLoading);\r\n const loadingZonaCentro = useSelector(state => state.zonasCentro.isLoading);\r\n const loadingGrupoPartida = useSelector(state => state.grupoPartida.isLoading);\r\n const loadingModeloMaq = useSelector(state => state.modelosMaquina.isLoading);\r\n const loadingPerfilUsuario = useSelector(state => state.perfilesUsuario.isLoading);\r\n const loadingUsuarioCentros = useSelector(state => state.usuarioCentros.isLoading);\r\n const loadingTipoArticulo = useSelector(state => state.tiposArticulo.isLoading);\r\n const loadingTiposMaquina = useSelector(state => state.tiposMaquina.isLoading);\r\n const loadingTiposPartida = useSelector(state => state.tiposPartida.isLoading);\r\n const loadingTiposZona = useSelector(state => state.tiposZona.isLoading);\r\n const loadingTiposZonaIva = useSelector(state => state.tipoZonaIva.isLoading);\r\n const loadingCajasCentro = useSelector(state => state.cajasCentro.isLoading);\r\n const loadingPromotion = useSelector(state => state.promocion.isLoading);\r\n const loadingFamilia = useSelector(state => state.familia.isLoading);\r\n const loadingSubFamilia = useSelector(state => state.subFamilia.isLoading);\r\n const loadingTipoFicha = useSelector(state => state.tipoFicha.isLoading);\r\n const loadingTipoFichaSub = useSelector(state => state.tipoFichaSub.isLoading);\r\n const loadingTipoMovRedem = useSelector(state => state.tipoMovRedem.isLoading);\r\n const loadingMotivo = useSelector(state => state.motivo.isLoading);\r\n const loadingMaeMaquina = useSelector(state => state.maeMaquinas.isLoading);\r\n\r\n\r\n const displayLoading = loading || loadingEmpresa || loadingCentro || loadingZonaCentro\r\n || loadingGrupoPartida || loadingModeloMaq || loadingPerfilUsuario || loadingUsuarioCentros\r\n || loadingTipoArticulo || loadingTiposMaquina || loadingTiposPartida || loadingTiposZona\r\n || loadingTiposZonaIva || loadingCajasCentro || loadingPromotion || loadingFamilia\r\n || loadingSubFamilia || loadingTipoFicha || loadingTipoFichaSub || loadingTipoMovRedem\r\n || loadingMotivo || loadingMaeMaquina\r\n ? (\r\n
\r\n \r\n
\r\n ) : null;\r\n\r\n return {displayLoading};\r\n}\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport { getUserProfile } from '../actions';\r\nimport { getAllCentros } from '../actions/centro_actions';\r\n\r\nimport * as config from '../constants/configuration';\r\nimport userManager from '../userManager';\r\n\r\nimport { Typography } from '@material-ui/core';\r\n\r\nimport { GetKDfromString, HasKDpath, IsKD_Inventario } from '../KDgeneric'\r\n\r\n//import { getEmpresas } from '../actions';\r\n\r\nconst styles = theme => ({\r\n img: {\r\n width: '100%',\r\n display: \"block\",\r\n marginBottom: \"20px\",\r\n marginTop: \"100px\"\r\n },\r\n button: {\r\n color: \"white\"\r\n }\r\n});\r\n\r\nclass Main extends Component {\r\n\r\n /* constructor(props){\r\n super(props);\r\n // this.state = {\r\n // centrosListLoaded : false\r\n // }\r\n } */\r\n\r\n componentDidUpdate(prevProps) {\r\n if (config.AUTH) { // && centros\r\n // if ((this.props.user !== prevProps.user || this.props.centros.length > 0 ) && this.props.user) {\r\n // //get user info\r\n // this.props.getUserProfile(this.props.user.profile.sub);\r\n // }\r\n\r\n if (this.props.user && (this.props.user !== prevProps.user)) {\r\n this.props.getAllCentros();\r\n }\r\n else if (this.props.user && this.props.centros.length > 0 && this.props.centros !== prevProps.centros) {\r\n this.props.getUserProfile(this.props.user.profile.sub, window.location.kd);\r\n }\r\n\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n // // if (this.props.user) { //get centros\r\n // //this.props.getUserProfile(this.props.user.profile.sub);\r\n // this.props.getAllCentros();\r\n // // }\r\n\r\n if (this.props.user) this.props.getAllCentros();\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const isKD = HasKDpath();\r\n let imagen = isKD ? \"/Ilusiona_fav.png\" : `${process.env.PUBLIC_URL}/${process.env.REACT_APP_CLIENT}.png`;\r\n\r\n if ( isKD )\r\n {\r\n let kd = GetKDfromString(window.location.pathname);\r\n document.title = kd.empresa;\r\n var link = document.querySelector(\"link[rel~='icon']\");\r\n link.href = imagen;\r\n }\r\n \r\n if (!this.props.user) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n\r\n};\r\n\r\nMain.propTypes = {\r\n //state:\r\n user: PropTypes.object,\r\n //dispatch:\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n getUserProfile,\r\n getAllCentros\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles, { withTheme: true })(Main));","const drawerOptionsAdmin = {\r\n \"INICIO\": [\r\n {\r\n children: [],\r\n text: 'Mi muro',\r\n divider: true,\r\n id: \"ini_mi_muro\",\r\n value: \"ini_mi_muro\"\r\n },\r\n {\r\n children: [],\r\n text: 'Desconexión',\r\n divider: false,\r\n id: \"ini_desconexion\",\r\n value: \"ini_desconexion\"\r\n }\r\n ],\r\n \"ACCIONES\": [\r\n {\r\n children: [],\r\n text: 'Cierre diario',\r\n divider: false,\r\n id: \"acc_cierre_diario\",\r\n value: \"acc_cierre_diario\"\r\n },\r\n {\r\n children: [],\r\n text: 'Cierre semanal',\r\n divider: true,\r\n id: \"acc_cierre_semanal\",\r\n value: \"acc_cierre_semanal\"\r\n },\r\n {\r\n children: [],\r\n text: 'Mover máquinas',\r\n divider: true,\r\n id: \"acc_mover_maquinas\",\r\n value: \"acc_mover_maquinas\"\r\n },\r\n {\r\n children: [],\r\n text: 'Exportar contabilidad',\r\n divider: true,\r\n id: \"acc_exportar_contabilidad\",\r\n value: \"acc_exportar_contabilidad\"\r\n },\r\n // {\r\n // children: [],\r\n // text: 'Desbloquear cierre diario',\r\n // divider: false,\r\n // id: \"acc_desbloquear_cierre_diario\",\r\n // value: \"acc_desbloquear_cierre_diario\"\r\n // },\r\n // {\r\n // children: [],\r\n // text: 'Desbloquear cierre semanal',\r\n // divider: false,\r\n // id: \"acc_desbloquear_cierre_semanal\",\r\n // value: \"acc_desbloquear_cierre_semanal\"\r\n // },\r\n {\r\n children: [],\r\n text: 'Desbloquear contabilidad',\r\n divider: false,\r\n id: \"acc_desbloquear_contabilidad\",\r\n value: \"acc_desbloquear_contabilidad\"\r\n },\r\n ],\r\n \"ENTRADA\": [\r\n {\r\n children: [],\r\n text: 'Gastos',\r\n divider: false,\r\n id: \"ent_gastos\",\r\n value: \"ent_gastos\"\r\n },\r\n {\r\n children: [],\r\n text: 'MKT',\r\n divider: false,\r\n id: \"ent_mkt\",\r\n value: \"ent_mkt\"\r\n },\r\n {\r\n children: [],\r\n text: 'Lectura Máq. Cambio',\r\n divider: false,\r\n id: \"ent_lectura_maq_cambio\",\r\n value: \"ent_lectura_maq_cambio\"\r\n },\r\n {\r\n children: [],\r\n text: 'Partidas por tipo',\r\n divider: true,\r\n id: \"ent_partidas_por_tipo\",\r\n value: \"ent_partidas_por_tipo\"\r\n },\r\n {\r\n children: [],\r\n text: 'Lectura Máq. Arcade',\r\n divider: false,\r\n id: \"ent_lectura_maq_arcade\",\r\n value: \"ent_lectura_maq_arcade\"\r\n },\r\n {\r\n children: [],\r\n text: 'Ingresos Banco',\r\n divider: true,\r\n id: \"ent_ingresos_banco\",\r\n value: \"ent_ingresos_banco\"\r\n },\r\n {\r\n children: [],\r\n text: 'Presupuestos',\r\n divider: true,\r\n id: \"ent_presupuestos\",\r\n value: \"ent_presupuestos\"\r\n },\r\n {\r\n children: [],\r\n text: 'Alertas',\r\n divider: false,\r\n id: \"ent_alertas\",\r\n value: \"ent_alertas\"\r\n },\r\n ],\r\n \"MAESTROS\": [\r\n {\r\n children: [],\r\n text: 'Usuarios',\r\n divider: false,\r\n id: \"mae_usuarios\",\r\n value: \"mae_usuarios\"\r\n },\r\n {\r\n children: [],\r\n text: 'Empresa',\r\n divider: false,\r\n id: \"mae_empresa\",\r\n value: \"mae_empresa\"\r\n },\r\n {\r\n children: [],\r\n text: 'Centro',\r\n divider: false,\r\n id: \"mae_centro\",\r\n value: \"mae_centro\"\r\n },\r\n {\r\n children: [],\r\n text: 'Zona',\r\n divider: false,\r\n id: \"mae_zona\",\r\n value: \"mae_zona\"\r\n },\r\n {\r\n children: [],\r\n text: 'Máquina',\r\n divider: false,\r\n id: \"mae_maquina\",\r\n value: \"mae_maquina\"\r\n },\r\n {\r\n children: [\r\n {\r\n children: [],\r\n text: 'Tipo zona',\r\n divider: true,\r\n id: \"mae_auxiliares_tipo_zona\",\r\n value: \"mae_auxiliares_tipo_zona\"\r\n },\r\n {\r\n children: [],\r\n text: 'Grupo partida',\r\n divider: false,\r\n id: \"mae_auxiliares_grupo_partida\",\r\n value: \"mae_auxiliares_grupo_partida\"\r\n },\r\n {\r\n children: [],\r\n text: 'Tipo partida',\r\n divider: true,\r\n id: \"mae_auxiliares_tipo_partida\",\r\n value: \"mae_auxiliares_tipo_partida\"\r\n },\r\n {\r\n children: [],\r\n text: 'Tipo máquina',\r\n divider: false,\r\n id: \"mae_auxiliares_tipo_maquina\",\r\n value: \"mae_auxiliares_tipo_maquina\"\r\n },\r\n {\r\n children: [],\r\n text: 'Modelo máquina',\r\n divider: true,\r\n id: \"mae_auxiliares_modelo_maquina\",\r\n value: \"mae_auxiliares_modelo_maquina\"\r\n },\r\n {\r\n children: [],\r\n text: 'Tipo producto',\r\n divider: true,\r\n id: \"mae_auxiliares_tipo_articulo\",\r\n value: \"mae_auxiliares_tipo_articulo\"\r\n },\r\n {\r\n children: [],\r\n text: 'Tipo gasto',\r\n divider: true,\r\n id: \"mae_auxiliares_tipo_gasto\",\r\n value: \"mae_auxiliares_tipo_gasto\"\r\n },\r\n {\r\n children: [],\r\n text: 'Perfiles de Usuario',\r\n divider: false,\r\n id: \"mae_auxiliares_perfiles_usuario\",\r\n value: \"mae_auxiliares_perfiles_usuario\"\r\n },\r\n ],\r\n text: 'Auxiliares',\r\n divider: false,\r\n id: \"mae_auxiliares\",\r\n value: \"\"\r\n },\r\n ],\r\n \"INFORMES\": [\r\n {\r\n children: [],\r\n text: 'Resumen diario',\r\n divider: false,\r\n id: \"inf_resumen_diario\",\r\n value: \"inf_resumen_diario\"\r\n },\r\n {\r\n children: [],\r\n text: 'Resumen semanal',\r\n divider: false,\r\n id: \"inf_resumen_semanal\",\r\n value: \"inf_resumen_semanal\"\r\n },\r\n // {\r\n // children: [],\r\n // text: '(Internos)',\r\n // divider: false,\r\n // id: \"inf_internos\",\r\n // value: \"inf_internos\"\r\n // },\r\n {\r\n children: [],\r\n text: 'Ventas',\r\n divider: false,\r\n id: \"inf_ventas\",\r\n value: \"inf_ventas\"\r\n },\r\n {\r\n children: [],\r\n text: 'Arcade',\r\n divider: false,\r\n id: \"inf_arcade\",\r\n value: \"inf_arcade\"\r\n },\r\n {\r\n children: [],\r\n text: 'Redemption',\r\n divider: true,\r\n id: \"inf_redemption\",\r\n value: \"inf_redemption\"\r\n },\r\n {\r\n children: [\r\n {\r\n children: [],\r\n text: 'Dias por año',\r\n divider: true,\r\n id: \"inf_dias_anyo\",\r\n value: \"inf_dias_anyo\"\r\n },\r\n {\r\n children: [],\r\n text: 'Descuadres de caja',\r\n divider: false,\r\n id: \"inf_descuadres_caja\",\r\n value: \"inf_descuadres_caja\"\r\n },\r\n // {\r\n // children: [],\r\n // text: 'Franjas horarias',\r\n // divider: true,\r\n // id: \"inf_franjas_horarias\",\r\n // value: \"inf_franjas_horarias\"\r\n // }\r\n ],\r\n text: 'Otros',\r\n divider: false,\r\n id: \"inf_otros\",\r\n value: \"\"\r\n }\r\n ]\r\n}\r\n\r\nconst drawerOptionsOther = {\r\n \"INICIO\": [\r\n {\r\n children: [],\r\n text: 'Mi muro',\r\n divider: true,\r\n id: \"ini_mi_muro\",\r\n value: \"ini_mi_muro\"\r\n },\r\n {\r\n children: [],\r\n text: 'Desconexión',\r\n divider: false,\r\n id: \"ini_desconexion\",\r\n value: \"ini_desconexion\"\r\n }\r\n ],\r\n \"ACCIONES\": [\r\n {\r\n children: [],\r\n text: 'Cierre diario',\r\n divider: false,\r\n id: \"acc_cierre_diario\",\r\n value: \"acc_cierre_diario\"\r\n },\r\n {\r\n children: [],\r\n text: 'Cierre semanal',\r\n divider: true,\r\n id: \"acc_cierre_semanal\",\r\n value: \"acc_cierre_semanal\"\r\n },\r\n {\r\n children: [],\r\n text: 'Mover máquinas',\r\n divider: true,\r\n id: \"acc_mover_maquinas\",\r\n value: \"acc_mover_maquinas\"\r\n },\r\n {\r\n children: [],\r\n text: 'Exportar contabilidad',\r\n divider: true,\r\n id: \"acc_exportar_contabilidad\",\r\n value: \"acc_exportar_contabilidad\"\r\n },\r\n {\r\n children: [],\r\n text: 'Desbloquear cierre diario',\r\n divider: false,\r\n id: \"acc_desbloquear_cierre_diario\",\r\n value: \"acc_desbloquear_cierre_diario\"\r\n },\r\n {\r\n children: [],\r\n text: 'Desbloquear cierre semanal',\r\n divider: false,\r\n id: \"acc_desbloquear_cierre_semanal\",\r\n value: \"acc_desbloquear_cierre_semanal\"\r\n },\r\n {\r\n children: [],\r\n text: 'Desbloquear contabilidad',\r\n divider: false,\r\n id: \"acc_desbloquear_contabilidad\",\r\n value: \"acc_desbloquear_contabilidad\"\r\n },\r\n ],\r\n \"ENTRADA\": [\r\n {\r\n children: [],\r\n text: 'Gastos',\r\n divider: false,\r\n id: \"ent_gastos\",\r\n value: \"ent_gastos\"\r\n },\r\n {\r\n children: [],\r\n text: 'MKT',\r\n divider: false,\r\n id: \"ent_mkt\",\r\n value: \"ent_mkt\"\r\n },\r\n {\r\n children: [],\r\n text: 'Lectura Máq. Cambio',\r\n divider: false,\r\n id: \"ent_lectura_maq_cambio\",\r\n value: \"ent_lectura_maq_cambio\"\r\n },\r\n {\r\n children: [],\r\n text: 'Partidas por tipo',\r\n divider: true,\r\n id: \"ent_partidas_por_tipo\",\r\n value: \"ent_partidas_por_tipo\"\r\n },\r\n {\r\n children: [],\r\n text: 'Lectura Máq. Arcade',\r\n divider: false,\r\n id: \"ent_lectura_maq_arcade\",\r\n value: \"ent_lectura_maq_arcade\"\r\n },\r\n {\r\n children: [],\r\n text: 'Ingresos Banco',\r\n divider: true,\r\n id: \"ent_ingresos_banco\",\r\n value: \"ent_ingresos_banco\"\r\n },\r\n {\r\n children: [],\r\n text: 'Presupuestos',\r\n divider: true,\r\n id: \"ent_presupuestos\",\r\n value: \"ent_presupuestos\"\r\n },\r\n {\r\n children: [],\r\n text: 'Alertas',\r\n divider: false,\r\n id: \"ent_alertas\",\r\n value: \"ent_alertas\"\r\n },\r\n ]\r\n}\r\n\r\n\r\nconst drawerOptionsProfiles = {\r\n \"INICIO\": [\r\n {\r\n children: [],\r\n text: 'Noticias',\r\n divider: true,\r\n id: \"ini_noticias\",\r\n value: \"ini_noticias\",\r\n profiles: [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 14, 15, 16, 17, 18, 19, 20, 21, 23],\r\n kd: 0,\r\n },\r\n // {\r\n // children: [],\r\n // text: 'Desconexión',\r\n // divider: false,\r\n // id: \"ini_desconexion\",\r\n // value: \"ini_desconexion\",\r\n // profiles: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\r\n // }\r\n ],\r\n \"ACCIONES\": [\r\n {\r\n children: [],\r\n text: 'Cierre diario',\r\n divider: false,\r\n id: \"acc_cierre_diario\",\r\n value: \"acc_cierre_diario\",\r\n profiles: [0, 2, 3, 4, 5, 8, 12, 14, 15, 17, 18],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Cierre semanal',\r\n divider: true,\r\n id: \"acc_cierre_semanal\",\r\n value: \"acc_cierre_semanal\",\r\n profiles: [0, 2, 3, 4, 5, 8, 14, 15, 17, 18],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Inventario mensual',\r\n divider: false,\r\n id: \"acc_inventario\",\r\n value: \"acc_inventario\",\r\n profiles: [0, 2, 3, 4, 5, 8, 14, 15, 16, 17, 18],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Mover máquinas',\r\n divider: true,\r\n id: \"acc_mover_maquinas\",\r\n value: \"acc_mover_maquinas\",\r\n profiles: [0, 2, 4, 5, 16, 17],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Exportar contabilidad',\r\n divider: true,\r\n id: \"acc_exportar_contabilidad\",\r\n value: \"acc_exportar_contabilidad\",\r\n profiles: [0, 5, 16, 17],\r\n kd: 0,\r\n },\r\n // {\r\n // children: [],\r\n // text: 'Desbloquear cierre diario',\r\n // divider: false,\r\n // id: \"acc_desbloquear_cierre_diario\",\r\n // value: \"acc_desbloquear_cierre_diario\"\r\n // },\r\n // {\r\n // children: [],\r\n // text: 'Desbloquear cierre semanal',\r\n // divider: false,\r\n // id: \"acc_desbloquear_cierre_semanal\",\r\n // value: \"acc_desbloquear_cierre_semanal\"\r\n // },\r\n {\r\n children: [],\r\n text: 'Desbloquear contabilidad',\r\n divider: false,\r\n id: \"acc_desbloquear_contabilidad\",\r\n value: \"acc_desbloquear_contabilidad\",\r\n profiles: [0, 5, 16, 17],\r\n kd: 0,\r\n },\r\n ],\r\n \"ENTRADA\": [\r\n {\r\n children: [],\r\n text: 'Gastos',\r\n divider: false,\r\n id: \"ent_gastos\",\r\n value: \"ent_gastos\",\r\n //profiles: [0, 2, 3, 4, 5, 6, 8]\r\n profiles: [],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'MKT',\r\n divider: false,\r\n id: \"ent_mkt\",\r\n value: \"ent_mkt\",\r\n //profiles: [0, 2, 3, 4, 5, 6, 8]\r\n profiles: [],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Lectura Máq. Cambio',\r\n divider: false,\r\n id: \"ent_lectura_maq_cambio\",\r\n value: \"ent_lectura_maq_cambio\",\r\n //profiles: [0, 2, 3, 4, 5, 6, 8]\r\n profiles: [],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Partidas por tipo',\r\n divider: true,\r\n id: \"ent_partidas_por_tipo\",\r\n value: \"ent_partidas_por_tipo\",\r\n //profiles: [0, 2, 3, 4, 5, 6, 8]\r\n profiles: [],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Lectura Máq. Arcade',\r\n divider: false,\r\n id: \"ent_lectura_maq_arcade\",\r\n value: \"ent_lectura_maq_arcade\",\r\n //profiles: [0, 2, 3, 4, 5, 6, 8]\r\n profiles: [],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Ingresos Banco',\r\n divider: true,\r\n id: \"ent_ingresos_banco\",\r\n value: \"ent_ingresos_banco\",\r\n //profiles: [0, 2, 3, 4, 5, 6, 8]\r\n profiles: [],\r\n kd: 0,\r\n },\r\n // {\r\n // children: [],\r\n // text: 'Presupuestos',\r\n // divider: true,\r\n // id: \"ent_presupuestos\",\r\n // value: \"ent_presupuestos\",\r\n // profiles: [0, 2, 3, 4, 5, 8]\r\n // },\r\n {\r\n children: [],\r\n text: 'Recepción Albaranes',\r\n divider: false,\r\n id: \"ent_albaran_pdte\",\r\n value: \"ent_albaran_pdte\",\r\n profiles: [0, 2, 3, 4, 5, 6, 14, 15, 16, 17, 18, 22],\r\n kd: 1,\r\n },\r\n {\r\n children: [],\r\n text: 'Alertas',\r\n divider: false,\r\n id: \"ent_alertas\",\r\n value: \"ent_alertas\",\r\n profiles: [0, 2, 3, 4, 5, 7, 8, 12, 14, 15, 18],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Hist. Albaranes',\r\n divider: false,\r\n id: \"ent_albaran_hist\",\r\n value: \"ent_albaran_hist\",\r\n profiles: [0, 2, 3, 4, 5, 6, 14, 15, 16, 17, 18, 22],\r\n kd: 1,\r\n },\r\n // {\r\n // children: [],\r\n // text: 'Pedidos / Albaranes',\r\n // divider: false,\r\n // id: \"ent_pedido\",\r\n // value: \"ent_pedido\",\r\n // profiles: [0, 2, 3, 4, 5, 6, 8]\r\n // },\r\n ],\r\n \"MAESTROS\": [\r\n {\r\n children: [],\r\n text: 'Usuarios',\r\n divider: false,\r\n id: \"mae_usuarios\",\r\n value: \"mae_usuarios\",\r\n profiles: [],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Empresa',\r\n divider: false,\r\n id: \"mae_empresa\",\r\n value: \"mae_empresa\",\r\n profiles: [0, 2, 4, 5, 17, 18, 20],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Centro',\r\n divider: false,\r\n id: \"mae_centro\",\r\n value: \"mae_centro\",\r\n profiles: [0, 2, 4, 5, 17, 18, 20],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Zona',\r\n divider: false,\r\n id: \"mae_zona\",\r\n value: \"mae_zona\",\r\n profiles: [0, 2, 4, 5, 17, 18],\r\n kd: 1,\r\n },\r\n {\r\n children: [],\r\n text: 'Máquina',\r\n divider: false,\r\n id: \"mae_maquina\",\r\n value: \"mae_maquina\",\r\n profiles: [0, 2, 4, 5, 16, 17, 18],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Presupuestos',\r\n divider: true,\r\n id: \"ent_presupuestos\",\r\n value: \"ent_presupuestos\",\r\n profiles: [0, 2, 3, 4, 5, 8, 17, 18, 20],\r\n kd: 0,\r\n },\r\n {\r\n children: [\r\n {\r\n children: [],\r\n text: 'Artículos',\r\n divider: true,\r\n id: \"mae_redemption_articulo\",\r\n value: \"mae_redemption_articulo\",\r\n profiles: [0, 2, 4, 5, 15, 16, 17, 18, 19, 20, 22],\r\n kd: 1,\r\n },\r\n {\r\n children: [],\r\n text: 'Promocion',\r\n divider: true,\r\n id: \"mae_redemption_promocion\",\r\n value: \"mae_redemption_promocion\",\r\n profiles: [0, 2, 4, 5, 15, 16, 17, 18, 19, 20],\r\n kd: 0,\r\n },\r\n // {\r\n // children: [],\r\n // text: 'Segmentación',\r\n // divider: true,\r\n // id: \"mae_redemption_segmentacion\",\r\n // value: \"mae_redemption_segmentacion\",\r\n // profiles: [0, 2, 4, 5, 15, 16, 17, 18, 19, 20]\r\n // },\r\n {\r\n children: [],\r\n text: 'Familia',\r\n divider: true,\r\n id: \"mae_redemption_familia\",\r\n value: \"mae_redemption_familia\",\r\n profiles: [0, 2, 4, 5, 15, 16, 17, 18, 19, 20],\r\n kd: 1,\r\n },\r\n {\r\n children: [],\r\n text: 'Sub-familia',\r\n divider: true,\r\n id: \"mae_redemption_sub_familia\",\r\n value: \"mae_redemption_sub_familia\",\r\n profiles: [0, 2, 4, 5, 15, 16, 17, 18, 19, 20],\r\n kd: 1,\r\n },\r\n {\r\n children: [],\r\n text: 'Ficha',\r\n divider: true,\r\n id: \"mae_redemption_tipo_ficha\",\r\n value: \"mae_redemption_tipo_ficha\",\r\n profiles: [0, 2, 4, 5, 15, 16, 17, 18, 19, 20],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Sub-ficha',\r\n divider: true,\r\n id: \"mae_redemption_tipo_ficha_sub\",\r\n value: \"mae_redemption_tipo_ficha_sub\",\r\n profiles: [0, 2, 4, 5, 15, 16, 17, 18, 19, 20],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Tipo Movimiento',\r\n divider: true,\r\n id: \"mae_redemption_tipo_mov_redem\",\r\n value: \"mae_redemption_tipo_mov_redem\",\r\n profiles: [0, 2, 4, 5, 15, 16, 17, 18, 19, 20],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Motivo',\r\n divider: true,\r\n id: \"mae_redemption_motivo\",\r\n value: \"mae_redemption_motivo\",\r\n profiles: [0, 2, 4, 5, 15, 16, 17, 18, 19, 20],\r\n kd: 0,\r\n },\r\n ],\r\n text: 'Redemption',\r\n divider: false,\r\n id: \"mae_redemption\",\r\n value: \"\",\r\n profiles: [0, 2, 4, 5, 15, 16, 17, 18, 19, 20, 22],\r\n kd: 1,\r\n },\r\n {\r\n children: [\r\n {\r\n children: [],\r\n text: 'Tipo zona',\r\n divider: true,\r\n id: \"mae_auxiliares_tipo_zona\",\r\n value: \"mae_auxiliares_tipo_zona\",\r\n profiles: [0, 2, 4, 5, 17, 18],\r\n kd: 1,\r\n },\r\n {\r\n children: [],\r\n text: 'Grupo partida',\r\n divider: false,\r\n id: \"mae_auxiliares_grupo_partida\",\r\n value: \"mae_auxiliares_grupo_partida\",\r\n profiles: [0, 2, 4, 5, 18],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Tipo partida',\r\n divider: true,\r\n id: \"mae_auxiliares_tipo_partida\",\r\n value: \"mae_auxiliares_tipo_partida\",\r\n profiles: [0, 2, 4, 5, 18],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Tipo máquina',\r\n divider: false,\r\n id: \"mae_auxiliares_tipo_maquina\",\r\n value: \"mae_auxiliares_tipo_maquina\",\r\n profiles: [0, 2, 4, 5, 16, 17],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Modelo máquina',\r\n divider: true,\r\n id: \"mae_auxiliares_modelo_maquina\",\r\n value: \"mae_auxiliares_modelo_maquina\",\r\n profiles: [0, 2, 4, 5, 16, 17],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Tipo producto',\r\n divider: true,\r\n id: \"mae_auxiliares_tipo_articulo\",\r\n value: \"mae_auxiliares_tipo_articulo\",\r\n profiles: [0, 2, 4, 5, 17, 18],\r\n kd: 1,\r\n },\r\n {\r\n children: [],\r\n text: 'Tipo gasto',\r\n divider: true,\r\n id: \"mae_auxiliares_tipo_gasto\",\r\n value: \"mae_auxiliares_tipo_gasto\",\r\n profiles: [0, 2, 4, 5, 17, 18],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Tipos de zona de IVA',\r\n divider: true,\r\n id: \"mae_auxiliares_tipo_zona_iva\",\r\n value: \"mae_auxiliares_tipo_zona_iva\",\r\n profiles: [0, 2, 4, 5, 17],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Perfiles de Usuario',\r\n divider: false,\r\n id: \"mae_auxiliares_perfiles_usuario\",\r\n value: \"mae_auxiliares_perfiles_usuario\",\r\n profiles: [0, 2, 4, 5, 15, 17, 18, 20],\r\n kd: 1,\r\n //profiles: []\r\n },\r\n ],\r\n text: 'Auxiliares',\r\n divider: false,\r\n id: \"mae_auxiliares\",\r\n value: \"\",\r\n profiles: [0, 2, 4, 5, 15, 16, 17, 18, 20],\r\n kd: 1,\r\n },\r\n ],\r\n \"INFORMES\": [\r\n {\r\n children: [],\r\n text: 'Resumen diario',\r\n divider: false,\r\n id: \"inf_resumen_diario\",\r\n value: \"inf_resumen_diario\",\r\n profiles: [0, 2, 3, 4, 5, 8, 14, 15, 16, 17, 18, 19, 20, 21],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Resumen semanal',\r\n divider: false,\r\n id: \"inf_resumen_semanal\",\r\n value: \"inf_resumen_semanal\",\r\n profiles: [0, 2, 3, 4, 5, 8, 14, 15, 16, 17, 18, 19, 20, 21],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Resumen ventas',\r\n divider: false,\r\n id: \"inf_resumen_ventas\",\r\n value: \"inf_resumen_ventas\",\r\n profiles: [0, 2, 3, 4, 5, 8, 14, 15, 17, 18, 19, 20, 21],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Ventas ...',\r\n divider: false,\r\n id: \"inf_ventas\",\r\n value: \"inf_ventas\",\r\n profiles: [0, 1, 2, 3, 4, 5, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Arcade ...',\r\n divider: false,\r\n id: \"inf_arcade\",\r\n value: \"inf_arcade\",\r\n profiles: [0, 1, 2, 3, 4, 5, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Redemption ...',\r\n divider: true,\r\n id: \"inf_redemption\",\r\n value: \"inf_redemption\",\r\n profiles: [0, 1, 2, 3, 4, 5, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21],\r\n kd: 0,\r\n },\r\n {\r\n children: [\r\n {\r\n children: [],\r\n text: 'Dias por año',\r\n divider: true,\r\n id: \"inf_dias_anyo\",\r\n value: \"inf_dias_anyo\",\r\n profiles: [0, 1, 2, 3, 4, 5, 8, 10, 14, 15, 16, 17, 18, 19, 20,21],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Descuadres de caja',\r\n divider: false,\r\n id: \"inf_descuadres_caja\",\r\n value: \"inf_descuadres_caja\",\r\n profiles: [0, 1, 2, 3, 4, 5, 8, 10, 14, 15, 16, 17, 18, 19, 20, 21],\r\n kd: 0,\r\n },\r\n // {\r\n // children: [],\r\n // text: 'Franjas horarias',\r\n // divider: true,\r\n // id: \"inf_franjas_horarias\",\r\n // value: \"inf_franjas_horarias\"\r\n // }\r\n ],\r\n text: 'Otros',\r\n divider: false,\r\n id: \"inf_otros\",\r\n value: \"\",\r\n profiles: [0, 1, 2, 3, 4, 5, 8, 10, 14, 15, 16, 17, 18, 19, 20, 21],\r\n kd: 0,\r\n }\r\n ],\r\n}\r\n\r\n\r\n\r\nexport const drawerOptions = {\r\n \"Admin\": drawerOptionsAdmin,\r\n \"Other\": drawerOptionsOther\r\n}\r\n\r\nexport function getDrawerOptions(iProfile, iUser, kd) {\r\n\r\n let optionsInicio = drawerOptionsProfiles[\"INICIO\"].slice();\r\n let optionsEntrada = drawerOptionsProfiles[\"ENTRADA\"].slice();\r\n let optionsInformes = drawerOptionsProfiles[\"INFORMES\"].slice();\r\n\r\n if (iUser === '795' || iUser === '1036') {\r\n optionsInicio.push(\r\n {\r\n children: [\r\n {\r\n children: [],\r\n text: 'Ventas',\r\n divider: false,\r\n id: \"ini_ventas\",\r\n value: \"ini_ventas\",\r\n profiles: [0, 2, 4, 5],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Arcades',\r\n divider: false,\r\n id: \"ini_arcades\",\r\n value: \"ini_arcades\",\r\n profiles: [0, 2, 4, 5],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Cierres',\r\n divider: true,\r\n id: \"ini_cierres\",\r\n value: \"ini_cierres\",\r\n profiles: [0, 2, 4, 5],\r\n kd: 0,\r\n }\r\n ],\r\n text: 'Mi Muro',\r\n divider: false,\r\n id: \"ini_mi_muro\",\r\n value: \"ini_mi_muro\",\r\n profiles: [0, 2, 4, 5],\r\n kd: 0,\r\n },\r\n {\r\n children: [],\r\n text: 'Test',\r\n divider: true,\r\n id: \"mae_redemption_segmentacion\",\r\n value: \"mae_redemption_segmentacion\",\r\n profiles: [0, 1, 2, 3, 4, 5, 8, 10],\r\n kd: 0,\r\n }\r\n );\r\n }\r\n else {\r\n optionsInicio.push(\r\n {\r\n children: [],\r\n text: 'Mi Muro',\r\n divider: false,\r\n id: \"ini_mi_muro\",\r\n value: \"ini_mi_muro\",\r\n profiles: [0, 2, 4, 5, 14, 15, 18, 19, 20, 21],\r\n kd: 1,\r\n }\r\n );\r\n }\r\n\r\n if (kd !== undefined) {\r\n optionsInicio.push({\r\n children: [],\r\n text: 'Importar',\r\n divider: false,\r\n id: \"ini_importar_kd\",\r\n value: \"ini_importar_kd\",\r\n profiles: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 16, 17, 18, 19, 20, 21],\r\n kd: 1,\r\n });\r\n\r\n optionsInicio.push(\r\n {\r\n children: [\r\n {\r\n children: [],\r\n text: 'General',\r\n divider: true,\r\n id: \"ini_mi_muro_kd\",\r\n value: \"ini_mi_muro_kd\",\r\n profiles: [0, 2, 4, 5],\r\n kd: 1,\r\n },\r\n {\r\n children: [],\r\n text: 'Cierres',\r\n divider: true,\r\n id: \"ini_cierres_kd\",\r\n value: \"ini_cierres_kd\",\r\n profiles: [0, 2, 4, 5],\r\n kd: 1,\r\n },\r\n {\r\n children: [],\r\n text: 'Ventas',\r\n divider: true,\r\n id: \"ini_ventas_kd\",\r\n value: \"ini_ventas_kd\",\r\n profiles: [0, 2, 4, 5],\r\n kd: 1,\r\n }\r\n ],\r\n text: 'Dashboard',\r\n divider: false,\r\n id: \"dashboard\",\r\n value: \"\",\r\n profiles: [0, 2, 4, 5],\r\n kd: 1,\r\n },\r\n {\r\n children: [],\r\n text: 'Test',\r\n divider: true,\r\n id: \"mae_redemption_segmentacion\",\r\n value: \"mae_redemption_segmentacion\",\r\n profiles: [0, 1, 2, 3, 4, 5, 8, 10],\r\n kd: 0,\r\n }\r\n );\r\n\r\n optionsEntrada.push(\r\n {\r\n children: [],\r\n text: 'Inventario mensual',\r\n divider: false,\r\n id: \"acc_inventario\",\r\n value: \"acc_inventario\",\r\n profiles: [0, 2, 3, 4, 5, 8, 14, 15, 16, 17, 18],\r\n kd: 1,\r\n }\r\n );\r\n\r\n optionsInformes.push(\r\n {\r\n children: [],\r\n text: 'Informes ...',\r\n divider: true,\r\n id: \"inf_redemption\",\r\n value: \"inf_redemption\",\r\n profiles: [0, 1, 2, 3, 4, 5, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21],\r\n kd: 1,\r\n },\r\n );\r\n\r\n }\r\n\r\n optionsInicio.push({\r\n children: [],\r\n text: 'Desconexión',\r\n divider: false,\r\n id: \"ini_desconexion\",\r\n value: \"ini_desconexion\",\r\n profiles: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 16, 17, 18, 19, 20, 21],\r\n kd: 1,\r\n });\r\n\r\n const filteredOptions = {};\r\n filteredOptions[\"INICIO\"] = optionsInicio.filter(c => c.profiles.includes(iProfile) && (kd === undefined || c.kd === 1)).map(item => filterOptions(item, iProfile, kd));\r\n filteredOptions[\"ACCIONES\"] = drawerOptionsProfiles[\"ACCIONES\"].filter(c => c.profiles.includes(iProfile) && (kd === undefined || c.kd === 1)).map(item => filterOptions(item, iProfile, kd));\r\n filteredOptions[\"ENTRADA\"] = optionsEntrada.filter(c => c.profiles.includes(iProfile) && (kd === undefined || c.kd === 1)).map(item => filterOptions(item, iProfile, kd));\r\n filteredOptions[\"INFORMES\"] = optionsInformes.filter(c => c.profiles.includes(iProfile) && (kd === undefined || c.kd === 1)).map(item => filterOptions(item, iProfile, kd));\r\n filteredOptions[\"MAESTROS\"] = drawerOptionsProfiles[\"MAESTROS\"].filter(c => c.profiles.includes(iProfile) && (kd === undefined || c.kd === 1)).map(item => filterOptions(item, iProfile, kd));\r\n\r\n const options = {};\r\n if (filteredOptions[\"INICIO\"].length > 0) options[\"INICIO\"] = filteredOptions[\"INICIO\"];\r\n if (filteredOptions[\"ACCIONES\"].length > 0) options[\"ACCIONES\"] = filteredOptions[\"ACCIONES\"];\r\n if (filteredOptions[\"ENTRADA\"].length > 0) options[\"ENTRADA\"] = filteredOptions[\"ENTRADA\"];\r\n if (filteredOptions[\"INFORMES\"].length > 0) options[\"INFORMES\"] = filteredOptions[\"INFORMES\"];\r\n if (filteredOptions[\"MAESTROS\"].length > 0) options[\"MAESTROS\"] = filteredOptions[\"MAESTROS\"];\r\n\r\n return options;\r\n\r\n}\r\n\r\nfunction filterOptions(node, iProfile, kd) {\r\n\r\n return { ...node, children: node.children.filter(c => c.profiles.includes(iProfile) && (kd === undefined || c.kd === 1)).map((item) => filterOptions(item, iProfile)) };\r\n\r\n}\r\n","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router'\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { CHANGEVERSIONBUILD } from '../dataLib';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Button from '@material-ui/core/Button';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport Select from '@material-ui/core/Select';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport DoneIcon from '@material-ui/icons/Done';\r\n\r\n//components:\r\nimport userManager from '../userManager';\r\nimport { drawerOptions, getDrawerOptions } from '../constants/drawer_options';\r\nimport * as config from '../constants/configuration';\r\n\r\n//actions:\r\nimport { changeSelectedSection, setSections, openDialog, setSaveState, setUserProfileUsuarioCentro } from '../actions';\r\nimport { setCentroDia } from '../actions/centro_dia_actions';\r\nimport { ArrowRightSharp, RemoveShoppingCartSharp } from '@material-ui/icons';\r\n\r\n\r\nconst styles = theme => ({\r\n\r\n appBar: {\r\n position: 'fixed',\r\n zIndex: theme.zIndex.drawer + 1,\r\n boxShadow: 'none',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n loginContainer: {\r\n padding: 0,\r\n marginRight: 30,\r\n height: 'inherit',\r\n },\r\n divButtons: {\r\n marginLeft: 'auto'\r\n },\r\n dashboardTitle: {\r\n padding: 0,\r\n fontSize: 16,\r\n marginLeft: 30,\r\n height: 'inherit',\r\n },\r\n centrodia: {\r\n width: 420,\r\n height: 'inherit',\r\n display: 'flex',\r\n justifyContent: 'space-evenly',\r\n alignItems: 'center',\r\n },\r\n centro: {\r\n overflow: 'hidden',\r\n maxWidth: 265,\r\n fontSize: 16,\r\n },\r\n dia: {\r\n fontSize: 16,\r\n },\r\n user: {\r\n margin: theme.spacing(1),\r\n },\r\n topHeader: {\r\n backgroundColor: 'black',\r\n color: 'white',\r\n height: 35,\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n },\r\n bottomHeader: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n paddingTop: 11,\r\n backgroundColor: 'white',\r\n border: '1px solid',\r\n borderColor: `transparent transparent #a2398d`,\r\n },\r\n tab: {\r\n border: '11px solid transparent',\r\n color: 'black',\r\n focus: {\r\n outline: 'none',\r\n border: 0\r\n },\r\n // outline: 'none'\r\n },\r\n bigIndicator: {\r\n backgroundColor: theme.palette.secondary,\r\n height: 7,\r\n },\r\n selectCentro: {\r\n //color: 'white',\r\n backgroundColor: 'white',\r\n // border: '1px solid',\r\n // borderColor: 'white',\r\n }\r\n\r\n});\r\n\r\nclass IlusionaHeader extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n name: window.location.kd ? \"NEURITE\" : process.env.REACT_APP_CLIENT,\r\n menuOpen: false,\r\n anchorEl: null,\r\n tabValue: 0,\r\n showSelect: false,\r\n centroProfile: 0\r\n };\r\n\r\n };\r\n\r\n login = () => {\r\n userManager.signinRedirect();\r\n };\r\n\r\n openUserMenu = (event) => {\r\n this.setState({ ...this.state, anchorEl: event.currentTarget });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ ...this.state, anchorEl: null });\r\n };\r\n\r\n handleTabChange = (event, value) => {\r\n if (this.props.saveState.pending) {\r\n this.props.openDialog('ConfirmationDialog', {\r\n message: 'Existen cambios no guardados. Desea abandonar la sección y perder los cambios?',\r\n acceptHandler: () => {\r\n this.props.setSaveState(false);\r\n this.setState({ ...this.state, tabValue: value });\r\n this.props.changeSelectedSection(value);\r\n }\r\n }, 'ilusiona-header-confirmation-message', false, 'sm');\r\n }\r\n else {\r\n this.setState({ ...this.state, tabValue: value });\r\n this.props.changeSelectedSection(value);\r\n }\r\n };\r\n\r\n componentDidMount = () => {\r\n if (config.AUTH) {\r\n if (this.props.userProfile.profile.id !== undefined) {\r\n //this.props.setSections(drawerOptions['Admin']);\r\n if (this.props.userProfile.selectedCentroProfile) {\r\n this.props.setSections(getDrawerOptions(this.props.userProfile.selectedCentroProfile.iPerfil, this.props.user.profile.sub, this.props.userProfile.kd))\r\n }\r\n }\r\n }\r\n else {\r\n this.props.setSections(drawerOptions['Admin']);\r\n }\r\n };\r\n\r\n componentDidUpdate = (prevProps) => {\r\n\r\n if (this.props.user !== undefined && this.props.user !== prevProps.user) {\r\n CHANGEVERSIONBUILD(this.props.user);\r\n }\r\n\r\n if (this.props.userProfile.profile.id !== undefined) {\r\n\r\n if (this.props.userProfile.selectedCentroProfile && this.props.userProfile.selectedCentroProfile !== prevProps.userProfile.selectedCentroProfile) {\r\n\r\n this.props.setSections(getDrawerOptions(this.props.userProfile.selectedCentroProfile.iPerfil, this.props.user.profile.sub, this.props.userProfile.kd));\r\n if ( this.props.userProfile.kd ) { // fbp_kd\r\n this.props.setCentroDia(this.props.userProfile.kd.centro_id, undefined, false);\r\n } else {\r\n this.props.setCentroDia(this.props.userProfile.selectedCentroProfile.centroId, undefined, false);\r\n }\r\n\r\n // if ((prevProps.userProfile.profile.id !== undefined && this.props.userProfile.profile.id !== prevProps.userProfile.profile.id)\r\n // || (prevProps.userProfile.profile.id === undefined)) {\r\n this.setState({ ...this.state, centroProfile: this.props.userProfile.selectedCentroProfile.id, tabValue: 0 });\r\n // }\r\n }\r\n }\r\n };\r\n\r\n renderSections = () => {\r\n\r\n const { classes } = this.props;\r\n\r\n return Object.keys(this.props.section.sections).map((section, i) => {\r\n return ()\r\n });\r\n };\r\n\r\n handleSelectChange = (event) => {\r\n this.setState({ ...this.state, centroProfile: event.target.value });\r\n }\r\n\r\n onClickSaveCentro = () => {\r\n this.props.setUserProfileUsuarioCentro(this.props.userProfile.profile.usuarioCentro.findIndex(uc => uc.id === this.state.centroProfile));\r\n this.setState({ ...this.state, showSelect: false });\r\n }\r\n\r\n openDialogChangePassword = ()=>{\r\n this.props.openDialog('ChangePasswordDialog', {\r\n acceptHandler: () => {\r\n },\r\n user: this.props.user,\r\n userProfile: this.props.userProfile,\r\n }, 'change_password', false, 'sm');\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { anchorEl, tabValue } = this.state;\r\n\r\n let date = '';\r\n if (!this.props.user) return (
);\r\n\r\n if (this.props.centroDiaSelected.dia) {\r\n const dt = new Date(this.props.centroDiaSelected.dia.slice(0, 10));\r\n //date = dt.toLocaleDateString('es-ES', {dateStyle: 'medium', month: 'numeric'});\r\n date = dt.toLocaleDateString('es-ES', { year: 'numeric', month: 'numeric', day: 'numeric' });\r\n }\r\n\r\n let pjson = require(\"../../package.json\");\r\n\r\n return (\r\n \r\n\r\n
\r\n\r\n {this.props.userProfile.kd ? \r\n \r\n :\r\n \r\n }\r\n\r\n {this.props.userProfile.profile.id && this.props.userProfile.kd == null ?\r\n
\r\n {this.props.userProfile.profile.usuarioCentro.length > 1 ?\r\n {\r\n this.state.showSelect ?\r\n this.onClickSaveCentro() :\r\n this.setState({ ...this.state, showSelect: true });\r\n }\r\n }>\r\n {this.state.showSelect ? : }\r\n \r\n :null\r\n }\r\n {!this.state.showSelect ? \r\n {this.props.centroDiaSelected.centro ? this.props.centroDiaSelected.centro.centro : ''}\r\n : null}\r\n \r\n\r\n \r\n {date}\r\n \r\n
\r\n : ''}\r\n\r\n {this.props.userProfile.profile.id && this.props.userProfile.kd ?\r\n
\r\n \r\n {date}\r\n \r\n
\r\n : ''}\r\n\r\n\r\n \r\n {this.props.user ? this.props.user.profile.name : \"Login\"}\r\n \r\n\r\n \r\n {/* Profile\r\n My account */}\r\n this.openDialogChangePassword()}>Cambiar contraseña\r\n userManager.signoutRedirect()}>Logout\r\n \r\n
\r\n\r\n\r\n \r\n \r\n {this.renderSections()}\r\n \r\n \r\n\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nIlusionaHeader.propTypes = {\r\n //state:\r\n section: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch:\r\n changeSelectedSection: PropTypes.func.isRequired,\r\n setSections: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n section: state.section,\r\n centroDiaSelected: state.centroDiaSelected,\r\n saveState: state.saveState,\r\n userProfile: state.userProfile\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n changeSelectedSection,\r\n setSections,\r\n openDialog,\r\n setCentroDia,\r\n setUserProfileUsuarioCentro,\r\n setSaveState,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withStyles(styles, { withTheme: true })(IlusionaHeader)));","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router'\r\nimport PropTypes from 'prop-types';\r\n\r\n//actions:\r\nimport { navigate, openDialog, setSaveState } from '../actions';\r\n\r\nimport { getData } from '../dataLib';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport ExpandLess from '@material-ui/icons/ExpandLess';\r\nimport ExpandMore from '@material-ui/icons/ExpandMore';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport FolderIcon from '@material-ui/icons/Folder';\r\n\r\nconst drawerWidth = 160;\r\n\r\nconst styles = theme => ({\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n drawerPaper: {\r\n width: drawerWidth,\r\n borderRight: 'none',\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: 93,\r\n },\r\n avatar: {\r\n width: 30,\r\n height: 30,\r\n },\r\n listItem: {\r\n padding: '20px 0 20px 20px !important',\r\n },\r\n listItemText: {\r\n paddingRight: 0,\r\n paddingLeft: 8,\r\n },\r\n listTitleFolder: {\r\n padding: '15px 5px 15px 10px !important',\r\n },\r\n listItemFolder: {\r\n marginLeft: 10,\r\n },\r\n selected: {\r\n backgroundColor: \"#a2398d !important\",\r\n fontWeight: 600\r\n },\r\n textListItem: {\r\n fontSize: 13,\r\n fontWeight: 400,\r\n margin: 0,\r\n },\r\n textSelected: {\r\n fontSize: 13,\r\n fontWeight: 600,\r\n color: \"white !important\",\r\n margin: 0,\r\n },\r\n listavatar:{\r\n minWidth: 0\r\n }\r\n});\r\n\r\nclass LeftDrawer extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n open: {},\r\n selected: \"\",\r\n arcade_list: false,\r\n ventas_list: false,\r\n redemption_list: false\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n\r\n if (prevProps.section.sections !== this.props.section.sections) {\r\n this.filterReportlistOptions();\r\n }\r\n if (this.props.section.selected !== prevProps.section.selected) {\r\n const selected = this.props.section.sections[this.props.section.selected].find(i => i.children.length === 0);\r\n if (selected) {\r\n this.setState((state) => ({ open: {}, selected: selected.id }));\r\n this.props.navigate(selected.value);\r\n }\r\n else this.setState({ open: {}, selected: \"\" });\r\n }\r\n }\r\n\r\n filterReportlistOptions = () => {\r\n\r\n const perfil = this.props.userProfile.selectedCentroProfile ? this.props.userProfile.selectedCentroProfile.iPerfil : 100;\r\n\r\n getData('NaReport/Listas?i_profile=' + perfil,\r\n (response) => {\r\n this.setState({ ...this.state, ventas_list: response.data.ventas, arcade_list: response.data.arcade, redemption_list: response.data.redemption });\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching reports ' + error\r\n }, 'error_get_report_lists', false, 'sm');\r\n },\r\n this.props.user,\r\n );\r\n }\r\n\r\n handleOpenClick = (value, id) => {\r\n \r\n const newOpen = { ...this.state.open };\r\n newOpen[id] = !this.state.open[id];\r\n this.setState({ open: newOpen, selected: id });\r\n \r\n if (value !== '') {\r\n if (this.props.saveState.pending) {\r\n this.props.openDialog('ConfirmationDialog', {\r\n message: 'Existen cambios no guardados. Desea abandonar la sección y perder los cambios?',\r\n acceptHandler: () => {\r\n this.setState((state) => ({ ...state, selected: id }));\r\n this.props.setSaveState(false);\r\n this.props.navigate(value);\r\n }\r\n }, 'left-drawer-confirmation-message', false, 'sm');\r\n }\r\n else {\r\n this.props.navigate(value);\r\n }\r\n }\r\n\r\n }\r\n\r\n handleOptionClick = (value, id) => {\r\n\r\n if (this.props.saveState.pending) {\r\n this.props.openDialog('ConfirmationDialog', {\r\n message: 'Existen cambios no guardados. Desea abandonar la sección y perder los cambios?',\r\n acceptHandler: () => {\r\n this.setState((state) => ({ ...state, selected: id }));\r\n this.props.setSaveState(false);\r\n this.props.navigate(value);\r\n }\r\n }, 'left-drawer-confirmation-message', false, 'sm');\r\n }\r\n else {\r\n this.setState((state) => ({ ...state, selected: id }));\r\n //this.props.history.push(\"/\" + value);\r\n this.props.navigate(value);\r\n }\r\n }\r\n\r\n mapStructure = (nodes, index) => {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return nodes.map((node) => {\r\n\r\n if (node.children.length === 0) {\r\n if (node.id === \"inf_ventas\" && this.state.ventas_list === false) return
;\r\n if (node.id === \"inf_arcade\" && this.state.arcade_list === false) return
;\r\n if (node.id === \"inf_redemption\" && this.state.redemption_list === false) return
;\r\n return (\r\n { this.handleOptionClick(node.value, node.id) }}\r\n selected={node.id === this.state.selected}\r\n classes={{ selected: classes.selected }}\r\n className={classes.listItem}\r\n >\r\n\r\n

{node.text}

\r\n \r\n )\r\n }\r\n else {\r\n return [\r\n { this.handleOpenClick(node.value, node.id) }}\r\n >\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.open[node.id] ? : }\r\n\r\n ,\r\n \r\n \r\n {this.mapStructure(node.children, index + 1)}\r\n \r\n \r\n ]\r\n }\r\n\r\n })\r\n }\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n //const options = drawerOptions[this.props.section];\r\n\r\n let options = [];\r\n\r\n if (this.props.section.selected !== '') {\r\n options = this.props.section.sections[this.props.section.selected];\r\n }\r\n \r\n if(this.props.section.selected === '') return null;\r\n\r\n return (\r\n \r\n\r\n
\r\n\r\n \r\n {this.mapStructure(options, 0)}\r\n \r\n\r\n \r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nLeftDrawer.propTypes = {\r\n //state:\r\n user: PropTypes.object,\r\n section: PropTypes.object,\r\n //dispatch:\r\n navigate: PropTypes.func,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n section: state.section,\r\n saveState: state.saveState,\r\n userProfile: state.userProfile\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate: navigate,\r\n openDialog,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withRouter(withStyles(styles, { withTheme: true })(LeftDrawer)));\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport Report from 'powerbi-report-component';\r\n\r\nimport { postData } from '../dataLib';\r\n\r\nimport { Button } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n //toolbar: theme.mixins.toolbar,;\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass IniMiMuro extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.report = null;\r\n\r\n this.state = {\r\n token: ''\r\n }\r\n }\r\n\r\n handleReportLoad = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n handleReportRender = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n componentDidMount = () => {\r\n\r\n if (this.props.user) {\r\n\r\n postData(\r\n 'https://neuritereportsapi.azurewebsites.net/api/PBI/CreateToken',\r\n (response) => {\r\n this.setState({ ...this.state, token: response.data })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating arqueo'\r\n }, 'error-create-token', false, 'sm');\r\n },\r\n {\r\n workspaceId: '776470de-5903-4f74-b7ea-6f7563f7932e',\r\n reportId: '73040bb6-041c-4051-9897-4d9c1846e42c'\r\n },\r\n this.props.user,\r\n true\r\n );\r\n }\r\n\r\n }\r\n\r\n // const centros = [0, 4, 5].includes(perfil) ?\r\n // this.props.centros.filter(c => c.activo === 1)\r\n // : this.props.centros.filter(c => c.id === this.props.userProfile.selectedCentroProfile.centroId);\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const reportStyle = {\r\n height: 800\r\n };\r\n\r\n if (!this.props.user) {\r\n return (\r\n
\r\n
\r\n
Please login
\r\n
\r\n );\r\n }\r\n else {\r\n\r\n let centrosFilter = '';\r\n\r\n if (this.props.userProfile) {\r\n\r\n const perfil = this.props.userProfile.selectedCentroProfile.iPerfil;\r\n\r\n if ([0, 4, 5, 17, 20].includes(perfil)) {\r\n centrosFilter = '&filter=BI_Centro/id ne -1';\r\n }\r\n else {\r\n\r\n const usuarioCentros = this.props.userProfile.profile.usuarioCentro;\r\n\r\n if (usuarioCentros.length > 0) {\r\n centrosFilter = '&filter=BI_Centro/id in (' + usuarioCentros[0].centro.id;\r\n for (var i = 1; i < usuarioCentros.length; i++) {\r\n centrosFilter += ',' + usuarioCentros[i].centro.id;\r\n }\r\n centrosFilter += ')';\r\n }\r\n else {\r\n centrosFilter = '&filter=BI_Centro/id eq -1';\r\n }\r\n }\r\n\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {/*
Aqui aparecerán las notificaciones importantes para este usuario
*/}\r\n {/* Alternative Content */}\r\n {process.env.REACT_APP_CLIENT.includes('Ilusiona') ?\r\n this.state.token === '' || !this.props.userProfile ?\r\n
Información/resumen para este usuario
\r\n :\r\n
\r\n \r\n \r\n \r\n
\r\n :\r\n ''\r\n }\r\n
\r\n );\r\n }\r\n };\r\n\r\n};\r\n\r\nIniMiMuro.propTypes = {\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n userProfile: state.userProfile\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(withStyles(styles, { withTheme: true })(IniMiMuro));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport Report from 'powerbi-report-component';\r\n\r\nimport { postData } from '../dataLib';\r\n\r\nimport { Button } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n //toolbar: theme.mixins.toolbar,;\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n button: {\r\n margin: '1px 8px',\r\n //padding: '10px 4%',\r\n padding: '0px 0%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n width: \"250px\", height: \"39px\"\r\n },\r\n container: {\r\n position: 'relative'\r\n },\r\n component1: {\r\n position: 'absolute',\r\n background: 'white',\r\n width:'100%',\r\n },\r\n component2: {\r\n position: 'absolute',\r\n width:'100%',\r\n },\r\n});\r\n\r\nclass IniMiMuroKD extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.report = null;\r\n\r\n this.state = {\r\n token: ''\r\n }\r\n }\r\n\r\n handleReportLoad = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n handleReportRender = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n componentDidMount = () => {\r\n\r\n if (this.props.user) {\r\n\r\n postData(\r\n 'https://neuritereportsapi.azurewebsites.net/api/PBI/CreateToken',\r\n (response) => {\r\n this.setState({ ...this.state, token: response.data })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating arqueo'\r\n }, 'error-create-token', false, 'sm');\r\n },\r\n {\r\n // // https://app.powerbi.com/groups/776470de-5903-4f74-b7ea-6f7563f7932e/reports/73040bb6-041c-4051-9897-4d9c1846e42c/ReportSection09c8e6032531a0e109fb\r\n // workspaceId: '776470de-5903-4f74-b7ea-6f7563f7932e',\r\n // reportId: '73040bb6-041c-4051-9897-4d9c1846e42c'\r\n // https://app.powerbi.com/groups/59c8154b-3275-43f3-8961-9e11392b17c6/reports/8d5a7431-cdab-4e4d-b160-f3d3584a6b4d/ReportSection09c8e6032531a0e109fb\r\n workspaceId: '59c8154b-3275-43f3-8961-9e11392b17c6',\r\n reportId: '8d5a7431-cdab-4e4d-b160-f3d3584a6b4d'\r\n },\r\n this.props.user,\r\n true\r\n );\r\n }\r\n\r\n }\r\n\r\n // const centros = [0, 4, 5].includes(perfil) ?\r\n // this.props.centros.filter(c => c.activo === 1)\r\n // : this.props.centros.filter(c => c.id === this.props.userProfile.selectedCentroProfile.centroId);\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const reportStyle = {\r\n height: 800\r\n };\r\n\r\n if (!this.props.user) {\r\n return (\r\n
\r\n
\r\n
Please login
\r\n
\r\n );\r\n }\r\n else {\r\n\r\n let centrosFilter = '';\r\n\r\n if (this.props.kd) {\r\n centrosFilter = '&filter=BI_Centro/id eq ' + this.props.kd.centro_id;\r\n } else {\r\n if (this.props.userProfile) {\r\n\r\n const perfil = this.props.userProfile.selectedCentroProfile.iPerfil;\r\n\r\n if ([0, 4, 5, 17, 20].includes(perfil)) {\r\n centrosFilter = '&filter=BI_Centro/id ne -1';\r\n }\r\n else {\r\n\r\n const usuarioCentros = this.props.userProfile.profile.usuarioCentro;\r\n\r\n if (usuarioCentros.length > 0) {\r\n centrosFilter = '&filter=BI_Centro/id in (' + usuarioCentros[0].centro.id;\r\n for (var i = 1; i < usuarioCentros.length; i++) {\r\n centrosFilter += ',' + usuarioCentros[i].centro.id;\r\n }\r\n centrosFilter += ')';\r\n }\r\n else {\r\n centrosFilter = '&filter=BI_Centro/id eq -1';\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n const extraSettings = {\r\n filterPaneEnabled: false, //true\r\n //navContentPaneEnabled: false, //true\r\n // ... more custom settings\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {/*
Aqui aparecerán las notificaciones importantes para este usuario
*/}\r\n {/* Alternative Content */}\r\n {process.env.REACT_APP_CLIENT.includes('Ilusiona') ?\r\n this.state.token === '' || !this.props.userProfile ?\r\n
Información/resumen para este usuario
\r\n :\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n :\r\n ''\r\n }\r\n
\r\n );\r\n }\r\n };\r\n\r\n};\r\n\r\nIniMiMuroKD.propTypes = {\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n userProfile: state.userProfile,\r\n kd: state.userProfile.kd,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(withStyles(styles, { withTheme: true })(IniMiMuroKD));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\n//import Report from 'powerbi-report-component';\r\nimport { bindActionCreators } from 'redux';\r\nimport * as config from '../constants/configuration';\r\nimport { navigate } from '../actions';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n //toolbar: theme.mixins.toolbar,;\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass IniNoticias extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(''); //go to home page\r\n return;\r\n }\r\n\r\n }\r\n // constructor(props) {\r\n // super(props);\r\n\r\n // this.report = null;\r\n\r\n // this.state = {\r\n // token: ''\r\n // }\r\n // }\r\n\r\n // handleReportLoad = (report) => {\r\n // this.report = report; // get the report object from callback and store it.\r\n // }\r\n\r\n // handleReportRender = (report) => {\r\n // this.report = report; // get the report object from callback and store it.\r\n // }\r\n\r\n // componentDidMount = () => {\r\n\r\n // if (this.props.user) {\r\n\r\n // postData(\r\n // 'https://neuritereportsapi.azurewebsites.net/api/PBI/CreateToken',\r\n // (response) => {\r\n // this.setState({ ...this.state, token: response.data })\r\n // },\r\n // () => {\r\n // this.props.openDialog('SimpleMessage', {\r\n // message: 'ERROR updating arqueo'\r\n // }, 'error-create-token', false, 'sm');\r\n // },\r\n // {\r\n // workspaceId: '776470de-5903-4f74-b7ea-6f7563f7932e',\r\n // reportId: '73040bb6-041c-4051-9897-4d9c1846e42c'\r\n // },\r\n // this.props.user,\r\n // true\r\n // );\r\n // }\r\n\r\n // }\r\n\r\n // const centros = [0, 4, 5].includes(perfil) ?\r\n // this.props.centros.filter(c => c.activo === 1)\r\n // : this.props.centros.filter(c => c.id === this.props.userProfile.selectedCentroProfile.centroId);\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n /* const reportStyle = {\r\n height: 800\r\n }; */\r\n\r\n if (!this.props.user) {\r\n return (\r\n
\r\n
\r\n
Please login
\r\n
\r\n );\r\n }\r\n else {\r\n\r\n // let centrosFilter = '';\r\n\r\n // if (this.props.userProfile) {\r\n\r\n // const perfil = this.props.userProfile.selectedCentroProfile.iPerfil;\r\n\r\n // if ([0, 4, 5].includes(perfil)) {\r\n // centrosFilter = '&filter=BI_Centro/id ne -1';\r\n // }\r\n // else {\r\n \r\n // const usuarioCentros = this.props.userProfile.profile.usuarioCentro;\r\n\r\n // if (usuarioCentros.length > 0) {\r\n // centrosFilter = '&filter=BI_Centro/id in (' + usuarioCentros[0].centro.id;\r\n // for (var i = 1; i < usuarioCentros.length; i++){\r\n // centrosFilter += ',' + usuarioCentros[i].centro.id;\r\n // }\r\n // centrosFilter += ')';\r\n // }\r\n // else\r\n // {\r\n // centrosFilter = '&filter=BI_Centro/id eq -1';\r\n // }\r\n // }\r\n // }\r\n\r\n return (\r\n
\r\n
\r\n {/*
Aqui aparecerán las notificaciones importantes para este usuario
*/}\r\n {process.env.REACT_APP_CLIENT.includes('Ilusiona')?Alternative Content:null}\r\n {/* {this.state.token === '' || !this.props.userProfile ?\r\n
Información/resumen para este usuario
\r\n :\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n } */}\r\n
\r\n );\r\n }\r\n };\r\n\r\n};\r\n\r\nIniNoticias.propTypes = {\r\n user: PropTypes.object,\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n navigate,\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n userProfile: state.userProfile\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispathToProps)(withStyles(styles, { withTheme: true })(IniNoticias));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport Report from 'powerbi-report-component';\r\n\r\nimport { postData } from '../dataLib';\r\n\r\nimport { Button } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n //toolbar: theme.mixins.toolbar,;\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass IniVentas extends Component {\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.report = null;\r\n\r\n this.state = {\r\n token: ''\r\n }\r\n }\r\n\r\n handleReportLoad = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n handleReportRender = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n componentDidMount = () => {\r\n\r\n if (this.props.user && this.props.user.profile.sub === '795') {\r\n\r\n postData(\r\n 'https://neuritereportsapi.azurewebsites.net/api/PBI/CreateToken',\r\n (response) => {\r\n this.setState({ ...this.state, token: response.data })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating arqueo'\r\n }, 'error-create-token', false, 'sm');\r\n },\r\n {\r\n workspaceId: '776470de-5903-4f74-b7ea-6f7563f7932e',\r\n reportId: '5d552d1d-0f4f-46c8-a25b-5d3040a45a2c',\r\n //reportId: '73040bb6-041c-4051-9897-4d9c1846e42c'\r\n },\r\n this.props.user,\r\n true\r\n );\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const reportStyle = {\r\n height: 800\r\n };\r\n\r\n if (!this.props.user) {\r\n return (\r\n
\r\n
\r\n
Please login
\r\n
\r\n );\r\n }\r\n else {\r\n //\"https://app.powerbi.com/reportEmbed?reportId=5d552d1d-0f4f-46c8-a25b-5d3040a45a2c&groupId=776470de-5903-4f74-b7ea-6f7563f7932e&$filterPaneEnabled=False&filter=Centro/id eq 52\"\r\n return (\r\n\r\n
\r\n
\r\n {this.state.token === '' ?\r\n
Información/resumen para este usuario
\r\n :\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n }\r\n
\r\n\r\n\r\n );\r\n }\r\n };\r\n\r\n};\r\n\r\nIniVentas.propTypes = {\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n \r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(withStyles(styles, { withTheme: true })(IniVentas));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport Report from 'powerbi-report-component';\r\n\r\nimport { postData } from '../dataLib';\r\n\r\nimport { Button } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n //toolbar: theme.mixins.toolbar,;\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass IniArcades extends Component {\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.report = null;\r\n\r\n this.state = {\r\n token: ''\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n\r\n if (this.props.user && this.props.user.profile.sub === '795') {\r\n\r\n postData(\r\n 'https://neuritereportsapi.azurewebsites.net/api/PBI/CreateToken',\r\n (response) => {\r\n this.setState({ ...this.state, token: response.data })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating arqueo'\r\n }, 'error-create-token', false, 'sm');\r\n },\r\n {\r\n workspaceId: '776470de-5903-4f74-b7ea-6f7563f7932e',\r\n reportId: 'e3c7772c-f353-44ec-8212-7b835eb92678'\r\n },\r\n this.props.user,\r\n true\r\n );\r\n }\r\n\r\n }\r\n\r\n handleReportLoad = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n handleReportRender = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const reportStyle = {\r\n height: 800\r\n };\r\n\r\n if (!this.props.user) {\r\n return (\r\n
\r\n
\r\n
Please login
\r\n
\r\n );\r\n }\r\n else {\r\n return (\r\n\r\n
\r\n
\r\n {this.state.token === '' ?\r\n
Información/resumen para este usuario
\r\n :\r\n
\r\n \r\n \r\n \r\n
\r\n }\r\n
\r\n\r\n\r\n );\r\n }\r\n };\r\n\r\n};\r\n\r\nIniArcades.propTypes = {\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(withStyles(styles, { withTheme: true })(IniArcades));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport Report from 'powerbi-report-component';\r\n\r\nimport { postData } from '../dataLib';\r\n\r\nimport { Button } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n //toolbar: theme.mixins.toolbar,;\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass IniCierres extends Component {\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.report = null;\r\n\r\n this.state = {\r\n token: ''\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n\r\n if (this.props.user && this.props.user.profile.sub === '795') {\r\n\r\n postData(\r\n 'https://neuritereportsapi.azurewebsites.net/api/PBI/CreateToken',\r\n (response) => {\r\n this.setState({ ...this.state, token: response.data })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating arqueo'\r\n }, 'error-create-token', false, 'sm');\r\n },\r\n {\r\n workspaceId: '776470de-5903-4f74-b7ea-6f7563f7932e',\r\n reportId: '515e20a0-9fa3-48b5-80a6-32e132003eff'\r\n },\r\n this.props.user,\r\n true\r\n );\r\n }\r\n\r\n }\r\n\r\n handleReportLoad = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n handleReportRender = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const reportStyle = {\r\n height: 800\r\n };\r\n\r\n if (!this.props.user) {\r\n return (\r\n
\r\n
\r\n
Please login
\r\n
\r\n );\r\n }\r\n else {\r\n return (\r\n\r\n
\r\n
\r\n {this.state.token === '' ?\r\n
Información/resumen para este usuario
\r\n :\r\n
\r\n \r\n \r\n \r\n
\r\n }\r\n
\r\n\r\n\r\n );\r\n }\r\n };\r\n\r\n};\r\n\r\nIniCierres.propTypes = {\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(withStyles(styles, { withTheme: true })(IniCierres));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport Report from 'powerbi-report-component';\r\n\r\nimport { postData } from '../dataLib';\r\n\r\nimport { Button } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n //toolbar: theme.mixins.toolbar,;\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n button: {\r\n margin: '1px 8px',\r\n //padding: '10px 4%',\r\n padding: '0px 0%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n width: \"250px\", height: \"39px\"\r\n },\r\n container: {\r\n position: 'relative'\r\n },\r\n component1: {\r\n position: 'absolute',\r\n background: 'white',\r\n width: '100%',\r\n },\r\n component2: {\r\n position: 'absolute',\r\n width: '100%',\r\n },\r\n});\r\n\r\nclass IniCierresKD extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.report = null;\r\n\r\n this.state = {\r\n token: ''\r\n }\r\n }\r\n\r\n handleReportLoad = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n handleReportRender = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n componentDidMount = () => {\r\n\r\n if (this.props.user) {\r\n\r\n postData(\r\n 'https://neuritereportsapi.azurewebsites.net/api/PBI/CreateToken',\r\n (response) => {\r\n this.setState({ ...this.state, token: response.data })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating arqueo'\r\n }, 'error-create-token', false, 'sm');\r\n },\r\n {\r\n // // https://app.powerbi.com/groups/776470de-5903-4f74-b7ea-6f7563f7932e/reports/73040bb6-041c-4051-9897-4d9c1846e42c/ReportSection09c8e6032531a0e109fb\r\n // workspaceId: '776470de-5903-4f74-b7ea-6f7563f7932e',\r\n // reportId: '73040bb6-041c-4051-9897-4d9c1846e42c'\r\n //https://app.powerbi.com/groups/59c8154b-3275-43f3-8961-9e11392b17c6/reports/65886b5e-8ec1-4378-ad34-ae78b834a450/ReportSection\r\n workspaceId: '59c8154b-3275-43f3-8961-9e11392b17c6',\r\n reportId: '65886b5e-8ec1-4378-ad34-ae78b834a450'\r\n },\r\n this.props.user,\r\n true\r\n );\r\n }\r\n\r\n }\r\n\r\n // const centros = [0, 4, 5].includes(perfil) ?\r\n // this.props.centros.filter(c => c.activo === 1)\r\n // : this.props.centros.filter(c => c.id === this.props.userProfile.selectedCentroProfile.centroId);\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const reportStyle = {\r\n height: 800\r\n };\r\n\r\n if (!this.props.user) {\r\n return (\r\n
\r\n
\r\n
Please login
\r\n
\r\n );\r\n }\r\n else {\r\n\r\n let centrosFilter = '';\r\n\r\n if (this.props.kd) {\r\n centrosFilter = '&filter=Centro/id eq ' + this.props.kd.centro_id;\r\n } else {\r\n if (this.props.userProfile) {\r\n\r\n const perfil = this.props.userProfile.selectedCentroProfile.iPerfil;\r\n\r\n if ([0, 4, 5, 17, 20].includes(perfil)) {\r\n centrosFilter = '&filter=Centro/id ne -1';\r\n }\r\n else {\r\n\r\n const usuarioCentros = this.props.userProfile.profile.usuarioCentro;\r\n\r\n if (usuarioCentros.length > 0) {\r\n centrosFilter = '&filter=Centro/id in (' + usuarioCentros[0].centro.id;\r\n for (var i = 1; i < usuarioCentros.length; i++) {\r\n centrosFilter += ',' + usuarioCentros[i].centro.id;\r\n }\r\n centrosFilter += ')';\r\n }\r\n else {\r\n centrosFilter = '&filter=Centro/id eq -1';\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n const extraSettings = {\r\n filterPaneEnabled: false, //true\r\n //navContentPaneEnabled: false, //true\r\n // ... more custom settings\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {/*
Aqui aparecerán las notificaciones importantes para este usuario
*/}\r\n {/* Alternative Content */}\r\n {process.env.REACT_APP_CLIENT.includes('Ilusiona') ?\r\n this.state.token === '' || !this.props.userProfile ?\r\n
Información/resumen para este usuario
\r\n :\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n :\r\n ''\r\n }\r\n
\r\n );\r\n }\r\n };\r\n\r\n};\r\n\r\nIniCierresKD.propTypes = {\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n userProfile: state.userProfile,\r\n kd: state.userProfile.kd,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(withStyles(styles, { withTheme: true })(IniCierresKD));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport Report from 'powerbi-report-component';\r\n\r\nimport { postData } from '../dataLib';\r\n\r\nimport { Button } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n //toolbar: theme.mixins.toolbar,;\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n button: {\r\n margin: '1px 8px',\r\n //padding: '10px 4%',\r\n padding: '0px 0%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n width: \"250px\", height: \"39px\"\r\n },\r\n container: {\r\n position: 'relative'\r\n },\r\n component1: {\r\n position: 'absolute',\r\n background: 'white',\r\n width: '100%',\r\n },\r\n component2: {\r\n position: 'absolute',\r\n width: '100%',\r\n },\r\n});\r\n\r\nclass IniVentasKD extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.report = null;\r\n\r\n this.state = {\r\n token: ''\r\n }\r\n }\r\n\r\n handleReportLoad = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n handleReportRender = (report) => {\r\n this.report = report; // get the report object from callback and store it.\r\n }\r\n\r\n componentDidMount = () => {\r\n\r\n if (this.props.user) {\r\n\r\n postData(\r\n 'https://neuritereportsapi.azurewebsites.net/api/PBI/CreateToken',\r\n (response) => {\r\n this.setState({ ...this.state, token: response.data })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating arqueo'\r\n }, 'error-create-token', false, 'sm');\r\n },\r\n {\r\n // // https://app.powerbi.com/groups/776470de-5903-4f74-b7ea-6f7563f7932e/reports/73040bb6-041c-4051-9897-4d9c1846e42c/ReportSection09c8e6032531a0e109fb\r\n // workspaceId: '776470de-5903-4f74-b7ea-6f7563f7932e',\r\n // reportId: '73040bb6-041c-4051-9897-4d9c1846e42c'\r\n //https://app.powerbi.com/groups/59c8154b-3275-43f3-8961-9e11392b17c6/reports/cc2a28e6-4308-4050-a671-93dadb6b64bb/ReportSection99da77576a53025e0994\r\n workspaceId: '59c8154b-3275-43f3-8961-9e11392b17c6',\r\n reportId: 'cc2a28e6-4308-4050-a671-93dadb6b64bb'\r\n },\r\n this.props.user,\r\n true\r\n );\r\n }\r\n\r\n }\r\n\r\n // const centros = [0, 4, 5].includes(perfil) ?\r\n // this.props.centros.filter(c => c.activo === 1)\r\n // : this.props.centros.filter(c => c.id === this.props.userProfile.selectedCentroProfile.centroId);\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const reportStyle = {\r\n height: 800\r\n };\r\n\r\n if (!this.props.user) {\r\n return (\r\n
\r\n
\r\n
Please login
\r\n
\r\n );\r\n }\r\n else {\r\n\r\n let centrosFilter = '';\r\n\r\n if (this.props.kd) {\r\n centrosFilter = '&filter=Centro/id eq ' + this.props.kd.centro_id;\r\n } else {\r\n if (this.props.userProfile) {\r\n\r\n const perfil = this.props.userProfile.selectedCentroProfile.iPerfil;\r\n\r\n if ([0, 4, 5, 17, 20].includes(perfil)) {\r\n centrosFilter = '&filter=Centro/id ne -1';\r\n }\r\n else {\r\n\r\n const usuarioCentros = this.props.userProfile.profile.usuarioCentro;\r\n\r\n if (usuarioCentros.length > 0) {\r\n centrosFilter = '&filter=Centro/id in (' + usuarioCentros[0].centro.id;\r\n for (var i = 1; i < usuarioCentros.length; i++) {\r\n centrosFilter += ',' + usuarioCentros[i].centro.id;\r\n }\r\n centrosFilter += ')';\r\n }\r\n else {\r\n centrosFilter = '&filter=Centro/id eq -1';\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n const extraSettings = {\r\n filterPaneEnabled: false, //true\r\n //navContentPaneEnabled: false, //true\r\n // ... more custom settings\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {/*
Aqui aparecerán las notificaciones importantes para este usuario
*/}\r\n {/* Alternative Content */}\r\n {process.env.REACT_APP_CLIENT.includes('Ilusiona') ?\r\n this.state.token === '' || !this.props.userProfile ?\r\n
Información/resumen para este usuario
\r\n :\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n :\r\n ''\r\n }\r\n
\r\n );\r\n }\r\n };\r\n\r\n};\r\n\r\nIniVentasKD.propTypes = {\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n userProfile: state.userProfile,\r\n kd: state.userProfile.kd,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(withStyles(styles, { withTheme: true })(IniVentasKD));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport userManager from '../userManager';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n});\r\n\r\nclass IniDesconexion extends Component {\r\n\r\n componentDidMount = () => {\r\n userManager.signoutRedirect();\r\n }\r\n\r\n render() {\r\n return (
);\r\n };\r\n\r\n};\r\n\r\nIniDesconexion.propTypes = {\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(withStyles(styles, { withTheme: true })(IniDesconexion));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\n\r\n//compont ui:\r\nimport DatePicker from '../components/utils/DatePicker';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport {\r\n FormControl,\r\n Select,\r\n InputLabel,\r\n Paper,\r\n Button,\r\n} from '@material-ui/core';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Fade from '@material-ui/core/Fade';\r\n\r\n//actions:\r\nimport { navigate, openDialog } from '../actions';\r\n\r\n//helpers:\r\nimport { getData, postData } from '../dataLib';\r\nimport * as config from '../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n containerView: {\r\n width: '83vw',\r\n height: '83vh',\r\n marginTop: 135,\r\n },\r\n paperCentroDia: {\r\n paddingTop: 0,\r\n paddingBottom: theme.spacing(1) / 2,\r\n paddingLeft: theme.spacing(1) / 2,\r\n paddingRight: theme.spacing(1) / 2,\r\n margin: theme.spacing(1),\r\n },\r\n form: {\r\n maxWidth: 650,\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginBottom: 20,\r\n },\r\n formControl: {\r\n minWidth: 120,\r\n maxWidth: 310,\r\n margin: 0,\r\n padding: 0,\r\n },\r\n spinnerContainer: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '20px !important',\r\n height: '20px !important',\r\n },\r\n textField: {\r\n width: 145,\r\n margin: 0,\r\n padding: 0,\r\n },\r\n acceptContainer: {\r\n width: '100%',\r\n display: 'flex',\r\n },\r\n button: {\r\n borderRadius: 0,\r\n marginLeft: 0,\r\n marginRight: 20,\r\n color: 'white',\r\n textTransform: 'capitalize',\r\n boxShadow: 'none',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: 'white',\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass KDImportar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n centro: this.props.centroDiaSelected.centro.id\r\n ? this.props.centroDiaSelected.centro.id\r\n : 1,\r\n centroDiaCierre: 1,\r\n date: null,\r\n lastExportDate: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(''); //go to home page\r\n return;\r\n }\r\n }\r\n\r\n importAux = (concepto) => {\r\n const centro = 61;\r\n getData(\r\n 'Contabilidad/UltimaExportacion?centro_id=' + centro,\r\n response => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: concepto,\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching last export date',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n { this.importAux('Movimientos de artículos importados correctamente'); }}\r\n >\r\n Importar Movimientos Artículos Central Compras\r\n \r\n
\r\n
\r\n { this.importAux('Movimientos de venta importados correctamente'); }}\r\n >\r\n Importar Movimientos Venta & Redemption\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nKDImportar.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n isLoading: state.centros.isLoading,\r\n centroDiaSelected: state.centroDiaSelected,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n navigate,\r\n openDialog,\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps,\r\n)(withStyles(styles, { withTheme: true })(KDImportar));\r\n","\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getGrupoPartida, modifyGrupoPartida, removeGrupoPartida, addGrupoPartida, updateGrupoPartidaDB } from '../../actions/grupo_partida_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresGrupoPartida extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getGrupoPartida();\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkCvGrupoPartida = (grupoPartida) => {\r\n if (this.props.grupoPartida.find(c => (c.descr === grupoPartida.descr) && (c.id !== grupoPartida.id))) {\r\n this.messageDialog(`Ya existe un grupo de partida ${grupoPartida.descr}`);\r\n return false;\r\n } else if (!grupoPartida.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca un Nombre');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n addNewGrupoPartida = grupoPartida => {\r\n this.props.setSaveState(true);\r\n this.props.addGrupoPartida(grupoPartida);\r\n };\r\n\r\n newGrupoPartida = () => {\r\n this.props.openDialog('EditCvGrupoPartida', {\r\n cvGrupoPartida: {},\r\n okHandler: this.addNewGrupoPartida,\r\n checkGrupoPartida: this.checkCvGrupoPartida,\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, fromRowData, updated }) => {\r\n\r\n if (fromRow !== toRow) return; //solo modificamos una fila\r\n\r\n // for (let i = fromRow; i <= toRow; i++) {\r\n // let updatedRow = update(this.props.grupoPartida[i], { $merge: updated });\r\n // this.props.setSaveState(true);\r\n // this.props.modifyGrupoPartida(updatedRow);\r\n // };\r\n\r\n let updatedRow = update(this.props.grupoPartida[fromRowData.grid_index], { $merge: updated });\r\n this.props.setSaveState(true);\r\n this.props.modifyGrupoPartida(updatedRow);\r\n\r\n };\r\n\r\n handleDeleteRow = grupoPartida => {\r\n this.props.setSaveState(true);\r\n this.props.removeGrupoPartida(grupoPartida);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresGrupoPartida.propTypes = {\r\n //state\r\n grupoPartida: PropTypes.array.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getGrupoPartida: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyGrupoPartida: PropTypes.func.isRequired,\r\n removeGrupoPartida: PropTypes.func.isRequired,\r\n addGrupoPartida: PropTypes.func.isRequired,\r\n updateGrupoPartidaDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n grupoPartida: state.grupoPartida.grupospartida,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getGrupoPartida,\r\n openDialog,\r\n hideDialog,\r\n modifyGrupoPartida,\r\n removeGrupoPartida,\r\n addGrupoPartida,\r\n updateGrupoPartidaDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresGrupoPartida));","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_TIPOS_MAQUINA,\r\n MODIFY_TIPO_MAQUINA,\r\n ADD_TIPO_MAQUINA,\r\n DELETE_TIPO_MAQUINA,\r\n UPDATE_TIPOS_MAQUINA,\r\n} from '../constants/action_types';\r\n\r\nexport function getTiposMaquina() {\r\n return getData('cvtipomaquinas', GET_TIPOS_MAQUINA);\r\n}\r\n\r\nexport function modifyTipoMaquina(tipoMaquina) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_TIPO_MAQUINA, payload: tipoMaquina });\r\n }\r\n}\r\n\r\nexport function addTipoMaquina(tipoMaquina) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_TIPO_MAQUINA, payload: tipoMaquina });\r\n }\r\n}\r\n\r\nexport function removeTipoMaquina(tipoMaquina) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_TIPO_MAQUINA, payload: tipoMaquina });\r\n }\r\n}\r\n\r\nexport function updateTiposMaquinaDB (tipoMaquina) {\r\n // return (dispatch, getState) => {\r\n // dispatch({ type: UPDATE_TIPOS_MAQUINA, payload: tipoMaquina })\r\n // let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n // axios.post(config.API_URI() + 'cvtipomaquinas/maquinas', tipoMaquina,\r\n // {\r\n // headers: {\r\n // Authorization: \"Bearer \" + token\r\n // }\r\n // }\r\n // ).then((response) => {\r\n // dispatch({ type: UPDATE_TIPOS_MAQUINA + \"_SUCCESS\", payload: response })\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: 'Cambios guardados!' },\r\n // dialogid: 'success_update_tipo_maquina'\r\n // });\r\n // }).catch((error) => {\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_tipo_maquina'\r\n // });\r\n // });\r\n // }\r\n\r\n return postData('cvtipomaquinas/maquinas',UPDATE_TIPOS_MAQUINA, tipoMaquina, 'Tipos de máquina actualizados', undefined );\r\n}\r\n\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getTiposMaquina, modifyTipoMaquina, removeTipoMaquina, addTipoMaquina, updateTiposMaquinaDB } from '../../actions/tipos_maquina_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresTipoMaquina extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getTiposMaquina();\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkCvTipoMaquina = (tipoMaquina) => {\r\n if (this.props.tiposMaquina.find(c => (c.descr === tipoMaquina.descr) && (c.id !== tipoMaquina.id))) {\r\n this.messageDialog(`Ya existe un tipo de máquina ${tipoMaquina.descr}`);\r\n return false;\r\n } else if (!tipoMaquina.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una descripción');\r\n return false;\r\n } else if (isNaN(tipoMaquina.cambio)) {\r\n this.messageDialog('Por favor, introduzca un valor para el campo Cambio');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n newTipoMaquina = () => {\r\n this.props.openDialog('EditCvTipoMaquina', {\r\n cvTipoMaquina: {},\r\n okHandler: (tm) => {\r\n this.props.setSaveState(true);\r\n this.props.addTipoMaquina(tm);\r\n },\r\n checkTipoMaquina: this.checkCvTipoMaquina,\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, fromRowData, updated }) => {\r\n\r\n if(fromRow !== toRow) return; //solo modificamos una fila\r\n\r\n // for (let i = fromRow; i <= toRow; i++) {\r\n // if (updated['cambio'] !== undefined) {\r\n // if (updated['cambio']) updated['cambio'] = 1;\r\n // else updated['cambio'] = 0;\r\n // }\r\n // let updatedRow = update(this.props.tiposMaquina[i], { $merge: updated });\r\n // this.props.setSaveState(true);\r\n // this.props.modifyTipoMaquina(updatedRow);\r\n // }\r\n\r\n\r\n if (updated['cambio'] !== undefined) {\r\n if (updated['cambio']) updated['cambio'] = 1;\r\n else updated['cambio'] = 0;\r\n }\r\n let updatedRow = update(this.props.tiposMaquina[fromRowData.grid_index], { $merge: updated });\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoMaquina(updatedRow);\r\n\r\n\r\n };\r\n\r\n handleDeleteRow = tipoMaquina => {\r\n this.props.setSaveState(true);\r\n this.props.removeTipoMaquina(tipoMaquina);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresTipoMaquina.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n tiposMaquina: PropTypes.array.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getTiposMaquina: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyTipoMaquina: PropTypes.func.isRequired,\r\n removeTipoMaquina: PropTypes.func.isRequired,\r\n addTipoMaquina: PropTypes.func.isRequired,\r\n updateTiposMaquinaDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n tiposMaquina: state.tiposMaquina.tiposmaquina,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getTiposMaquina,\r\n openDialog,\r\n hideDialog,\r\n modifyTipoMaquina,\r\n removeTipoMaquina,\r\n addTipoMaquina,\r\n updateTiposMaquinaDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresTipoMaquina));\r\n\r\n","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_MODELOS_MAQUINA,\r\n MODIFY_MODELO_MAQUINA,\r\n ADD_MODELO_MAQUINA,\r\n DELETE_MODELO_MAQUINA,\r\n UPDATE_MODELOS_MAQUINA,\r\n} from '../constants/action_types';\r\n\r\nexport function getModelosMaquina() {\r\n return getData('vmodelomaquinas', GET_MODELOS_MAQUINA);\r\n}\r\n\r\nexport function modifyModeloMaquina(modeloMaquina) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_MODELO_MAQUINA, payload: modeloMaquina });\r\n }\r\n}\r\n\r\nexport function addModeloMaquina(modeloMaquina) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_MODELO_MAQUINA, payload: modeloMaquina });\r\n }\r\n}\r\n\r\nexport function removeModeloMaquina(modeloMaquina) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_MODELO_MAQUINA, payload: modeloMaquina });\r\n }\r\n}\r\n\r\nexport function updateModelosMaquinaDB (modeloMaquina) {\r\n // return (dispatch, getState) => {\r\n // dispatch({ type: UPDATE_MODELOS_MAQUINA, payload: modeloMaquina })\r\n // let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n // axios.post(config.API_URI() + 'vmodelomaquinas/modelos', modeloMaquina,\r\n // {\r\n // headers: {\r\n // Authorization: \"Bearer \" + token\r\n // }\r\n // }\r\n // ).then((response) => {\r\n // dispatch({ type: UPDATE_MODELOS_MAQUINA + \"_SUCCESS\", payload: response })\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: 'Cambios guardados!' },\r\n // dialogid: 'success_update_modelos_maquina'\r\n // });\r\n // }).catch((error) => {\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_modelos_maquina'\r\n // });\r\n // });\r\n // }\r\n\r\n return postData('vmodelomaquinas/modelos', UPDATE_MODELOS_MAQUINA, modeloMaquina, 'Modelos de máquina actualizados', undefined);\r\n}\r\n\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getTiposMaquina } from '../../actions/tipos_maquina_actions';\r\nimport { getModelosMaquina, modifyModeloMaquina, removeModeloMaquina, addModeloMaquina, updateModelosMaquinaDB } from '../../actions/modelos_maquina_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n marginBottom: {\r\n marginBottom: 20,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresModeloMaquina extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getModelosMaquina();\r\n this.props.getTiposMaquina();\r\n };\r\n\r\n messageDialog = msg => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkVModeloMaquina = modeloMaquina => {\r\n if (this.props.modelosMaquina.find(c => (c.descr === modeloMaquina.descr) && (c.id !== modeloMaquina.id))) {\r\n this.messageDialog(`Ya existe un modelo de máquina ${modeloMaquina.descr}`);\r\n return false;\r\n } else if (!modeloMaquina.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una descripción');\r\n return false;\r\n } else if (isNaN(modeloMaquina.tipoRegalo)) {\r\n this.messageDialog('Por favor, introduzca un tipo de regalo');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n editModeloMaquina = modeloMaquina => {\r\n this.props.openDialog('EditVModeloMaquina', {\r\n modelomaquina: modeloMaquina,\r\n tiposMaquina: this.props.tiposMaquina,\r\n checkVModeloMaquina: this.checkVModeloMaquina,\r\n okHandler: (m) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyModeloMaquina(m);\r\n },\r\n\r\n }, uuidv4());\r\n };\r\n\r\n newModeloMaquina = () => {\r\n this.props.openDialog('EditVModeloMaquina', {\r\n modelomaquina: {},\r\n tiposMaquina: this.props.tiposMaquina,\r\n okHandler: (m) => {\r\n this.props.setSaveState(true);\r\n this.props.addModeloMaquina(m);\r\n },\r\n checkVModeloMaquina: this.checkVModeloMaquina,\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, fromRowData, updated }) => {\r\n\r\n if (fromRow !== toRow) return; //solo modificamos una fila\r\n\r\n // for (let i = fromRow; i <= toRow; i++) {\r\n // let updatedRow = update(this.props.modelosMaquina[i], { $merge: updated });\r\n // this.props.setSaveState(true);\r\n // this.props.modifyModeloMaquina(updatedRow);\r\n // };\r\n\r\n let updatedRow = update(this.props.modelosMaquina[fromRowData.grid_index], { $merge: updated });\r\n this.props.setSaveState(true);\r\n this.props.modifyModeloMaquina(updatedRow);\r\n\r\n };\r\n\r\n handleDeleteRow = modeloMaquina => {\r\n this.props.setSaveState(true);\r\n this.props.removeModeloMaquina(modeloMaquina);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresModeloMaquina.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n tiposMaquina: PropTypes.array.isRequired,\r\n modelosMaquina: PropTypes.array.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getModelosMaquina: PropTypes.func.isRequired,\r\n getTiposMaquina: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyModeloMaquina: PropTypes.func.isRequired,\r\n removeModeloMaquina: PropTypes.func.isRequired,\r\n addModeloMaquina: PropTypes.func.isRequired,\r\n updateModelosMaquinaDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n\r\n return {\r\n user: state.oidc.user,\r\n modelosMaquina: state.modelosMaquina.modelosmaquina,\r\n tiposMaquina: state.tiposMaquina.tiposmaquina,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getTiposMaquina,\r\n getModelosMaquina,\r\n openDialog,\r\n hideDialog,\r\n modifyModeloMaquina,\r\n removeModeloMaquina,\r\n addModeloMaquina,\r\n updateModelosMaquinaDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresModeloMaquina));\r\n\r\n","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_TIPOS_PARTIDA,\r\n MODIFY_TIPO_PARTIDA,\r\n ADD_TIPO_PARTIDA,\r\n DELETE_TIPO_PARTIDA,\r\n UPDATE_TIPOS_PARTIDA,\r\n} from '../constants/action_types';\r\n\r\nexport function getTiposPartida() {\r\n return getData('vtipopartidas', GET_TIPOS_PARTIDA);\r\n}\r\n\r\nexport function modifyTipoPartida(tipoPartida) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_TIPO_PARTIDA, payload: tipoPartida });\r\n }\r\n}\r\n\r\nexport function addTipoPartida(tipoPartida) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_TIPO_PARTIDA, payload: tipoPartida });\r\n }\r\n}\r\n\r\nexport function removeTipoPartida(tipoPartida) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_TIPO_PARTIDA, payload: tipoPartida });\r\n }\r\n}\r\n\r\nexport function updateTiposPartidaDB (tipoPartida) {\r\n // return (dispatch, getState) => {\r\n // dispatch({ type: UPDATE_TIPOS_PARTIDA, payload: tipoPartida })\r\n // let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n // axios.post(config.API_URI() + 'vtipopartidas/partidas', tipoPartida,\r\n // {\r\n // headers: {\r\n // Authorization: \"Bearer \" + token\r\n // }\r\n // }\r\n // ).then((response) => {\r\n // dispatch({ type: UPDATE_TIPOS_PARTIDA + \"_SUCCESS\", payload: response })\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: 'Cambios guardados!' },\r\n // dialogid: 'success_update_tipos_partida'\r\n // });\r\n // }).catch((error) => {\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_tipos_partida'\r\n // });\r\n // });\r\n // }\r\n\r\n return postData('vtipopartidas/partidas', UPDATE_TIPOS_PARTIDA, tipoPartida, 'Tipos de partida actualizados', undefined);\r\n\r\n}\r\n\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getTiposPartida, modifyTipoPartida, removeTipoPartida, addTipoPartida, updateTiposPartidaDB } from '../../actions/tipos_partida_actions';\r\nimport { getGrupoPartida } from '../../actions/grupo_partida_actions'\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n marginBottom: {\r\n marginBottom: 20,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresTipoPartida extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n\r\n this.props.getGrupoPartida();\r\n this.props.getTiposPartida();\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkCvTipoPartida = (tipoPartida) => {\r\n if (this.props.tiposPartida.find(tp => (tp.descr === tipoPartida.descr) && (tp.id !== tipoPartida.id))) {\r\n this.messageDialog(`Ya existe un tipo de partida ${tipoPartida.descr}`);\r\n return false;\r\n } else if (!tipoPartida.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una descripción');\r\n return false;\r\n } else if (isNaN(tipoPartida.divisor)) {\r\n this.messageDialog('Por favor, introduzca un divisor');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n editTipoPartida = (tipoPartida) => {\r\n\r\n this.props.openDialog('EditCvTipoPartida', {\r\n cvTipoPartida: tipoPartida,\r\n checkTipoPartida: this.checkCvTipoPartida,\r\n okHandler: (tp) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoPartida(tp);\r\n },\r\n grupoPartida: this.props.grupoPartida\r\n\r\n }, uuidv4());\r\n };\r\n\r\n newTipoPartida = () => {\r\n this.props.openDialog('EditCvTipoPartida', {\r\n cvTipoPartida: {},\r\n checkTipoPartida: this.checkCvTipoPartida,\r\n okHandler: (tp) => {\r\n this.props.setSaveState(true);\r\n this.props.addTipoPartida(tp);\r\n },\r\n grupoPartida: this.props.grupoPartida\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, fromRowData, updated }) => {\r\n\r\n if (fromRow !== toRow) return; //solo modificamos una fila\r\n\r\n // for (let i = fromRow; i <= toRow; i++) {\r\n // let updatedRow = update(this.props.tiposPartida[i], { $merge: updated });\r\n // this.props.setSaveState(true);\r\n // this.props.modifyTipoPartida(updatedRow);\r\n // }\r\n\r\n let updatedRow = update(this.props.tiposPartida[fromRowData.grid_index], { $merge: updated });\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoPartida(updatedRow);\r\n\r\n };\r\n\r\n handleDeleteRow = tipoPartida => {\r\n this.props.setSaveState(true);\r\n this.props.removeTipoPartida(tipoPartida);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresTipoPartida.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n tiposPartida: PropTypes.array.isRequired,\r\n grupoPartida: PropTypes.array.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getGrupoPartida: PropTypes.func.isRequired,\r\n getTiposPartida: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyTipoPartida: PropTypes.func.isRequired,\r\n removeTipoPartida: PropTypes.func.isRequired,\r\n addTipoPartida: PropTypes.func.isRequired,\r\n updateTiposPartidaDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n tiposPartida: state.tiposPartida.tipospartida,\r\n grupoPartida: state.grupoPartida.grupospartida,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getTiposPartida,\r\n getGrupoPartida,\r\n openDialog,\r\n hideDialog,\r\n modifyTipoPartida,\r\n removeTipoPartida,\r\n addTipoPartida,\r\n updateTiposPartidaDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresTipoPartida));\r\n\r\n","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_ALL_ARTICULOS,\r\n GET_TIPOS_ARTICULO,\r\n MODIFY_TIPO_ARTICULO,\r\n ADD_TIPO_ARTICULO,\r\n DELETE_TIPO_ARTICULO,\r\n UPDATE_TIPOS_ARTICULO,\r\n} from '../constants/action_types';\r\n\r\nexport function getAllArticulos() {\r\n return getData('Cvtipoarticulos', GET_ALL_ARTICULOS);\r\n}\r\n\r\nexport function getTiposArticulo() {\r\n return getData('vtipoarticulos', GET_TIPOS_ARTICULO);\r\n}\r\n\r\nexport function modifyTipoArticulo(tipoArticulo) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_TIPO_ARTICULO, payload: tipoArticulo });\r\n }\r\n}\r\n\r\nexport function addTipoArticulo(tipoArticulo) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_TIPO_ARTICULO, payload: tipoArticulo });\r\n }\r\n}\r\n\r\nexport function removeTipoArticulo(tipoArticulo) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_TIPO_ARTICULO, payload: tipoArticulo });\r\n }\r\n}\r\n\r\nexport function updateTiposArticuloDB (tipoArticulo) {\r\n // return (dispatch, getState) => {\r\n // dispatch({ type: UPDATE_TIPOS_ARTICULO, payload: tipoArticulo })\r\n // let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n // axios.post(config.API_URI() + 'vtipoarticulos/articulos', tipoArticulo,\r\n // {\r\n // headers: {\r\n // Authorization: \"Bearer \" + token\r\n // }\r\n // }\r\n // ).then((response) => {\r\n // dispatch({ type: UPDATE_TIPOS_ARTICULO + \"_SUCCESS\", payload: response })\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: 'Cambios guardados!' },\r\n // dialogid: 'success_update_tipo_articulo'\r\n // });\r\n // }).catch((error) => {\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_tipo_articulo'\r\n // });\r\n // });\r\n // }\r\n\r\n return postData('vtipoarticulos/articulos', UPDATE_TIPOS_ARTICULO, tipoArticulo, 'Tipos de producto actualizados', undefined);\r\n\r\n}\r\n\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getTiposArticulo, modifyTipoArticulo, removeTipoArticulo, addTipoArticulo, updateTiposArticuloDB } from '../../actions/tipo_articulos_actions';\r\nimport { getTiposZona } from '../../actions/tipos_zona_actions'\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n marginBottom: {\r\n marginBottom: 20,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresTipoArticulo extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getTiposZona();\r\n this.props.getTiposArticulo();\r\n\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkCvTipoArticulo = tipoArticulo => {\r\n if (this.props.tiposArticulo.find(c => (c.descr === tipoArticulo.descr) && (c.id !== tipoArticulo.id))) {\r\n this.messageDialog(`Ya existe un tipo de artículo ${tipoArticulo.descr}`);\r\n return false;\r\n } else if (!tipoArticulo.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una descripción');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n editTipoArticulo = tipoArticulo => {\r\n this.props.openDialog('EditCvTipoArticulo', {\r\n cvTipoArticulo: tipoArticulo,\r\n checkCvTipoArticulo: this.checkCvTipoArticulo,\r\n okHandler: (ta) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoArticulo(ta);\r\n },\r\n tiposZona: this.props.tiposZona\r\n\r\n }, uuidv4());\r\n };\r\n\r\n newTipoArticulo = () => {\r\n this.props.openDialog('EditCvTipoArticulo', {\r\n cvTipoArticulo: {},\r\n okHandler: (ta) => {\r\n this.props.setSaveState(true);\r\n this.props.addTipoArticulo(ta);\r\n },\r\n checkCvTipoArticulo: this.checkCvTipoArticulo,\r\n tiposZona: this.props.tiposZona\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, fromRowData, updated }) => {\r\n\r\n if (fromRow !== toRow) return; //solo modificamos una fila\r\n\r\n // for (let i = fromRow; i <= toRow; i++) {\r\n // if (updated['isMovCaja']) updated['isMovCaja'] = 1;\r\n // else updated['isMovCaja'] = 0;\r\n // let updatedRow = update(this.props.tiposArticulo[i], { $merge: updated });\r\n // this.props.setSaveState(true);\r\n // this.props.modifyTipoArticulo(updatedRow);\r\n // };\r\n\r\n if (updated['isMovCaja']) updated['isMovCaja'] = 1;\r\n else updated['isMovCaja'] = 0;\r\n let updatedRow = update(this.props.tiposArticulo[fromRowData.grid_index], { $merge: updated });\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoArticulo(updatedRow);\r\n\r\n };\r\n\r\n handleDeleteRow = tipoArticulo => {\r\n this.props.setSaveState(true);\r\n this.props.removeTipoArticulo(tipoArticulo);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresTipoArticulo.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n tiposArticulo: PropTypes.array.isRequired,\r\n tiposZona: PropTypes.array.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getTiposZona: PropTypes.func.isRequired,\r\n getTiposArticulo: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyTipoArticulo: PropTypes.func.isRequired,\r\n removeTipoArticulo: PropTypes.func.isRequired,\r\n addTipoArticulo: PropTypes.func.isRequired,\r\n updateTiposArticuloDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n\r\n return {\r\n user: state.oidc.user,\r\n tiposArticulo: state.tiposArticulo.tiposarticulo,\r\n tiposZona: state.tiposZona.tiposzona,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getTiposArticulo,\r\n getTiposZona,\r\n openDialog,\r\n hideDialog,\r\n modifyTipoArticulo,\r\n removeTipoArticulo,\r\n addTipoArticulo,\r\n updateTiposArticuloDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresTipoArticulo));\r\n\r\n","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_TIPOS_GASTO,\r\n ADD_TIPO_GASTO,\r\n DELETE_TIPO_GASTO,\r\n UPDATE_TIPOS_GASTO,\r\n MODIFY_TIPO_GASTO,\r\n} from '../constants/action_types';\r\n\r\nexport function getTiposGasto() {\r\n return getData('cvtipogastos', GET_TIPOS_GASTO);\r\n}\r\n\r\nexport function addTipoGasto(tipoGasto) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_TIPO_GASTO, payload: tipoGasto });\r\n }\r\n}\r\n\r\nexport function removeTipoGasto(tipoGasto) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_TIPO_GASTO, payload: tipoGasto });\r\n }\r\n}\r\n\r\nexport function modifyTipoGasto(tipoGasto) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_TIPO_GASTO, payload: tipoGasto });\r\n }\r\n}\r\n\r\nexport function updateTiposGastoDB (tipoGasto) {\r\n // return (dispatch, getState) => {\r\n // dispatch({ type: UPDATE_TIPOS_GASTO, payload: tipoGasto })\r\n // let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n // axios.post(config.API_URI() + 'cvtipogastos/gastos', tipoGasto,\r\n // {\r\n // headers: {\r\n // Authorization: \"Bearer \" + token\r\n // }\r\n // }\r\n // ).then((response) => {\r\n // dispatch({ type: UPDATE_TIPOS_GASTO + \"_SUCCESS\", payload: response })\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: 'Cambios guardados!' },\r\n // dialogid: 'success_update_tipo_gasto'\r\n // });\r\n // }).catch((error) => {\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_tipo_gasto'\r\n // });\r\n // });\r\n // }\r\n\r\n return postData('cvtipogastos/gastos', UPDATE_TIPOS_GASTO, tipoGasto, 'Tipos de gasto actualizados', undefined);\r\n\r\n}\r\n\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport update from 'immutability-helper';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getTiposGasto, addTipoGasto, removeTipoGasto, modifyTipoGasto, updateTiposGastoDB } from '../../actions/tipos_gasto_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n marginBottom: {\r\n marginBottom: 20,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresTipoGasto extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getTiposGasto();\r\n\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkTipoGasto = (tipoGasto) => {\r\n if (this.props.tipoGasto.find(c => (c.descr === tipoGasto.descr) && (c.id !== tipoGasto.id))) {\r\n this.messageDialog(`Ya existe un tipo de gasto ${tipoGasto.descr}`);\r\n return false;\r\n } else if (!tipoGasto.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una descripción');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n newTipoGasto = () => {\r\n this.props.openDialog('EditCvTipoGasto', {\r\n cvTipoGasto: {},\r\n okHandler: (tg) => {\r\n this.props.setSaveState(true);\r\n this.props.addTipoGasto(tg);\r\n },\r\n checkTipoGasto: this.checkTipoGasto,\r\n }, uuidv4());\r\n };\r\n\r\n\r\n\r\n handleDeleteRow = tipoGasto => {\r\n this.props.setSaveState(true);\r\n this.props.removeTipoGasto(tipoGasto);\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, fromRowData, updated }) => {\r\n\r\n if (fromRow !== toRow) return; //solo modificamos una fila\r\n\r\n // for (let i = fromRow; i <= toRow; i++) {\r\n // // if(updated['isContab'] !== undefined){\r\n // // if(updated['isContab']) updated['isContab'] = 1;\r\n // // else updated['isContab'] = 0;\r\n // // }\r\n // let updatedRow = update(this.props.tipoGasto[i], { $merge: updated });\r\n // this.props.setSaveState(true);\r\n // this.props.modifyTipoGasto(updatedRow);\r\n // }\r\n\r\n let updatedRow = update(this.props.tipoGasto[fromRowData.grid_index], { $merge: updated });\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoGasto(updatedRow);\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresTipoGasto.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n tipoGasto: PropTypes.array.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n getTiposGasto: PropTypes.func.isRequired,\r\n addTipoGasto: PropTypes.func.isRequired,\r\n removeTipoGasto: PropTypes.func.isRequired,\r\n updateTiposGastoDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n tipoGasto: state.tipoGasto.tiposgasto,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n openDialog,\r\n hideDialog,\r\n getTiposGasto,\r\n addTipoGasto,\r\n modifyTipoGasto,\r\n removeTipoGasto,\r\n updateTiposGastoDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresTipoGasto));\r\n\r\n","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_TIPO_ZONA_IVA, \r\n UPDATE_TIPO_ZONA_IVA,\r\n ADD_TIPO_ZONA_IVA, \r\n MODIFY_TIPO_ZONA_IVA,\r\n DELETE_TIPO_ZONA_IVA\r\n} from '../constants/action_types';\r\n\r\nexport function getTipoZonaIva() {\r\n return getData('CvTipoZonaIvas', GET_TIPO_ZONA_IVA);\r\n}\r\n\r\nexport function modifyTipoZonaIva(tipoZonaIva) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_TIPO_ZONA_IVA, payload: tipoZonaIva });\r\n }\r\n}\r\n\r\nexport function addTipoZonaIva(tipoZonaIva) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_TIPO_ZONA_IVA, payload: tipoZonaIva });\r\n }\r\n}\r\n\r\nexport function removeTipoZonaIva(tipoZonaIva) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_TIPO_ZONA_IVA, payload: tipoZonaIva });\r\n }\r\n}\r\n\r\nexport function updateTipoZonaIvaDB (tipoZonaIva) {\r\n\r\n return postData('CvTipoZonaIvas/tiposzona', UPDATE_TIPO_ZONA_IVA, tipoZonaIva, 'Tipos de zonas de IVA actualizados', undefined);\r\n\r\n}\r\n","\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getTipoZonaIva, modifyTipoZonaIva, removeTipoZonaIva, addTipoZonaIva, updateTipoZonaIvaDB } from '../../actions/tipo_zona_iva_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresTipoZonaIVA extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getTipoZonaIva();\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkTipoZonaIva = (tipoZonaIva) => {\r\n if (this.props.tiposZonaIva.find(c => (c.descr === tipoZonaIva.descr) && (c.id !== tipoZonaIva.id))) {\r\n this.messageDialog(`Ya existe un tipo de zona de IVA ${tipoZonaIva.descr}`);\r\n return false;\r\n } else if (!tipoZonaIva.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca un Nombre');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n addNewTipoZonaIva = tipoZonaIva => {\r\n this.props.setSaveState(true);\r\n this.props.addTipoZonaIva(tipoZonaIva);\r\n };\r\n\r\n newTipoZonaIva = () => {\r\n this.props.openDialog('EditCvTipoZonaIva', {\r\n cvTipoZonaIva: {},\r\n okHandler: this.addNewTipoZonaIva,\r\n checkTipoZonaIva: this.checkTipoZonaIva,\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, fromRowData, updated }) => {\r\n\r\n if (fromRow !== toRow) return; //solo modificamos una fila\r\n\r\n // for (let i = fromRow; i <= toRow; i++) {\r\n // let updatedRow = update(this.props.tiposZonaIva[i], { $merge: updated });\r\n // this.props.setSaveState(true);\r\n // this.props.modifyTipoZonaIva(updatedRow);\r\n // };\r\n\r\n let updatedRow = update(this.props.tiposZonaIva[fromRowData.grid_index], { $merge: updated });\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoZonaIva(updatedRow);\r\n\r\n };\r\n\r\n handleDeleteRow = tipoZonaIva => {\r\n this.props.setSaveState(true);\r\n this.props.removeTipoZonaIva(tipoZonaIva);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresTipoZonaIVA.propTypes = {\r\n //state\r\n tipoZonaIVA: PropTypes.array.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getTipoZonaIva: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyTipoZonaIva: PropTypes.func.isRequired,\r\n removeTipoZonaIva: PropTypes.func.isRequired,\r\n addTipoZonaIva: PropTypes.func.isRequired,\r\n updateTipoZonaIvaDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n tiposZonaIva: state.tipoZonaIva.tiposzona,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getTipoZonaIva,\r\n openDialog,\r\n hideDialog,\r\n modifyTipoZonaIva,\r\n removeTipoZonaIva,\r\n addTipoZonaIva,\r\n updateTipoZonaIvaDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresTipoZonaIVA));","import { getData, postData, putData } from './redux_data';\r\nimport {\r\n GET_USUARIOS, GET_USUARIOS_KD, GET_USUARIO_DETALLES, UPDATE_USUARIO_DETALLES, ADD_NEW_USUARIO, MODIFY_USUARIO_DETALLES\r\n} from '../constants/action_types';\r\n\r\nexport function getUsuarios() {\r\n return getData('vusuarios', GET_USUARIOS);\r\n}\r\n\r\nexport function getUsuariosKD(id) {\r\n return getData('vusuarios/kd?centro=' + id, GET_USUARIOS_KD);\r\n}\r\n\r\nexport function getUsuarioDetalle(id) {\r\n return getData('usuarios/' + id, GET_USUARIO_DETALLES);\r\n};\r\n\r\nexport function modifyFieldDetalleUsuario(field, value) {\r\n return dispatch => {\r\n dispatch({ type: MODIFY_USUARIO_DETALLES, payload: { field, value } })\r\n };\r\n};\r\n\r\nexport function newUsuarioDB(usuario, thenHandler) {\r\n return postData('usuarios', UPDATE_USUARIO_DETALLES, usuario, 'Usuario creado correctamente', thenHandler);\r\n}\r\n\r\nexport function updateDetallesUsuarioDB(usuario, id, thenHandler) {\r\n return putData('usuarios', UPDATE_USUARIO_DETALLES, usuario, id, 'usuario modificado correctamente', thenHandler);\r\n}\r\n\r\nexport function addNewUsuario(defaultCenter) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_NEW_USUARIO, payload:{defaultCenter} });\r\n };\r\n};\r\n","\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog } from '../../actions';\r\nimport { getUsuarios } from '../../actions/perfiles_usuario_actions';\r\nimport { getUsuariosKD } from '../../actions/perfiles_usuario_actions';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n margin: theme.spacing(1)\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n dispay: 'block'\r\n },\r\n bottomBtn: {\r\n position: 'absolute',\r\n right: '0',\r\n bottom: '0',\r\n margin: theme.spacing(1)\r\n },\r\n button: {\r\n margin: theme.spacing(1)\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresPerfilesUsuario extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n usuarios: []\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n if ( this.props.kd)\r\n this.props.getUsuariosKD(this.props.kd.centro_id);\r\n else\r\n this.props.getUsuarios();\r\n\r\n };\r\n\r\n // componentDidUpdate = (prevProps, prevState) =>{\r\n\r\n // }\r\n\r\n editUsuario = (usuario) => {\r\n this.props.navigate(\"edit_usuario/\" + usuario.id);\r\n }\r\n\r\n newUsuario = () => {\r\n this.props.navigate(\"edit_usuario/\" + -1);\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n let columnsUser = [\r\n { key: 'codigoUsuario', name: 'Código de usuario', editable: false, dragable: false, width: 150, },\r\n { key: 'nombre', name: 'Nombre', editable: false, dragable: false, width: 200, },\r\n { key: 'centro', name: 'Centro', editable: false, dragable: false, width: 150, },\r\n ];\r\n if ( this.props.kd ) columnsUser.splice(2,1);\r\n\r\n return (\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresPerfilesUsuario.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n //centroId: PropTypes.number.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n //getZonasCentro: PropTypes.func.isRequired,\r\n //modifyZonaCentro: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n usuarios: state.perfilesUsuario.usuarios,\r\n kd: state.userProfile.kd,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getUsuarios,\r\n getUsuariosKD,\r\n openDialog,\r\n hideDialog,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresPerfilesUsuario));","import {\r\n ADD_CENTRO_USUARIO,\r\n DELETE_CENTRO_USUARIO,\r\n MODIFY_CENTRO_USUARIO\r\n} from '../constants/action_types';\r\n\r\nexport function addUsuarioCentro(centro) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_CENTRO_USUARIO, payload: centro });\r\n };\r\n};\r\n\r\nexport function modifyUsuarioCentro(centro) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_CENTRO_USUARIO, payload: centro });\r\n };\r\n};\r\n\r\n\r\nexport function removeUsuarioCentro(centro) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_CENTRO_USUARIO, payload: centro });\r\n };\r\n};","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { addUsuarioCentro, removeUsuarioCentro, modifyUsuarioCentro } from '../../actions/perfiles_usuario_centros_actions';\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nconst perfiles = [\r\n { id: 0, perfil: 'Super Administrador - old' },\r\n { id: 1, perfil: 'Invitado - old' },\r\n { id: 2, perfil: 'Administrativo/a Central - old' },\r\n { id: 3, perfil: 'Gerente - old' },\r\n { id: 4, perfil: 'Director - old' },\r\n { id: 5, perfil: 'Director Administrativo/a - old' },\r\n { id: 6, perfil: 'Recepcionista - old' },\r\n { id: 7, perfil: 'Mecánico Central - old' },\r\n { id: 8, perfil: 'Encargada/o de Centro - old' },\r\n { id: 10, perfil: 'Socio - old' },\r\n { id: 11, perfil: 'Consultor CheckList - old' },\r\n //nuevos perfiles\r\n { id: 12, perfil: 'Recepción' },\r\n { id: 13, perfil: 'Op. Encargado' },\r\n { id: 14, perfil: 'Gerencia' },\r\n { id: 15, perfil: 'Supervisor Zona' },\r\n { id: 16, perfil: 'Administrativo Zona' },\r\n { id: 17, perfil: 'Dirección Administración' },\r\n { id: 18, perfil: 'Dirección Operaciones' },\r\n { id: 19, perfil: 'Dirección Marketing' },\r\n { id: 20, perfil: 'Dirección General' },\r\n { id: 21, perfil: 'Socio/Invitado' },\r\n { id: 22, perfil: 'Central de Compras'},\r\n { id: 23, perfil: 'Marketing'},\r\n]\r\n\r\nclass UsuarioCentros extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n usuarioCentros: []\r\n }\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n\r\n if (prevProps.usuarioCentros !== this.props.usuarioCentros) {\r\n const centros_usuario = this.props.usuarioCentros.map((uc, index) => {\r\n return {\r\n id: uc.id,\r\n usuarioId: uc.usuarioId,\r\n centroId: uc.centroId,\r\n iPerfil: uc.iPerfil,\r\n centro: this.props.centros.find(c => c.id === uc.centroId).centro,\r\n perfil: perfiles.find(p => p.id === uc.iPerfil).perfil,\r\n\r\n }\r\n });\r\n this.setState({ ...this.state, usuarioCentros: centros_usuario });\r\n }\r\n }\r\n\r\n addCentro = (centro) => {\r\n this.props.setSaveState(true);\r\n this.props.addUsuarioCentro(centro);\r\n };\r\n\r\n modifyCentroUsuario = (centro) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyUsuarioCentro(centro);\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, \"message_usuario_centros\", false, 'sm');\r\n\r\n };\r\n\r\n checkCentro = (centro) => {\r\n\r\n return true;\r\n };\r\n\r\n newCentro = () => {\r\n\r\n this.props.openDialog('EditCentroUsuario', {\r\n centro: {},\r\n centros: this.props.centros,\r\n usuarioId: this.props.id,\r\n perfiles: perfiles,\r\n okHandler: this.addCentro,\r\n checkCentro: this.checkCentro,\r\n }, \"new_usuario_centro_dialog\");\r\n\r\n };\r\n\r\n editCentro = (centro) => {\r\n\r\n this.props.openDialog('EditCentroUsuario', {\r\n centro,\r\n centros: this.props.centros,\r\n usuarioId: this.props.id,\r\n perfiles: perfiles,\r\n okHandler: this.modifyCentroUsuario,\r\n checkCentro: this.checkCentro\r\n }, \"edit_centro_centro_dialog\");\r\n\r\n };\r\n\r\n removeCentro = (centro, index) => {\r\n this.props.setSaveState(true);\r\n this.props.removeUsuarioCentro(centro);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n Centros\r\n\r\n \r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nUsuarioCentros.propTypes = {\r\n //state\r\n usuarioCentros: PropTypes.array.isRequired,\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n usuarioCentros: state.usuarioCentros.usuarioCentros,\r\n centros: state.centros.centros,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n addUsuarioCentro,\r\n removeUsuarioCentro,\r\n modifyUsuarioCentro,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles, { withTheme: true })(UsuarioCentros));","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport { navigate, openDialog, setSaveState } from '../../actions';\r\nimport { newUsuarioDB, updateDetallesUsuarioDB } from '../../actions/perfiles_usuario_actions';\r\n\r\nconst styles = theme => ({\r\n buttonsBottom: {\r\n margin: '20px 15px 30px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\n\r\nclass UsuarioActionButtons extends Component {\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, 'save_usuario_detalles_error', false, 'sm');\r\n\r\n };\r\n\r\n\r\n checkFields = usuario => {\r\n\r\n if (usuario.codigoUsuario === '') {\r\n this.messageDialog('Por favor, rellene el campo Código de usuario');\r\n return false;\r\n }\r\n else if (usuario.password === '') {\r\n this.messageDialog('Por favor rellene el campo Password');\r\n return false;\r\n }\r\n else if (usuario.nombre === '') {\r\n this.messageDialog('Pro favor rellene el campo Nombre');\r\n return false;\r\n }\r\n\r\n return true;\r\n\r\n };\r\n\r\n updateHandler = () => {\r\n\r\n const centros = this.props.usuarioCentros.usuarioCentros.map(uc => {\r\n if (typeof uc.id !== 'number') return { ...uc, id: 0 };\r\n else return uc;\r\n })\r\n\r\n const usuario = {\r\n id: this.props.usuarioDetalles.id,\r\n codigoUsuario: this.props.usuarioDetalles.codigoUsuario,\r\n password: this.props.usuarioDetalles.password,\r\n nombre: this.props.usuarioDetalles.nombre,\r\n centroId: this.props.usuarioDetalles.centroId,\r\n activo: this.props.usuarioDetalles.activo,\r\n usuarioCentro: centros\r\n };\r\n\r\n if (this.checkFields(usuario)) {\r\n\r\n this.props.setSaveState(false);\r\n\r\n if (this.props.id === -1) this.props.newUsuarioDB(usuario, () => this.props.navigate('mae_auxiliares_perfiles_usuario'))\r\n\r\n else this.props.updateDetallesUsuarioDB(usuario, this.props.id, () => this.props.navigate('mae_auxiliares_perfiles_usuario'));\r\n };\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n \r\n this.updateHandler()}>\r\n Guardar\r\n \r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nUsuarioActionButtons.propTypes = {\r\n //state\r\n id: PropTypes.number.isRequired,\r\n usuarioDetalles: PropTypes.object.isRequired,\r\n\r\n //dispatch\r\n updateDetallesUsuarioDB: PropTypes.func.isRequired,\r\n newUsuarioDB: PropTypes.func.isRequired,\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n usuarioDetalles: state.usuarioDetalles.usuarioDetalles,\r\n usuarioCentros: state.usuarioCentros,\r\n isLoading: state.usuarioDetalles.isLoading\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n newUsuarioDB,\r\n updateDetallesUsuarioDB,\r\n navigate,\r\n openDialog,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withStyles(styles, { withTheme: true })(UsuarioActionButtons)));","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router'\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Input from '@material-ui/core/Input';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Icon from '@material-ui/core/Icon';\r\n\r\nimport UsuarioCentros from './usuario_centros';\r\nimport UsuarioActionButtons from './usuario_action_buttons';\r\n\r\n//actions:\r\nimport { navigate, setSaveState, openDialog } from '../../actions';\r\nimport { getAllCentros } from '../../actions/centro_actions';\r\nimport { getUsuarioDetalle, modifyFieldDetalleUsuario, addNewUsuario } from '../../actions/perfiles_usuario_actions';\r\n\r\n//for the select options:\r\n\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n toolbar: {\r\n display: 'block',\r\n minHeight: 112,\r\n marginBottom: 15,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n formRight: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 0 5px 20px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n formSelect: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 0 5px 20px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n formComent: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '10px 0 5px 25px',\r\n width: 520,\r\n minWidth: 120,\r\n },\r\n grid: {\r\n padding: '0 12px',\r\n width: '100%',\r\n },\r\n buttonAtras: {\r\n margin: '0 0 10px 16px',\r\n height: 40,\r\n width: 123,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n centroSelect: {\r\n maxWidth: 240\r\n },\r\n modeloSelect: {\r\n marginRight: 20,\r\n maxWidth: 240\r\n },\r\n buttonIcon: {\r\n marginLeft: theme.spacing(2),\r\n borderRadius: 0,\r\n border: 'none',\r\n boxShadow: 'none',\r\n height: 48\r\n },\r\n});\r\n\r\nclass UsuarioEdit extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n id: this.props.match.params.id,\r\n codigoUsuario: '',\r\n password: '',\r\n nombre: '',\r\n centro: '',\r\n centroId: -1,\r\n activo: true,\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getAllCentros();\r\n\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n\r\n if (prevProps.centros !== this.props.centros) {\r\n if (this.props.match.params.id === '-1') {\r\n this.props.addNewUsuario(this.props.centroDiaSelected.centro.id);\r\n }\r\n else {\r\n this.props.getUsuarioDetalle(this.props.match.params.id);\r\n }\r\n }\r\n else if (prevProps.usuarioDetalles !== this.props.usuarioDetalles) {\r\n this.setState({\r\n id: this.props.usuarioDetalles.id,\r\n codigoUsuario: this.props.usuarioDetalles.codigoUsuario,\r\n password: this.props.usuarioDetalles.password,\r\n nombre: this.props.usuarioDetalles.nombre,\r\n centro: this.props.centros.find(c => c.id === this.props.usuarioDetalles.centroId).centro,\r\n centroId: this.props.usuarioDetalles.centroId,\r\n activo: this.props.usuarioDetalles.activo,\r\n });\r\n\r\n //if ((prevProps.updated !== this.props.updated) && this.props.updated) this.props.navigate(\"mae_auxiliares_perfiles_usuario\");\r\n\r\n }\r\n\r\n\r\n };\r\n\r\n //textfield\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n\r\n //checkbox:\r\n handleBooleanChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.checked });\r\n };\r\n\r\n\r\n onBlur = (event, field) => {\r\n\r\n const value = field === 'centroId' ? parseInt(this.state[field]) : this.state[field];\r\n\r\n if (this.props.usuarioDetalles[field] !== value) {\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldDetalleUsuario(field, value);\r\n }\r\n\r\n };\r\n\r\n onBlurCheckBox = (event, field) => {\r\n\r\n let value = event.target.checked;\r\n\r\n if (value === 'true') value = true;\r\n else if (value === 'false') value = false;\r\n\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldDetalleUsuario(field, value);\r\n };\r\n\r\n\r\n goBack = () => {\r\n if (this.props.saveState.pending) {\r\n this.props.openDialog('ConfirmationDialog', {\r\n message: 'Existen cambios no guardados. Desea abandonar la sección y perder los cambios?',\r\n acceptHandler: () => {\r\n this.props.setSaveState(false);\r\n this.props.navigate(\"mae_auxiliares_perfil_usuario\");\r\n }\r\n }, 'left-drawer-confirmation-message', false, 'sm');\r\n }\r\n else {\r\n this.props.navigate(\"mae_auxiliares_perfiles_usuario\");\r\n }\r\n }\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (!this.props.isLoading && this.props.centros ?\r\n
\r\n
\r\n \r\n
\r\n keyboard_backspace\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'nombre')}\r\n onBlur={(event) => this.onBlur(event, 'nombre')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'nombre') }; }}\r\n />\r\n \r\n\r\n {this.props.kd === undefined ? (\r\n \r\n Centro\r\n this.handleValueChange(event, 'centroId')}\r\n onBlur={(event) => this.onBlur(event, 'centroId')}\r\n input={}\r\n name=\"centroId\"\r\n >\r\n {this.props.centros.map(centro => {\r\n return ()\r\n })}\r\n \r\n \r\n ) : (\r\n ''\r\n )\r\n }\r\n
\r\n\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'codigoUsuario')}\r\n onBlur={(event) => this.onBlur(event, 'codigoUsuario')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'codigoUsuario') }; }}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'password')}\r\n onBlur={(event) => this.onBlur(event, 'password')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'password') }; }}\r\n />\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n this.handleBooleanChange(event, 'activo')}\r\n onBlur={(event) => this.onBlurCheckBox(event, 'activo')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e) }; }}\r\n color=\"primary\"\r\n />\r\n }\r\n label=\"Activo\"\r\n />\r\n \r\n\r\n
\r\n
\r\n {this.props.kd === undefined ? (\r\n
\r\n \r\n
\r\n ) : (\r\n ''\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n : ''\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nUsuarioEdit.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n usuarioDetalles: PropTypes.object,\r\n updated: PropTypes.bool.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n usuarioDetalles: state.usuarioDetalles.usuarioDetalles,\r\n updated: state.usuarioDetalles.updated,\r\n centros: state.centros.centros,\r\n centroDiaSelected: state.centroDiaSelected,\r\n saveState: state.saveState,\r\n kd: state.userProfile.kd,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n setSaveState,\r\n getAllCentros,\r\n getUsuarioDetalle,\r\n modifyFieldDetalleUsuario,\r\n addNewUsuario,\r\n openDialog\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withStyles(styles, { withTheme: true })(UsuarioEdit)));","import axios from 'axios';\r\nimport {getData, postData, putData} from './redux_data';\r\nimport {\r\n GET_EMPRESAS,\r\n CREATE_EMPRESA,\r\n UPDATE_EMPRESA,\r\n DELETE_EMPRESA,\r\n OPEN_DIALOG,\r\n} from '../constants/action_types';\r\n\r\nimport * as config from '../constants/configuration';\r\n\r\n//mae_empresa actions:\r\nexport function getEmpresas() {\r\n return getData('empresas', GET_EMPRESAS);\r\n};\r\n\r\nexport function createNewEmpresaDB(empresa) {\r\n\r\n return postData('empresas', CREATE_EMPRESA, empresa, undefined, undefined);\r\n \r\n};\r\n\r\nexport function updateEmpresaDB(empresa, id) {\r\n \r\n return putData('empresas/', UPDATE_EMPRESA, empresa, id, 'Datos de la empresa guardados', undefined);\r\n\r\n};\r\n\r\nexport function deleteEmpresaDB(id) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_EMPRESA, payload: id })\r\n let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n axios.delete(config.API_URI() + 'empresas/' + id,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n }\r\n ).then((response) => {\r\n dispatch({ type: DELETE_EMPRESA + \"_SUCCESS\", payload: response })\r\n }).catch((error) => {\r\n if (error.response.status === 409) {\r\n dispatch({\r\n type: OPEN_DIALOG,\r\n modalType: 'SimpleMessage',\r\n modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n dialogid: 'error_delete_empresa_' + id\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: OPEN_DIALOG,\r\n modalType: 'SimpleMessage',\r\n modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n dialogid: 'error_delete_empresa_' + id\r\n });\r\n }\r\n });\r\n };\r\n};","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog } from '../../actions';\r\nimport { getEmpresas, deleteEmpresaDB } from '../../actions/empresa_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\n//import { Tooltip, Fade } from '@material-ui/core';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeEmpresa extends Component {\r\n\r\n // constructor(props) {\r\n // super(props);\r\n\r\n // this.state = {\r\n // removed: false,\r\n // };\r\n // };\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getEmpresas();\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.refresh !== this.props.refresh && this.props.refresh) {\r\n this.props.getEmpresas();\r\n };\r\n };\r\n\r\n editEmpresa = (empresa) => {\r\n this.props.navigate(\"edit_empresa/\" + empresa.id);\r\n };\r\n\r\n newEmpresa = () => {\r\n this.props.navigate(\"edit_empresa/\" + -1);\r\n };\r\n\r\n\r\n handleDeleteRow = emp => {\r\n // this.setState({ removed: true })\r\n this.props.openDialog('ConfirmationDialog', {\r\n message: '¿Desea borrar definitivamente la empresa ' + this.props.empresas.find(c => c.id === emp.id).empresa1 + '? \\n NO es posible deshacer esta operación',\r\n acceptHandler: () => {\r\n this.props.deleteEmpresaDB(emp.id);\r\n }\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeEmpresa.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n empresas: PropTypes.array.isRequired,\r\n refresh: PropTypes.bool.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getEmpresas: PropTypes.func.isRequired,\r\n deleteEmpresaDB: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n empresas: state.empresas.empresas,\r\n refresh: state.empresas.refresh,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getEmpresas,\r\n deleteEmpresaDB,\r\n openDialog,\r\n hideDialog,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeEmpresa));","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router'\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Tooltip, Fade } from '@material-ui/core'; \r\n\r\n//component:\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { createNewEmpresaDB, updateEmpresaDB, } from '../../actions/empresa_actions';\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '100%',\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: 112,\r\n marginBottom: 15,\r\n },\r\n buttonAtras: {\r\n margin: '0 0 10px 16px',\r\n height: 40,\r\n width: 123,\r\n padding: '10px 0',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n formControl: {\r\n margin: '5px 0 5px 20px',\r\n height: 72,\r\n width: 185,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: 600,\r\n },\r\n buttonsBottom: {\r\n margin: '60px 15px 30px 8px',\r\n padding: '10px 0',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass EmpresaEdit extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n id: '',\r\n empresa1: '',\r\n direccion1: '',\r\n direccion2: '',\r\n cp: '',\r\n localidad: '',\r\n pais: '',\r\n telfCentro: '',\r\n emailCentro: '',\r\n gerente: '',\r\n nif: '',\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n const empresaDetalles = this.props.empresas.find(e => e.id === parseInt(this.props.match.params.id));\r\n\r\n this.setState({\r\n id: empresaDetalles ? empresaDetalles.id : -1,\r\n empresa1: empresaDetalles ? !empresaDetalles.empresa1 ? '' : empresaDetalles.empresa1 : '',\r\n direccion1: empresaDetalles ? !empresaDetalles.direccion1 ? '' : empresaDetalles.direccion1 : '',\r\n direccion2: empresaDetalles ? !empresaDetalles.direccion2 ? '' : empresaDetalles.direccion2 : '',\r\n cp: empresaDetalles ? !empresaDetalles.cp ? '' : empresaDetalles.cp : '',\r\n localidad: empresaDetalles ? !empresaDetalles.localidad ? '' : empresaDetalles.localidad : '',\r\n pais: empresaDetalles ? !empresaDetalles.pais ? '' : empresaDetalles.pais : '',\r\n telfCentro: empresaDetalles ? !empresaDetalles.telfCentro ? '' : empresaDetalles.telfCentro : '',\r\n emailCentro: empresaDetalles ? !empresaDetalles.emailCentro ? '' : empresaDetalles.emailCentro : '',\r\n gerente: empresaDetalles ? !empresaDetalles.gerente ? '' : empresaDetalles.gerente : '',\r\n nif: empresaDetalles ? !empresaDetalles.nif ? '' : empresaDetalles.nif : '',\r\n })\r\n };\r\n\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.refresh !== this.props.refresh && this.props.refresh) {\r\n this.props.navigate(\"mae_empresa\");\r\n };\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkCvEmpresa = (emp) => {\r\n //email regular expression:\r\n var re = /[^@]+@[^@]+\\.[^@]+/;\r\n\r\n if (this.props.empresas.find(elem => (elem.empresa1 === emp.empresa1) && (elem.id !== emp.id))) {\r\n this.messageDialog(`Ya existe una empresa ${emp.empresa1}`);\r\n return false;\r\n } else if (!emp.empresa1.trim()) {\r\n this.messageDialog('Por favor, rellene el campo Empresa');\r\n return false;\r\n } else if (emp.emailCentro && !re.test(emp.emailCentro)) {\r\n this.messageDialog('El Email introducido no es válido');\r\n return false;\r\n }\r\n\r\n else return true;\r\n\r\n };\r\n\r\n updateHandler = () => {\r\n const empresa = {\r\n id: this.state.id,\r\n empresa1: this.state.empresa1,\r\n direccion1: this.state.direccion1,\r\n direccion2: this.state.direccion2,\r\n cp: this.state.cp,\r\n localidad: this.state.localidad,\r\n pais: this.state.pais,\r\n telfCentro: this.state.telfCentro,\r\n emailCentro: this.state.emailCentro,\r\n gerente: this.state.gerente,\r\n nif: this.state.nif,\r\n };\r\n\r\n if (this.checkCvEmpresa(empresa)) {\r\n empresa.id === -1 ? this.props.createNewEmpresaDB(empresa) : this.props.updateEmpresaDB(empresa, this.props.match.params.id);\r\n }\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n {/* */}\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'empresa1')}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'direccion1')}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'direccion2')}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'cp')}\r\n />\r\n \r\n\r\n\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'localidad')}\r\n />\r\n \r\n \r\n this.handleValueChange(event, 'pais')}\r\n />\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'telfCentro')}\r\n />\r\n \r\n \r\n this.handleValueChange(event, 'emailCentro')}\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'gerente')}\r\n />\r\n \r\n \r\n \r\n \r\n this.handleValueChange(event, 'nif')}\r\n />\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nEmpresaEdit.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n empresas: PropTypes.array.isRequired,\r\n refresh: PropTypes.bool.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n navigate: PropTypes.func.isRequired,\r\n updateEmpresaDB: PropTypes.func.isRequired,\r\n createNewEmpresaDB: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n empresas: state.empresas.empresas,\r\n refresh: state.empresas.refresh,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n openDialog,\r\n hideDialog,\r\n updateEmpresaDB,\r\n createNewEmpresaDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withStyles(styles, { withTheme: true })(EmpresaEdit)));\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog } from '../../actions';\r\nimport { getAllCentros, deleteCentroDB } from '../../actions/centro_actions';\r\nimport { getEmpresas } from '../../actions/empresa_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeCentro extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n centros: []\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getAllCentros();\r\n this.props.getEmpresas();\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (this.props.refresh) {\r\n this.props.getAllCentros();\r\n this.props.getEmpresas();\r\n }\r\n else if (this.props.centros !== prevProps.centros) {\r\n\r\n\r\n let ord_centros = this.props.centros.slice();\r\n\r\n ord_centros.sort((a, b) => { return b.activo - a.activo });\r\n\r\n this.setState({ ...this.state, centros: ord_centros })\r\n\r\n }\r\n };\r\n\r\n editCentro = (centro) => {\r\n this.props.navigate(\"edit_centro/\" + centro.id);\r\n };\r\n\r\n newCentro = () => {\r\n this.props.openDialog('CentroNew', {}, uuidv4());\r\n };\r\n\r\n deleteCentro = centro => {\r\n this.props.openDialog('ConfirmationDialog', {\r\n message: '¿Desea borrar definitivamente el centro ' + this.props.centros.find(c => c.id === centro.id).centro + '? \\n NO es posible deshacer esta operación',\r\n acceptHandler: () => {\r\n this.props.deleteCentroDB(centro.id);\r\n }\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n );\r\n\r\n };\r\n};\r\n\r\nMaeCentro.propTypes = {\r\n //state:\r\n user: PropTypes.object.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n refresh: PropTypes.bool.isRequired,\r\n //dispatch:\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n getEmpresas: PropTypes.func.isRequired,\r\n deleteCentroDB: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n refresh: state.centros.refresh\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate: navigate,\r\n openDialog: openDialog,\r\n getAllCentros,\r\n getEmpresas,\r\n deleteCentroDB: deleteCentroDB\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(MaeCentro));","import {getData} from './redux_data';\r\nimport {\r\n GET_CAJAS_CENTRO, ADD_CAJA_CENTRO, MODIFY_CAJA_CENTRO, REMOVE_CAJA_CENTRO //cajas de un centro\r\n} from '../constants/action_types';\r\n\r\n\r\nexport function getCajasCentro(centroId) {\r\n // return getData('cajas/vcajas/' + centroId, GET_CAJAS_CENTRO);\r\n return getData('vcajas?centro_id=' + centroId, GET_CAJAS_CENTRO);\r\n}\r\n\r\nexport function modifyCajaCentro(caja) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_CAJA_CENTRO, payload: caja });\r\n }\r\n}\r\n\r\nexport function addCajaCentro(caja) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_CAJA_CENTRO, payload: caja });\r\n }\r\n}\r\n\r\nexport function removeCajaCentro(caja) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: REMOVE_CAJA_CENTRO, payload: caja });\r\n }\r\n}","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport {\r\n getCajasCentro, modifyCajaCentro, addCajaCentro, removeCajaCentro\r\n} from '../../actions/cajas_centro_actions';\r\nimport {\r\n openDialog, hideDialog, setSaveState\r\n} from '../../actions';\r\n\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\n\r\n\r\nclass CentroCajas extends React.Component {\r\n\r\n modifyCajaCentro = (caja) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyCajaCentro(caja);\r\n };\r\n\r\n addCajaCentro = (caja) => {\r\n this.props.setSaveState(true);\r\n this.props.addCajaCentro(caja);\r\n };\r\n\r\n checkCaja = (caja) => {\r\n\r\n if (this.props.cajasCentro.find(c => (c.descr === caja.descr) && (c.id !== caja.id))) {\r\n this.props.openDialog('SimpleMessage', { message: `Ya existe una caja ${caja.descr} en este centro` }, uuidv4(), false, 'sm');\r\n return false;\r\n } else if (!(caja.descr).trim().length) {\r\n this.props.openDialog('SimpleMessage', { message: `Por favor, introduzca un nombre de caja` }, uuidv4(), false, 'sm');\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n\r\n editCaja = (caja) => {\r\n\r\n this.props.openDialog('EditCajaCentro', {\r\n cajaCentro: caja,\r\n tiposZona: this.props.tiposZona,\r\n okHandler: this.modifyCajaCentro,\r\n checkCaja: this.checkCaja,\r\n centroid: this.props.centroid\r\n }, uuidv4());\r\n };\r\n\r\n newCaja = () => {\r\n\r\n this.props.openDialog('EditCajaCentro', {\r\n cajaCentro: {},\r\n tiposZona: this.props.tiposZona,\r\n okHandler: this.addCajaCentro,\r\n checkCaja: this.checkCaja,\r\n centroid: this.props.centroid\r\n }, uuidv4());\r\n\r\n };\r\n\r\n removeCaja = (caja, index) => {\r\n this.props.setSaveState(true);\r\n this.props.removeCajaCentro(caja);\r\n };\r\n\r\n componentDidMount() {\r\n\r\n this.props.getCajasCentro(this.props.centroid);\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n Cajas\r\n\r\n c.centroId === this.props.centroid): []}\r\n buttonEdit={true}\r\n buttonDelete={true}\r\n buttonNew={true}\r\n onNewRowClick={this.newCaja}\r\n onEditClick={this.editCaja}\r\n onDeleteClick={this.removeCaja}\r\n height={200}\r\n />\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nCentroCajas.propTypes = {\r\n //state\r\n cajasCentro: PropTypes.array.isRequired,\r\n tiposZona: PropTypes.array.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n getCajasCentro: PropTypes.func.isRequired,\r\n modifyCajaCentro: PropTypes.func.isRequired,\r\n addCajaCentro: PropTypes.func.isRequired,\r\n removeCajaCentro: PropTypes.func.isRequired,\r\n //parameters\r\n centroid: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n cajasCentro: state.cajasCentro.cajasCentro,\r\n tiposZona: state.tiposZona.tiposzona,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog: openDialog,\r\n hideDialog: hideDialog,\r\n getCajasCentro: getCajasCentro,\r\n modifyCajaCentro: modifyCajaCentro,\r\n addCajaCentro: addCajaCentro,\r\n removeCajaCentro: removeCajaCentro,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(CentroCajas));","import {getData} from './redux_data';\r\nimport {\r\n GET_ZONAS_CENTRO, MODIFY_ZONA_CENTRO, ADD_ZONA_CENTRO, REMOVE_ZONA_CENTRO,\r\n} from '../constants/action_types';\r\n\r\nexport function getZonasCentro(centroId) {\r\n return getData('VZonasPpto?centro_id=' + centroId, GET_ZONAS_CENTRO, centroId);\r\n}\r\n\r\nexport function modifyZonaCentro(zona) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_ZONA_CENTRO, payload: zona });\r\n }\r\n}\r\n\r\nexport function addZonaCentro(zona) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_ZONA_CENTRO, payload: zona });\r\n }\r\n}\r\n\r\nexport function removeZonaCentro(zona) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: REMOVE_ZONA_CENTRO, payload: zona });\r\n }\r\n}","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport {\r\n getZonasCentro, modifyZonaCentro, addZonaCentro, removeZonaCentro\r\n} from '../../actions/zonas_centro_actions';\r\nimport {\r\n openDialog, hideDialog, setSaveState\r\n} from '../../actions';\r\n\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass CentroZonas extends React.Component {\r\n\r\n modifyZonaCentro = (zona) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyZonaCentro(zona);\r\n };\r\n\r\n addZonaCentro = (zona) => {\r\n this.props.setSaveState(true);\r\n this.props.addZonaCentro(zona);\r\n };\r\n\r\n messageError = (error) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: error\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkZona = (zona) => {\r\n\r\n if (this.props.zonasCentro.find(c => (c.descr === zona.descr) && (c.id !== zona.id))) {\r\n this.messageError(`Ya existe una zona ${zona.descr} en este centro`);\r\n return false;\r\n } else if (!zona.descr.trim().length) {\r\n this.props.openDialog('SimpleMessage', { message: `Por favor, introduzca un nombre de zona` }, uuidv4(), false, 'sm');\r\n return false;\r\n }\r\n else return true;\r\n\r\n };\r\n\r\n\r\n editZona = (zona) => {\r\n this.props.openDialog('EditZonaCentro', {\r\n zonaCentro: zona,\r\n tiposZona: this.props.tiposZona,\r\n okHandler: this.modifyZonaCentro,\r\n checkZona: this.checkZona,\r\n centroid: this.props.centroid\r\n }, uuidv4());\r\n };\r\n\r\n newZona = () => {\r\n\r\n this.props.openDialog('EditZonaCentro', {\r\n zonaCentro: {},\r\n tiposZona: this.props.tiposZona,\r\n okHandler: this.addZonaCentro,\r\n checkZona: this.checkZona,\r\n centroid: this.props.centroid\r\n }, uuidv4());\r\n\r\n };\r\n\r\n removeZona = zona => {\r\n this.props.setSaveState(true);\r\n this.props.removeZonaCentro(zona);\r\n };\r\n\r\n componentDidMount() {\r\n\r\n this.props.getZonasCentro(this.props.centroid);\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n Zonas\r\n {this.props.zonasCentro && !this.props.isLoading ?\r\n {\r\n this.props.openDialog('ListaMovimientos', {\r\n zona_id: row.id,\r\n }, uuidv4(), false, 'sm');\r\n }\r\n },\r\n ]}\r\n rows={this.props.zonasCentro.filter(c => c.centroId === this.props.centroid)}\r\n buttonEdit={true}\r\n buttonDelete={true}\r\n buttonNew={true}\r\n onNewRowClick={this.newZona}\r\n onEditClick={this.editZona}\r\n onDeleteClick={this.removeZona}\r\n height={200}\r\n />\r\n :
}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nCentroZonas.propTypes = {\r\n //state\r\n zonasCentro: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n tiposZona: PropTypes.array.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n getZonasCentro: PropTypes.func.isRequired,\r\n modifyZonaCentro: PropTypes.func.isRequired,\r\n addZonaCentro: PropTypes.func.isRequired,\r\n removeZonaCentro: PropTypes.func.isRequired,\r\n //parameters\r\n centroid: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n zonasCentro: state.zonasCentro.zonas,\r\n isLoading: state.zonasCentro.isLoading,\r\n tiposZona: state.tiposZona.tiposzona,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog: openDialog,\r\n hideDialog: hideDialog,\r\n getZonasCentro: getZonasCentro,\r\n modifyZonaCentro: modifyZonaCentro,\r\n addZonaCentro: addZonaCentro,\r\n removeZonaCentro: removeZonaCentro,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(CentroZonas));","import {getData} from './redux_data';\r\nimport {\r\n GET_CONTAB_CENTRO, MODIFY_CONTAB_CENTRO, ADD_CONTAB_CENTRO, REMOVE_CONTAB_CENTRO //elementos de un centro\r\n} from '../constants/action_types';\r\n\r\nexport function getContabCentro(centroId) {\r\n return getData('ContabTipoMaquinaCentro/vContabTipoMaquinaCentro/' + centroId, GET_CONTAB_CENTRO);\r\n}\r\n\r\nexport function modifyContabCentro(contab) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_CONTAB_CENTRO, payload: contab });\r\n }\r\n}\r\n\r\nexport function addContabCentro(contab) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_CONTAB_CENTRO, payload: contab });\r\n }\r\n}\r\n\r\nexport function removeContabCentro(contab) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: REMOVE_CONTAB_CENTRO, payload: contab });\r\n }\r\n}","import {getData} from './redux_data';\r\nimport {\r\n GET_ZONAIVA_CENTRO, MODIFY_ZONAIVA_CENTRO, ADD_ZONAIVA_CENTRO, REMOVE_ZONAIVA_CENTRO, GET_TIPOSZONASIVA_CENTRO\r\n} from '../constants/action_types';\r\n\r\nexport function getZonaIvaCentro(centroId) {\r\n return getData('vcentrozonaiva?centro_id=' + centroId, GET_ZONAIVA_CENTRO);\r\n};\r\n\r\nexport function modifyZonaIvaCentro(tipozonaiva) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_ZONAIVA_CENTRO, payload: tipozonaiva });\r\n };\r\n};\r\n\r\nexport function addZonaIvaCentro(tipozonaiva) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_ZONAIVA_CENTRO, payload: tipozonaiva });\r\n };\r\n};\r\n\r\nexport function removeZonaIvaCentro(tipozonaiva) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: REMOVE_ZONAIVA_CENTRO, payload: tipozonaiva });\r\n };\r\n};\r\n\r\n//para el selectoption del new o edit dialog:\r\nexport function getTiposZonasIva() {\r\n return getData('cvtipozonaivas', GET_TIPOSZONASIVA_CENTRO);\r\n};","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Typography } from '@material-ui/core';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { getContabCentro, modifyContabCentro, addContabCentro, removeContabCentro } from '../../actions/contab_centro_actions';\r\nimport { getTiposZonasIva } from '../../actions/zona_iva_centro_actions';\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions';\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\n\r\nclass CentroContab extends React.Component {\r\n\r\n modifyContabCentro = contab => {\r\n this.props.setSaveState(true);\r\n this.props.modifyContabCentro(contab);\r\n };\r\n\r\n addContabCentro = contab => {\r\n this.props.setSaveState(true);\r\n this.props.addContabCentro(contab);\r\n };\r\n\r\n messageError = error => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: error\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkContab = contab => {\r\n\r\n if (this.props.contabCentro.find(c => (c.iTipoMaquina === contab.iTipoMaquina) && (c.id !== contab.id))) {\r\n this.messageError(`Ya existe una contabilidad para la máquina ${contab.tipoMaquina}`);\r\n return false;\r\n } else if (contab.fIni < '1900-01-01T00:00:00') {\r\n this.messageError('Fecha de inicio inválida');\r\n return false;\r\n } else if (contab.fEnd && contab.fIni > contab.fEnd) {\r\n this.messageError('Fecha de fin debe ser posterior a la de inicio');\r\n return false;\r\n } else if(contab.fEnd && contab.fEnd > '2079-06-06T00:00:00') {\r\n this.messageError('Fecha de fin debe ser anterior al año 2079');\r\n return false;\r\n }\r\n\r\n else return true;\r\n\r\n };\r\n\r\n editContab = contab => {\r\n this.props.openDialog('EditContabCentro', {\r\n contabCentro: contab,\r\n tiposMaquina: this.props.tiposMaquina,\r\n tiposZonaIva: this.props.tiposZonaIva,\r\n okHandler: this.modifyContabCentro,\r\n checkContab: this.checkContab,\r\n centroid: this.props.centroid\r\n }, uuidv4());\r\n };\r\n\r\n newContab = () => {\r\n\r\n this.props.openDialog('EditContabCentro', {\r\n contabCentro: {},\r\n tiposMaquina: this.props.tiposMaquina,\r\n tiposZonaIva: this.props.tiposZonaIva,\r\n okHandler: this.addContabCentro,\r\n checkContab: this.checkContab,\r\n centroid: this.props.centroid\r\n }, uuidv4());\r\n };\r\n\r\n removeContab = contab => {\r\n this.props.setSaveState(true);\r\n this.props.removeContabCentro(contab);\r\n };\r\n\r\n componentDidMount() {\r\n\r\n this.props.getContabCentro(this.props.centroid);\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n Contabilidad\r\n {this.props.contabCentro && !this.props.isLoading ?\r\n c.centroId === this.props.centroid)}\r\n buttonEdit={true}\r\n buttonDelete={true}\r\n buttonNew={true}\r\n onNewRowClick={this.newContab}\r\n onEditClick={this.editContab}\r\n onDeleteClick={this.removeContab}\r\n height={200}\r\n />\r\n :
}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nCentroContab.propTypes = {\r\n //state\r\n contabCentro: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n tiposMaquina: PropTypes.array.isRequired,\r\n tiposZonaIva: PropTypes.array.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n getContabCentro: PropTypes.func.isRequired,\r\n modifyContabCentro: PropTypes.func.isRequired,\r\n addContabCentro: PropTypes.func.isRequired,\r\n removeContabCentro: PropTypes.func.isRequired,\r\n //parameters\r\n centroid: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n contabCentro: state.contabCentro.contabCentro,\r\n isLoading: state.contabCentro.isLoading,\r\n tiposMaquina: state.tiposMaquina.tiposmaquina,\r\n tiposZonaIva: state.tiposZonaIva,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog: openDialog,\r\n hideDialog: hideDialog,\r\n getContabCentro: getContabCentro,\r\n modifyContabCentro: modifyContabCentro,\r\n addContabCentro: addContabCentro,\r\n removeContabCentro: removeContabCentro,\r\n getTiposZonasIva,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(CentroContab));","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { getZonaIvaCentro, modifyZonaIvaCentro, addZonaIvaCentro, removeZonaIvaCentro, getTiposZonasIva } from '../../actions/zona_iva_centro_actions';\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions';\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\n\r\nclass CentroZonaIva extends React.Component {\r\n\r\n componentDidMount() {\r\n\r\n this.props.getZonaIvaCentro(this.props.centroid);\r\n\r\n };\r\n\r\n\r\n modifyZonaIvaCentro = (zonaiva) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyZonaIvaCentro(zonaiva);\r\n };\r\n\r\n addZonaIvaCentro = (zonaiva) => {\r\n this.props.setSaveState(true);\r\n this.props.addZonaIvaCentro(zonaiva);\r\n };\r\n\r\n messageError = (error) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: error\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkZonaIva = (zonaiva) => {\r\n\r\n if (this.props.tiposZonaIva.find(tzi => (tzi.descr === zonaiva.zonaIva) && (tzi.id !== zonaiva.iTipoZonaIva))) {\r\n this.messageError(`Ya existe un tipo de zona de iva ${zonaiva.zonaIva}`);\r\n return false;\r\n } else if (zonaiva.fIni < '1900-01-01T00:00:00') {\r\n this.messageError('Fecha de inicio inválida');\r\n return false;\r\n } else if (zonaiva.fEnd && zonaiva.fIni > zonaiva.fEnd) {\r\n this.messageError('Fecha de fin debe ser posterior a la de inicio');\r\n return false;\r\n }\r\n else return true;\r\n\r\n };\r\n\r\n editZonaIva = (zonaiva) => {\r\n\r\n this.props.openDialog('EditZonaIvaCentro', {\r\n zonaiva: zonaiva,\r\n tiposZonaIva: this.props.tiposZonaIva,\r\n okHandler: this.modifyZonaIvaCentro,\r\n checkZonaIva: this.checkZonaIva,\r\n centroid: this.props.centroid\r\n }, uuidv4());\r\n };\r\n\r\n newZonaIva = () => {\r\n\r\n this.props.openDialog('EditZonaIvaCentro', {\r\n zonaiva: {},\r\n tiposZonaIva: this.props.tiposZonaIva,\r\n okHandler: this.addZonaIvaCentro,\r\n checkZonaIva: this.checkZonaIva,\r\n centroid: this.props.centroid\r\n }, uuidv4());\r\n\r\n };\r\n\r\n removeZonaIva = zonaiva => {\r\n this.props.setSaveState(true);\r\n this.props.removeZonaIvaCentro(zonaiva);\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n Zonas IVA\r\n {this.props.zonaIvaCentro && !this.props.isLoading ?\r\n \r\n :
}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nCentroZonaIva.propTypes = {\r\n //state\r\n zonaIvaCentro: PropTypes.array.isRequired,\r\n tiposZonaIva: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n getZonaIvaCentro: PropTypes.func.isRequired,\r\n modifyZonaIvaCentro: PropTypes.func.isRequired,\r\n addZonaIvaCentro: PropTypes.func.isRequired,\r\n removeZonaIvaCentro: PropTypes.func.isRequired,\r\n getTiposZonasIva: PropTypes.func.isRequired,\r\n //parameters\r\n centroid: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n zonaIvaCentro: state.zonaIvaCentro.zonaIvaCentro,\r\n isLoading: state.zonasCentro.isLoading,\r\n tiposZonaIva: state.tiposZonaIva\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n getZonaIvaCentro,\r\n modifyZonaIvaCentro,\r\n addZonaIvaCentro,\r\n removeZonaIvaCentro,\r\n getTiposZonasIva,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(CentroZonaIva));","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n\r\nimport {\r\n navigate, openDialog, setSaveState\r\n} from '../../actions';\r\n\r\nimport {\r\n updateCentroDB\r\n} from '../../actions/centro_actions';\r\n\r\nconst styles = theme => ({\r\n buttonsBottom: {\r\n margin: '10px 15px 30px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\n\r\nclass CentroActionButtons extends Component {\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkRequiredFields = (centro) => {\r\n if (!centro.descr) {\r\n this.messageDialog('Por favor, rellene el campo Nombre');\r\n return false;\r\n } else if (!centro.direccion1) {\r\n this.messageDialog('Por favor, rellene el campo Dirección 1');\r\n return false;\r\n }\r\n\r\n else return true;\r\n\r\n };\r\n\r\n\r\n updateHandler = () => {\r\n\r\n const cajas = this.props.cajasCentro.cajasCentro.map((c, index) => {\r\n const { id, ...newCaja } = c;\r\n if (typeof c.id !== 'string') newCaja.id = c.id;\r\n return newCaja;\r\n });\r\n\r\n const zonas = this.props.zonasCentro.zonas.map((c, index) => {\r\n const { id, ...newZona } = c;\r\n if (typeof c.id !== 'string') newZona.id = c.id;\r\n return newZona;\r\n });\r\n\r\n const contab = this.props.contabCentro.contabCentro.map((c, index) => {\r\n const { id, ...newContab } = c;\r\n if (typeof c.id !== 'string') newContab.id = c.id;\r\n return newContab;\r\n });\r\n\r\n const tiposZonaIva = this.props.zonaIvaCentro.zonaIvaCentro.map((c, index) => {\r\n const { id, ...newTipoZonaIva } = c;\r\n if (typeof c.id !== 'string') newTipoZonaIva.id = c.id;\r\n return newTipoZonaIva;\r\n });\r\n\r\n const centrosCentro = this.props.centrosCentro.centros.map((c, index) => {\r\n const { id, ...newCentro } = c;\r\n if (typeof c.id !== 'string') newCentro.id = c.id;\r\n return newCentro;\r\n });\r\n\r\n const centro = {\r\n ...this.props.centroDetalle.centrodetalle,\r\n descr: this.props.centroDetalle.centrodetalle.descr,\r\n direccion1: this.props.centroDetalle.centrodetalle.direccion1,\r\n direccion2: this.props.centroDetalle.centrodetalle.direccion2,\r\n iDiaCierre: this.props.centroDetalle.centrodetalle.iDiaCierre,\r\n canal: this.props.centroDetalle.centrodetalle.canal,\r\n empresaId: this.props.centroDetalle.centrodetalle.empresaId,\r\n caja: cajas,\r\n zonaPpto: zonas,\r\n contabTipoMaquinaCentro: contab,\r\n centroZonaIva: tiposZonaIva,\r\n grupoCentrosPadre: centrosCentro\r\n };\r\n\r\n if (this.checkRequiredFields(centro)) {\r\n this.props.setSaveState(false);\r\n this.props.updateCentroDB(centro, this.props.match.params.id, () => this.props.navigate(\"mae_centro\"));\r\n }\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n \r\n this.updateHandler()}>\r\n Guardar\r\n \r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nCentroActionButtons.propTypes = {\r\n //state\r\n cajasCentro: PropTypes.object.isRequired,\r\n zonasCentro: PropTypes.object.isRequired,\r\n contabCentro: PropTypes.object.isRequired,\r\n centroDetalle: PropTypes.object.isRequired,\r\n zonaIvaCentro: PropTypes.object.isRequired,\r\n centrosCentro: PropTypes.object.isRequired,\r\n //dispatch\r\n updateCentroDB: PropTypes.func.isRequired,\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n cajasCentro: state.cajasCentro,\r\n zonasCentro: state.zonasCentro,\r\n contabCentro: state.contabCentro,\r\n centroDetalle: state.centroDetalle,\r\n zonaIvaCentro: state.zonaIvaCentro,\r\n centrosCentro: state.centrosCentro\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n updateCentroDB: updateCentroDB,\r\n navigate,\r\n openDialog,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withStyles(styles, { withTheme: true })(CentroActionButtons)));","import {getData} from './redux_data';\r\nimport {\r\n GET_CENTROS_CENTRO, ADD_CENTRO_CENTRO, REMOVE_CENTRO_CENTRO,\r\n} from '../constants/action_types';\r\n\r\nexport function getCentrosCentro(centroId) {\r\n return getData('GrupoCentros?centro_id=' + centroId, GET_CENTROS_CENTRO, centroId);\r\n}\r\n\r\nexport function addCentroCentro(centro) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_CENTRO_CENTRO, payload: centro });\r\n }\r\n}\r\n\r\nexport function removeCentroCentro(centro) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: REMOVE_CENTRO_CENTRO, payload: centro });\r\n }\r\n}","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Typography } from '@material-ui/core';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport {\r\n getCentrosCentro, addCentroCentro, removeCentroCentro\r\n} from '../../actions/centros_centro_actions';\r\nimport {\r\n openDialog, hideDialog, setSaveState\r\n} from '../../actions';\r\n\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\n\r\n\r\nclass CentroCentros extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n centros: []\r\n }\r\n };\r\n\r\n\r\n addCentroCentro = (centro) => {\r\n this.props.setSaveState(true);\r\n this.props.addCentroCentro(centro);\r\n };\r\n\r\n checkCentro = (centro) => {\r\n return true;\r\n };\r\n\r\n\r\n newCentro = () => {\r\n\r\n this.props.openDialog('EditCentroCentro', {\r\n centroCentro: {},\r\n centros:this.props.centros,\r\n okHandler: this.addCentroCentro,\r\n checkCentro: this.checkCentro,\r\n centroid: this.props.centroid\r\n }, uuidv4());\r\n\r\n };\r\n\r\n removeCentro = (centro, index) => {\r\n this.props.setSaveState(true);\r\n this.props.removeCentroCentro(centro);\r\n };\r\n\r\n componentDidMount() {\r\n\r\n this.props.getCentrosCentro(this.props.centroid);\r\n\r\n };\r\n\r\n componentDidUpdate(prevProps) {\r\n if(prevProps.centrosCentro !== this.props.centrosCentro){\r\n\r\n const newCentros = this.props.centrosCentro.map(c => {\r\n\r\n return {\r\n id: c.id,\r\n descr: this.props.centros.find(centro => centro.id === c.hijoId).centro,\r\n padre: c.padreId,\r\n hijo: c.hijoId\r\n }\r\n\r\n });\r\n\r\n this.setState({...this.state, centros: newCentros});\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n Centros\r\n {this.props.centrosCentro && !this.props.isLoading ?\r\n \r\n :
}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nCentroCentros.propTypes = {\r\n //state\r\n centrosCentro: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n getCentrosCentro: PropTypes.func.isRequired,\r\n addCentroCentro: PropTypes.func.isRequired,\r\n removeCentroCentro: PropTypes.func.isRequired,\r\n //parameters\r\n centroid: PropTypes.number.isRequired,\r\n \r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centrosCentro: state.centrosCentro.centros,\r\n isLoading: state.cajasCentro.isLoading,\r\n centros: state.centros.centros,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n getCentrosCentro,\r\n addCentroCentro,\r\n removeCentroCentro,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(CentroCentros));","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router'\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Button from '@material-ui/core/Button';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Icon from '@material-ui/core/Icon';\r\n\r\n//component:\r\nimport CentroCajas from './centro_cajas';\r\nimport CentroZonas from './centro_zonas';\r\nimport CentroContab from './centro_contab';\r\nimport CentroZonaIva from './centro_zonaiva';\r\nimport CentroActionButtons from './centro_action_buttons';\r\nimport CentroCentros from './centro_centros';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getCentroDetalle, modifyFieldDetalleCentro, modifyFieldsCentroDialog } from '../../actions/centro_actions';\r\nimport { getTiposZona } from '../../actions/tipos_zona_actions';\r\nimport { getTiposMaquina } from '../../actions/tipos_maquina_actions';\r\nimport { getEmpresas } from '../../actions/empresa_actions';\r\nimport { getTiposZonasIva } from '../../actions/zona_iva_centro_actions';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nimport { getData } from '../../dataLib';\r\n\r\n\r\nconst styles = theme => ({\r\n toolbar: {\r\n display: 'block',\r\n minHeight: 112,\r\n marginBottom: 15,\r\n },\r\n formControl: {\r\n margin: '5px 0px 5px 20px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n grid: {\r\n padding: '0 12px',\r\n width: '100%',\r\n },\r\n icon: {\r\n margin: '0 auto',\r\n height: 50,\r\n width: 50,\r\n boxShadow: 'none',\r\n color: 'white'\r\n },\r\n buttonAtras: {\r\n margin: theme.spacing(1),\r\n height: 40,\r\n width: 123,\r\n padding: '10px',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n buttonIcon: {\r\n marginLeft: theme.spacing(2),\r\n borderRadius: 0,\r\n border: 'none',\r\n boxShadow: 'none',\r\n height: 48\r\n },\r\n});\r\n\r\nclass CentroEdit extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n descr: '',\r\n direccion1: '',\r\n direccion2: '',\r\n cp: '',\r\n localidad: '',\r\n iDiaCierre: 0,\r\n canal: '',\r\n activo: 0,\r\n empresaId: -1\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getCentroDetalle(this.props.match.params.id);\r\n this.props.getTiposZona();\r\n this.props.getTiposMaquina();\r\n this.props.getEmpresas();\r\n this.props.getTiposZonasIva();\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.centroDetalle !== this.props.centroDetalle) {\r\n this.setState({\r\n descr: this.props.centroDetalle.descr ? this.props.centroDetalle.descr : '',\r\n direccion1: this.props.centroDetalle.direccion1 ? this.props.centroDetalle.direccion1 : '',\r\n direccion2: this.props.centroDetalle.direccion2 ? this.props.centroDetalle.direccion2 : '',\r\n cp: this.props.centroDetalle.cp ? this.props.centroDetalle.cp : '',\r\n localidad: this.props.centroDetalle.localidad ? this.props.centroDetalle.localidad : '',\r\n iDiaCierre: this.props.centroDetalle.iDiaCierre ? this.props.centroDetalle.iDiaCierre : 0,\r\n canal: this.props.centroDetalle.canal ? this.props.centroDetalle.canal : 0,\r\n activo: this.props.centroDetalle.activo || 0,\r\n empresaId: this.props.centroDetalle.empresaId\r\n });\r\n }\r\n\r\n if ((prevProps.updated !== this.props.updated) && this.props.updated) this.props.navigate(\"mae_centro\")\r\n };\r\n\r\n createEmpresaSelectOptions = () => {\r\n return this.props.empresas.map((emp, index) => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n handleEmpresaSelectChange = (event) => {\r\n const value = parseInt(event.target.value);\r\n this.setState({ ...this.state, empresaId: value });\r\n }\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n onBlur = (event, field) => {\r\n\r\n //const value = event.target.value;\r\n const value = this.state[field];\r\n\r\n if (this.props.centroDetalle[field] !== value) {\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldDetalleCentro(field, value);\r\n }\r\n };\r\n\r\n\r\n\r\n //checkbox:\r\n handleCheckboxChange = e => {\r\n const value = e.target.checked;\r\n\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldDetalleCentro('activo', (value ? 1 : 0));\r\n\r\n this.setState({ ...this.state, activo: value ? 1 : 0 });\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkMoreDetailsDialog = (centro) => {\r\n //email regular expression:\r\n // var re = /[^@]+@[^@]+\\.[^@]+/;\r\n\r\n // if (centro.emailCentro && !re.test(centro.emailCentro)) {\r\n // this.messageDialog('El Email introducido no es válido');\r\n // return false;\r\n // }\r\n\r\n // else return true;\r\n\r\n return true;\r\n\r\n };\r\n\r\n //more centro details dialog:\r\n moreDetailsDialog = () => {\r\n\r\n // obtiene el inventario\r\n let URL = 'CvProvincias';\r\n\r\n this.setState({ ...this.state, showSpinner: true });\r\n\r\n if (this.state.provinciaList) {\r\n this.props.openDialog('MoreDetailsCentro', {\r\n centroDetalle: this.props.centroDetalle,\r\n modifyFieldsCentroDialog: this.props.modifyFieldsCentroDialog,\r\n checkMoreDetailsDialog: this.checkMoreDetailsDialog,\r\n provinciaList: this.state.provinciaList,\r\n openDialog: this.props.openDialog,\r\n user: this.props.user\r\n }, uuidv4(), false, 'md');\r\n } else {\r\n getData(URL,\r\n (response) => {\r\n this.setState({ ...this.state, showSpinner: false, provinciaList: response.data });\r\n this.props.openDialog('MoreDetailsCentro', {\r\n centroDetalle: this.props.centroDetalle,\r\n modifyFieldsCentroDialog: this.props.modifyFieldsCentroDialog,\r\n checkMoreDetailsDialog: this.checkMoreDetailsDialog,\r\n provinciaList: response.data,\r\n openDialog: this.props.openDialog,\r\n user: this.props.user\r\n }, uuidv4(), false, 'md');\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching provincias'\r\n }, 'centro_edut', false, 'sm');\r\n this.setState({ ...this.state, showSpinner: false });\r\n },\r\n this.props.user\r\n );\r\n }\r\n };\r\n\r\n\r\n goBack = () => {\r\n if (this.props.saveState.pending) {\r\n this.props.openDialog('ConfirmationDialog', {\r\n message: 'Existen cambios no guardados. Desea abandonar la sección y perder los cambios?',\r\n acceptHandler: () => {\r\n this.props.setSaveState(false);\r\n this.props.navigate(\"mae_centro\");\r\n }\r\n }, 'left-drawer-confirmation-message', false, 'sm');\r\n }\r\n else {\r\n this.props.navigate(\"mae_centro\");\r\n }\r\n }\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n if (!this.props.centroDetalle || !this.props.tiposZona) {\r\n\r\n return (
);\r\n\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {/* */}\r\n keyboard_backspace\r\n
\r\n \r\n this.handleValueChange(event, 'descr')}\r\n onBlur={(event) => this.onBlur(event, 'descr')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'descr') }; }}\r\n />\r\n \r\n\r\n \r\n Empresa: \r\n this.handleEmpresaSelectChange(event)}\r\n onBlur={(event) => this.onBlur(event, 'empresaId')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'empresaId') }; }}\r\n name=\"empresaId\"\r\n >\r\n {this.createEmpresaSelectOptions()}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'direccion1')}\r\n onBlur={(event) => this.onBlur(event, 'direccion1')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'direccion1') }; }}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'direccion2')}\r\n onBlur={(event) => this.onBlur(event, 'direccion2')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'direccion2') }; }}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'cp')}\r\n onBlur={(event) => this.onBlur(event, 'cp')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cp') }; }}\r\n />\r\n \r\n\r\n \r\n this.handleValueChange(event, 'localidad')}\r\n onBlur={(event) => this.onBlur(event, 'localidad')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'localidad') }; }}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Día de cierre\r\n \r\n this.handleValueChange(event, 'iDiaCierre')}\r\n onBlur={(event) => this.onBlur(event, 'iDiaCierre')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'iDiaCierre') }; }}\r\n name=\"iDiaCierre\"\r\n >\r\n Lunes\r\n Martes\r\n Miércoles\r\n Jueves\r\n Viernes\r\n Sábado\r\n Domingo\r\n \r\n \r\n\r\n \r\n this.handleValueChange(event, 'canal')}\r\n onBlur={(event) => this.onBlur(event, 'canal')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'canal') }; }}\r\n />\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n }\r\n label=\"Activo\"\r\n />\r\n \r\n\r\n {/* \r\n \r\n +\r\n \r\n */}\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n\r\n\r\n
\r\n\r\n {this.props.centroDetalle.isGroup ?\r\n
\r\n \r\n
\r\n :\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nCentroEdit.propTypes = {\r\n //state\r\n centroDetalle: PropTypes.object.isRequired,\r\n modifyFieldDetalleCentro: PropTypes.func.isRequired,\r\n modifyFieldsCentroDialog: PropTypes.func.isRequired,\r\n tiposZona: PropTypes.object.isRequired,\r\n tiposMaquina: PropTypes.array.isRequired,\r\n empresas: PropTypes.array.isRequired,\r\n user: PropTypes.object.isRequired,\r\n updated: PropTypes.bool.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n getCentroDetalle: PropTypes.func.isRequired,\r\n getTiposZona: PropTypes.func.isRequired,\r\n getTiposMaquina: PropTypes.func.isRequired,\r\n getEmpresas: PropTypes.func.isRequired,\r\n getTiposZonasIva: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDetalle: state.centroDetalle.centrodetalle,\r\n updated: state.centroDetalle.updated,\r\n tiposZona: state.tiposZona,\r\n tiposMaquina: state.tiposMaquina.tiposmaquina,\r\n empresas: state.empresas.empresas,\r\n user: state.oidc.user,\r\n saveState: state.saveState,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n openDialog,\r\n hideDialog,\r\n getCentroDetalle,\r\n modifyFieldDetalleCentro,\r\n modifyFieldsCentroDialog,\r\n getTiposZona,\r\n getTiposMaquina,\r\n getEmpresas,\r\n getTiposZonasIva,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withStyles(styles, { withTheme: true })(CentroEdit)));\r\n","\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog } from '../../actions';\r\nimport { getZonasCentro, modifyZonaCentro } from '../../actions/zonas_centro_actions';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n dispay: 'block'\r\n },\r\n bottomBtn: {\r\n position: 'absolute',\r\n right: '0',\r\n bottom: '0',\r\n margin: theme.spacing(1)\r\n },\r\n button: {\r\n margin: theme.spacing(1)\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeZona extends Component {\r\n\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n if (this.props.centroId === -1) {\r\n\r\n this.props.getZonasCentro(this.props.centroDiaSelected.centro.isGroup ?\r\n this.props.centros.filter(c => c.isGroup === false && c.activo === 1)[0].id\r\n : this.props.centroDiaSelected.centro.id);\r\n }\r\n else {\r\n this.props.getZonasCentro(this.props.centroId);\r\n }\r\n\r\n };\r\n\r\n\r\n handleChangeSelect = event => {\r\n\r\n this.props.getZonasCentro(event.target.value ? event.target.value : 1);\r\n };\r\n\r\n\r\n centroSelectList = () => {\r\n\r\n return this.props.centros.filter(c => c.isGroup === false && c.activo === 1).map((centro, index) => {\r\n return (\r\n \r\n );\r\n })\r\n };\r\n\r\n\r\n editZona = (zona) => {\r\n this.props.navigate(\"edit_zona/\" + zona.id);\r\n };\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n\r\n return (\r\n
\r\n
\r\n\r\n {this.props.centros && this.props.kd === undefined ?\r\n \r\n \r\n Centro\r\n \r\n this.handleChangeSelect(event)}\r\n >\r\n {this.centroSelectList()}\r\n \r\n \r\n : ''}\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeZona.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n zonas: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getZonasCentro: PropTypes.func.isRequired,\r\n modifyZonaCentro: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n zonas: state.zonasCentro.zonas,\r\n isLoading: state.zonasCentro.isLoading,\r\n centroId: state.zonasCentro.centroId,\r\n centroDiaSelected: state.centroDiaSelected,\r\n kd : state.userProfile.kd,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getZonasCentro,\r\n modifyZonaCentro,\r\n openDialog,\r\n hideDialog,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(MaeZona));\r\n","import {\r\n MODIFY_ZONA_TIPO_PARTIDA,\r\n ADD_ZONA_TIPO_PARTIDA,\r\n DELETE_ZONA_TIPO_PARTIDA,\r\n} from '../constants/action_types';\r\n\r\nexport function modifyTipoPartidaDeZona(tipoPartida) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_ZONA_TIPO_PARTIDA, payload: tipoPartida });\r\n }\r\n}\r\n\r\nexport function addTipoPartidaDeZona(tipoPartida) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_ZONA_TIPO_PARTIDA, payload: tipoPartida });\r\n }\r\n}\r\n\r\nexport function removeTipoPartidaDeZona(tipoPartida) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_ZONA_TIPO_PARTIDA, payload: tipoPartida });\r\n }\r\n}\r\n\r\n","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { getTiposPartida } from '../../actions/tipos_partida_actions';\r\nimport { modifyTipoPartidaDeZona, addTipoPartidaDeZona, removeTipoPartidaDeZona } from '../../actions/zona_tipos_partida_actions';\r\nimport {\r\n openDialog, hideDialog, setSaveState\r\n} from '../../actions';\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 200,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass ZonaTipoPartidas extends React.Component {\r\n\r\n componentDidMount() {\r\n\r\n this.props.getTiposPartida();\r\n\r\n };\r\n\r\n\r\n modifyTipoPartida = (tipopartida) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoPartidaDeZona(tipopartida);\r\n };\r\n\r\n addTipoPartida = (tipopartida) => {\r\n this.props.setSaveState(true);\r\n this.props.addTipoPartidaDeZona(tipopartida);\r\n };\r\n\r\n messageError = (error) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: error\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkTipoPartida = (tipopartida) => {\r\n\r\n if (this.props.tipos_partida.find(tp => (tp.descr === tipopartida.descr) && (tp.id !== tipopartida.id))) {\r\n this.messageError(`Ya existe un tipo de partida ${tipopartida.descr}`);\r\n return false;\r\n }\r\n\r\n else return true;\r\n\r\n };\r\n\r\n\r\n editTipoPartida = (tipopartida) => {\r\n\r\n this.props.openDialog('EditZonaTipoPartida', {\r\n tipopartida: tipopartida,\r\n tiposPartida: this.props.tipos_partida,\r\n alltipospartida: this.props.alltipospartida,\r\n elemNoCajaId: this.props.elemNoCajaId,\r\n okHandler: this.modifyTipoPartida,\r\n checkTipoPartida: this.checkTipoPartida\r\n }, uuidv4());\r\n };\r\n\r\n newTipoPartida = () => {\r\n\r\n this.props.openDialog('EditZonaTipoPartida', {\r\n tipopartida: {},\r\n tiposPartida: this.props.tipos_partida,\r\n alltipospartida: this.props.alltipospartida,\r\n elemNoCajaId: this.props.elemNoCajaId,\r\n okHandler: this.addTipoPartida,\r\n checkTipoPartida: this.checkTipoPartida\r\n }, uuidv4());\r\n\r\n };\r\n\r\n removeTipoPartida = (tipopartida, index) => {\r\n this.props.setSaveState(true);\r\n this.props.removeTipoPartidaDeZona(tipopartida);\r\n };\r\n\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n Tipo de Partidas\r\n\r\n {this.props.tipos_partida && !this.props.isLoading ?\r\n \r\n :
}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nZonaTipoPartidas.propTypes = {\r\n //state\r\n elemNoCajaId: PropTypes.number.isRequired,\r\n tipos_partida: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n alltipospartida: PropTypes.array.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n getTiposPartida: PropTypes.func.isRequired,\r\n modifyTipoPartidaDeZona: PropTypes.func.isRequired,\r\n addTipoPartidaDeZona: PropTypes.func.isRequired,\r\n removeTipoPartidaDeZona: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n tipos_partida: state.zonaDetallesTipoPartida.tiposPartida,\r\n isLoading: state.zonaDetallesTipoPartida.isLoading,\r\n alltipospartida: state.tiposPartida.tipospartida,\r\n elemNoCajaId: state.zonaDetalles.zona.elemNoCajaId\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n getTiposPartida,\r\n modifyTipoPartidaDeZona,\r\n addTipoPartidaDeZona,\r\n removeTipoPartidaDeZona,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(ZonaTipoPartidas));","import {\r\n MODIFY_PRODUCTO_DE_ZONA,\r\n ADD_PRODUCTO_DE_ZONA,\r\n DELETE_PRODUCTO_DE_ZONA,\r\n} from '../constants/action_types';\r\n\r\n\r\nexport function modifyProductoDeZona(producto) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_PRODUCTO_DE_ZONA, payload: producto });\r\n }\r\n}\r\n\r\nexport function addProductoDeZona(producto) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_PRODUCTO_DE_ZONA, payload: producto });\r\n }\r\n}\r\n\r\nexport function removeProductoDeZona(producto) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_PRODUCTO_DE_ZONA, payload: producto });\r\n }\r\n}\r\n\r\n\r\n","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { getAllArticulos } from '../../actions/tipo_articulos_actions';\r\nimport { getTipoZonaIva } from '../../actions/tipo_zona_iva_actions';\r\nimport { modifyProductoDeZona, addProductoDeZona, removeProductoDeZona } from '../../actions/zona_productos_actions';\r\nimport {\r\n openDialog, hideDialog, setSaveState\r\n} from '../../actions';\r\n\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 200,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass ZonaProductos extends React.Component {\r\n\r\n componentDidMount() {\r\n\r\n this.props.getAllArticulos();\r\n this.props.getTipoZonaIva();\r\n\r\n };\r\n\r\n\r\n modifyProducto = (producto) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyProductoDeZona(producto);\r\n };\r\n\r\n addProducto = (producto) => {\r\n this.props.setSaveState(true);\r\n this.props.addProductoDeZona(producto);\r\n };\r\n\r\n messageError = (error) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: error\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkProducto = (producto) => {\r\n\r\n if (this.props.zonaProductos.find(p => (p.descr === producto.descr) && (p.id !== producto.id))) {\r\n this.messageError(`Ya existe un producto ${producto.descr}`);\r\n return false;\r\n }\r\n \r\n else return true;\r\n\r\n };\r\n\r\n\r\n editProduct = (producto) => {\r\n\r\n this.props.openDialog('EditZonaProduct', {\r\n producto: producto,\r\n zonaProductos: this.props.zonaProductos,\r\n allproductos: this.props.allproductos,\r\n tipoZonaIva: this.props.tipoZonaIva,\r\n elemNoCajaId: this.props.elemNoCajaId,\r\n okHandler: this.modifyProducto,\r\n checkProducto: this.checkProducto\r\n }, uuidv4());\r\n };\r\n\r\n newProduct = () => {\r\n\r\n this.props.openDialog('EditZonaProduct', {\r\n producto: {},\r\n zonaProductos: this.props.zonaProductos,\r\n allproductos: this.props.allproductos,\r\n tipoZonaIva: this.props.tipoZonaIva,\r\n elemNoCajaId: this.props.elemNoCajaId,\r\n okHandler: this.addProducto,\r\n checkProducto: this.checkProducto\r\n }, uuidv4());\r\n\r\n };\r\n\r\n removeProduct = producto => {\r\n this.props.setSaveState(true);\r\n this.props.removeProductoDeZona(producto);\r\n };\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n Productos de Venta\r\n\r\n {this.props.zonaProductos && !this.props.isLoading ?\r\n \r\n :
}\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nZonaProductos.propTypes = {\r\n //state\r\n zonaProductos: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n allproductos: PropTypes.array.isRequired,\r\n tipoZonaIva: PropTypes.array.isRequired,\r\n elemNoCajaId: PropTypes.number,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n getAllArticulos: PropTypes.func.isRequired,\r\n modifyProductoDeZona: PropTypes.func.isRequired,\r\n addProductoDeZona: PropTypes.func.isRequired,\r\n removeProductoDeZona: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n zonaProductos: state.zonaProductos.zonaProductos,\r\n isLoading: state.zonaProductos.isLoading,\r\n allproductos: state.allArticulos,\r\n tipoZonaIva: state.tipoZonaIva,\r\n tipoZonaIva: state.tipoZonaIva,\r\n elemNoCajaId: state.zonaDetalles.zona.elemNoCajaId\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n getAllArticulos,\r\n getTipoZonaIva,\r\n modifyProductoDeZona,\r\n addProductoDeZona,\r\n removeProductoDeZona,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(ZonaProductos));","import {\r\n ADD_PRODUCTO_CAJA_DE_ZONA, MODIFY_PRODUCTO_CAJA_DE_ZONA, DELETE_PRODUCTO_CAJA_DE_ZONA\r\n} from '../constants/action_types';\r\n\r\n\r\nexport function modifyProductoCajaDeZona(producto) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_PRODUCTO_CAJA_DE_ZONA, payload: producto });\r\n }\r\n}\r\n\r\nexport function addProductoCajaDeZona(producto) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_PRODUCTO_CAJA_DE_ZONA, payload: producto });\r\n }\r\n}\r\n\r\nexport function removeProductoCajaDeZona(producto) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_PRODUCTO_CAJA_DE_ZONA, payload: producto });\r\n }\r\n}\r\n","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { getAllArticulos } from '../../actions/tipo_articulos_actions';\r\nimport { modifyProductoCajaDeZona, addProductoCajaDeZona, removeProductoCajaDeZona } from '../../actions/zona_productos_caja_actions';\r\nimport {\r\n openDialog, hideDialog, setSaveState\r\n} from '../../actions';\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 200,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\n\r\n\r\nclass ZonaProductosCaja extends React.Component {\r\n\r\n\r\n modifyProductoCaja = (producto) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyProductoCajaDeZona(producto);\r\n };\r\n\r\n addProductoCaja = (producto) => {\r\n this.props.setSaveState(true);\r\n this.props.addProductoCajaDeZona(producto);\r\n };\r\n\r\n messageError = (error) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: error\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkProductoCaja = (producto) => {\r\n\r\n if (this.props.zonaProductosCaja.find(p => (p.descr === producto.descr) && (p.id !== producto.id))) {\r\n this.messageError(`Ya existe un producto de caja ${producto.descr}`);\r\n return false;\r\n }\r\n\r\n else return true;\r\n\r\n };\r\n\r\n\r\n editProductCaja = (producto) => {\r\n\r\n this.props.openDialog('EditZonaProductCaja', {\r\n producto: producto,\r\n zonaProductosCaja: this.props.zonaProductosCaja,\r\n allproductos: this.props.allproductos,\r\n tipoZonaIva: this.props.tipoZonaIva,\r\n elemCajaId: this.props.elemCajaId,\r\n okHandler: this.modifyProductoCaja,\r\n checkProductoCaja: this.checkProductoCaja\r\n }, uuidv4());\r\n };\r\n\r\n newProductCaja = () => {\r\n\r\n this.props.openDialog('EditZonaProductCaja', {\r\n producto: {},\r\n zonaProductosCaja: this.props.zonaProductosCaja,\r\n allproductos: this.props.allproductos,\r\n tipoZonaIva: this.props.tipoZonaIva,\r\n elemCajaId: this.props.elemCajaId,\r\n okHandler: this.addProductoCaja,\r\n checkProductoCaja: this.checkProductoCaja\r\n }, uuidv4());\r\n\r\n };\r\n\r\n removeProductCaja = (producto, index) => {\r\n this.props.setSaveState(true);\r\n this.props.removeProductoCajaDeZona(producto);\r\n };\r\n\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n Conceptos de Caja\r\n\r\n {this.props.zonaProductosCaja && !this.props.isLoading ?\r\n \r\n :
}\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nZonaProductosCaja.propTypes = {\r\n //state\r\n zonaProductosCaja: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n allproductos: PropTypes.array.isRequired,\r\n elemCajaId: PropTypes.number,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n getAllArticulos: PropTypes.func.isRequired,\r\n modifyProductoCajaDeZona: PropTypes.func.isRequired,\r\n addProductoCajaDeZona: PropTypes.func.isRequired,\r\n removeProductoCajaDeZona: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n zonaProductosCaja: state.zonaProductosCaja.productosCaja,\r\n isLoading: state.zonaProductosCaja.isLoading,\r\n allproductos: state.allArticulos,\r\n tipoZonaIva: state.tipoZonaIva,\r\n elemCajaId: state.zonaDetalles.zona.elemCajaId\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n getAllArticulos,\r\n modifyProductoCajaDeZona,\r\n addProductoCajaDeZona,\r\n removeProductoCajaDeZona,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(ZonaProductosCaja));\r\n","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport {\r\n openDialog, hideDialog, setSaveState\r\n} from '../../actions';\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 200,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\n\r\n\r\n\r\nclass ZonaMaquinas extends React.Component {\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n Maquinas\r\n\r\n {this.props.zonaMaquinas && !this.props.isLoading ?\r\n \r\n :
}\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nZonaMaquinas.propTypes = {\r\n //state\r\n zonaMaquinas: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n zonaMaquinas: state.zonaMaquinas.zonaMaquinas,\r\n isLoading: state.zonaMaquinas.isLoading,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(ZonaMaquinas));","import {getData, putData} from './redux_data';\r\nimport {\r\n GET_ZONA_DETALLE, MODIFY_FIELD_DETALLE_ZONA, UPDATE_ZONA_DE_UN_CENTRO\r\n} from '../constants/action_types';\r\n\r\nexport function getZonaDetalles(zonaId) {\r\n return getData('VZonaPptoDetalle/'+ zonaId, GET_ZONA_DETALLE);\r\n};\r\n\r\nexport function modifyFieldDetalleZona(field, value) {\r\n return dispatch => {\r\n dispatch({ type: MODIFY_FIELD_DETALLE_ZONA, payload: [field, value] })\r\n };\r\n};\r\n\r\nexport function updateZonaDB(zona, id) {\r\n\r\n // return (dispatch, getState) => {\r\n // dispatch({ type: UPDATE_ZONA_DE_UN_CENTRO, payload: id })\r\n // let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n // axios.put(config.API_URI() + 'VZonaPptoDetalle/' + id, zona,\r\n // {\r\n // headers: {\r\n // Authorization: \"Bearer \" + token\r\n // }\r\n // }\r\n // ).then((response) => {\r\n // dispatch({ type: UPDATE_ZONA_DE_UN_CENTRO + \"_SUCCESS\", payload: response })\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: 'Cambios guardados!' },\r\n // dialogid: 'success_update_zona_' + id\r\n // });\r\n // }).catch((error) => {\r\n // if (error.response.status === 409) {\r\n\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_zona_' + id\r\n // });\r\n // }\r\n // else {\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_zona_' + id\r\n // });\r\n // }\r\n // });\r\n // }\r\n\r\n return putData('VZonaPptoDetalle', UPDATE_ZONA_DE_UN_CENTRO, zona, id, 'Zona guardada', undefined);\r\n\r\n}\r\n","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\n\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport { navigate, openDialog } from '../../actions';\r\n\r\nimport { updateZonaDB } from '../../actions/zona_actions';\r\n\r\nconst styles = theme => ({\r\n buttonsBottom: {\r\n margin: '20px 15px 30px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\n\r\nclass ZonaActionButtons extends Component {\r\n\r\n messageDialog = msg => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkRequiredFields = zona => {\r\n if (!zona.descr) {\r\n this.messageDialog('Por favor, rellene el campo Descripción');\r\n return false;\r\n } else if (isNaN(zona.iTipoZona)) {\r\n this.messageDialog('Por favor, rellene el campo Tipo de zona');\r\n return false;\r\n } else if (isNaN(zona.iCajaDestino)) {\r\n this.messageDialog('Por favor, rellene el campo Caja de destino');\r\n return false;\r\n }\r\n\r\n else return true;\r\n\r\n };\r\n\r\n\r\n updateHandler = () => {\r\n\r\n this.props.zonaDetallesTipoPartida.tiposPartida.forEach(p => {\r\n if (typeof p.id !== 'number') p.id = -1;\r\n });\r\n\r\n this.props.zonaProductos.zonaProductos.forEach(p => {\r\n if (typeof p.id !== 'number') p.id = -1;\r\n });\r\n\r\n this.props.zonaProductosCaja.productosCaja.forEach(p => {\r\n if (typeof p.id !== 'number') p.id = -1;\r\n });\r\n\r\n const zona = {\r\n id: this.props.zonaDetalles.zona.id,\r\n centroId: this.props.zonaDetalles.zona.centroId,\r\n iTipoZona: this.props.zonaDetalles.zona.iTipoZona,\r\n descr: this.props.zonaDetalles.zona.descr,\r\n activo: this.props.zonaDetalles.zona.activo,\r\n tipoZona: this.props.zonaDetalles.zona.tipoZona,\r\n iCajaDestino: this.props.zonaDetalles.zona.iCajaDestino,\r\n elemCajaId: this.props.zonaDetalles.zona.elemCajaId,\r\n elemNoCajaId: this.props.zonaDetalles.zona.elemNoCajaId,\r\n\r\n productos: this.props.zonaProductos.zonaProductos,\r\n productosCaja: this.props.zonaProductosCaja.productosCaja,\r\n tipoPartidas: this.props.zonaDetallesTipoPartida.tiposPartida,\r\n maquinas: this.props.zonaMaquinas.zonaMaquinas\r\n };\r\n\r\n if (this.checkRequiredFields(zona)) {\r\n this.props.updateZonaDB(zona, this.props.match.params.id);\r\n };\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n \r\n \r\n this.updateHandler()}>\r\n Guardar\r\n \r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nZonaActionButtons.propTypes = {\r\n //state\r\n zonaDetalles: PropTypes.object.isRequired,\r\n zonaDetallesTipoPartida: PropTypes.array.isRequired,\r\n zonaProductos: PropTypes.array.isRequired,\r\n zonaProductosCaja: PropTypes.array.isRequired,\r\n zonaMaquinas: PropTypes.array.isRequired,\r\n //dispatch\r\n updateZonaDB: PropTypes.func.isRequired,\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n zonaDetalles: state.zonaDetalles,\r\n zonaDetallesTipoPartida: state.zonaDetallesTipoPartida,\r\n zonaProductos: state.zonaProductos,\r\n zonaProductosCaja: state.zonaProductosCaja,\r\n zonaMaquinas: state.zonaMaquinas,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n updateZonaDB: updateZonaDB,\r\n navigate,\r\n openDialog,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withStyles(styles, { withTheme: true })(ZonaActionButtons)));","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router'\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Icon from '@material-ui/core/Icon';\r\n\r\n//components of grids:\r\nimport ZonaTipoPartidas from './zona_tipopartidas';\r\nimport ZonaProductos from './zona_productos';\r\nimport ZonaProductosCaja from './zona_productos_caja';\r\nimport ZonaMaquinas from './zona_maquinas';\r\nimport ZonaActionButtons from './zona_action_buttons';\r\n\r\n//actions:\r\nimport { navigate, setSaveState, openDialog } from '../../actions';\r\nimport { getZonaDetalles, modifyFieldDetalleZona } from '../../actions/zona_actions';\r\nimport { getCajasCentro } from '../../actions/cajas_centro_actions';\r\nimport { getTiposZona } from '../../actions/tipos_zona_actions';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n toolbar: {\r\n display: 'block',\r\n minHeight: 112,\r\n marginBottom: 15,\r\n },\r\n formControl: {\r\n margin: '5px 0 5px 20px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n grid: {\r\n padding: '0 12px',\r\n width: '100%',\r\n },\r\n buttonAtras: {\r\n margin: '0 0 10px 16px',\r\n height: 40,\r\n width: 123,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n buttonIcon: {\r\n marginLeft: theme.spacing(2),\r\n borderRadius: 0,\r\n border: 'none',\r\n boxShadow: 'none',\r\n height: 48\r\n },\r\n});\r\n\r\nclass ZonaEdit extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n descr: '', iTipoZona: 0, iCajaDestino: 0, elemCajaId: 0, elemNoCajaId: 0, recibeCobPag: false, activo: false\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getZonaDetalles(this.props.match.params.id);\r\n this.props.getTiposZona();\r\n\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.zonaDetalles !== this.props.zonaDetalles) {\r\n\r\n this.props.getCajasCentro(this.props.zonaDetalles.centroId);\r\n\r\n this.setState({\r\n centroId: this.props.zonaDetalles.centroId ? this.props.zonaDetalles.centroId : '',\r\n descr: this.props.zonaDetalles.descr ? this.props.zonaDetalles.descr : '',\r\n iTipoZona: this.props.zonaDetalles.iTipoZona ? this.props.zonaDetalles.iTipoZona : 0,\r\n iCajaDestino: this.props.zonaDetalles.iCajaDestino ? this.props.zonaDetalles.iCajaDestino : -1,\r\n elemCajaId: this.props.zonaDetalles.elemCajaId ? this.props.zonaDetalles.elemCajaId : 0,\r\n elemNoCajaId: this.props.zonaDetalles.elemNoCajaId ? this.props.zonaDetalles.elemNoCajaId : 0,\r\n // recibeCobPag: 0,\r\n activo: this.props.zonaDetalles.activo ? this.props.zonaDetalles.activo : false,\r\n });\r\n\r\n };\r\n\r\n if ((prevProps.updated !== this.props.updated) && this.props.updated) this.props.navigate(\"mae_zona\");\r\n };\r\n\r\n //text field and boolean:\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n handleBooleanChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.checked });\r\n };\r\n\r\n\r\n\r\n //tipo zona select:\r\n\r\n fillSelectOptionZonaList = () => {\r\n return this.props.tiposZona.map(tz => {\r\n\r\n return (\r\n \r\n );\r\n\r\n });\r\n\r\n };\r\n\r\n handleChangeTipoZonaSelect = event => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iTipoZona: value\r\n });\r\n };\r\n\r\n compareDescr = (a, b) => {\r\n if (a.descr < b.descr)\r\n return -1;\r\n if (a.descr > b.descr)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n //caja destino select:\r\n fillSelectOptionCajaList = () => {\r\n return this.props.cajasCentro.map(cc => {\r\n\r\n return (\r\n \r\n );\r\n\r\n });\r\n\r\n };\r\n\r\n handleCajaDestinoChangeSelect = event => {\r\n\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iCajaDestino: value\r\n });\r\n };\r\n\r\n\r\n onBlur = (event, field) => {\r\n\r\n const value = this.state[field];\r\n\r\n if (this.props.zonaDetalles[field] !== value) {\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldDetalleZona(field, value);\r\n }\r\n };\r\n\r\n\r\n onBlurCheckBox = (event, field) => {\r\n\r\n const value = event.target.checked;\r\n\r\n this.props.setSaveState(true);\r\n if (value === true) this.props.modifyFieldDetalleZona(field, 1);\r\n else if (value === false) this.props.modifyFieldDetalleZona(field, 0);\r\n };\r\n\r\n goBack = () => {\r\n if (this.props.saveState.pending) {\r\n this.props.openDialog('ConfirmationDialog', {\r\n message: 'Existen cambios no guardados. Desea abandonar la sección y perder los cambios?',\r\n acceptHandler: () => {\r\n this.props.setSaveState(false);\r\n this.props.navigate(\"mae_zona\");\r\n }\r\n }, 'left-drawer-confirmation-message', false, 'sm');\r\n }\r\n else {\r\n this.props.navigate(\"mae_zona\");\r\n }\r\n }\r\n\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n if (!this.props.zonaDetalles || !this.props.tiposZona) {\r\n\r\n return (
);\r\n\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n
\r\n {/* */}\r\n keyboard_backspace\r\n\r\n
\r\n \r\n this.handleValueChange(event, 'descr')}\r\n onBlur={(event) => this.onBlur(event, 'descr')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'descr') }; }}\r\n />\r\n \r\n\r\n\r\n \r\n \r\n Tipo Zona\r\n \r\n this.handleChangeTipoZonaSelect(event, 'iTipoZona')}\r\n onBlur={(event) => this.onBlur(event, 'iTipoZona')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'iTipoZona') }; }}\r\n >\r\n {this.fillSelectOptionZonaList()}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Caja Destino\r\n \r\n this.handleCajaDestinoChangeSelect(event, 'iCajaDestino')}\r\n onBlur={(event) => this.onBlur(event, 'iCajaDestino')}\r\n onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'iCajaDestino') }; }}\r\n >\r\n {this.fillSelectOptionCajaList()}\r\n \r\n \r\n \r\n\r\n {/*\r\n \r\n this.handleBooleanChange(event, 'recibeCobPag')}\r\n value='recibeCobPag'\r\n // onBlur={(event) => this.onBlurCheckBox(event, 'recibeCobPag')}\r\n // onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'recibeCobPag') }; }}\r\n />\r\n }\r\n label=\"¿Recibe cobros/pagos?\"\r\n />\r\n */}\r\n\r\n\r\n \r\n this.handleBooleanChange(event, 'activo')}\r\n onBlur={(event) => this.onBlurCheckBox(event, 'activo')}\r\n value='activo'\r\n // onKeyPress={(e) => { if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'activo') }; }}\r\n />\r\n }\r\n label=\"¿Activo?\"\r\n />\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {this.props.kd === undefined ?\r\n (\r\n
\r\n \r\n
\r\n ) : (\r\n ''\r\n )}\r\n {this.props.kd === undefined ?\r\n (\r\n
\r\n \r\n
\r\n ) : (\r\n ''\r\n )}\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nZonaEdit.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n zonaDetalles: PropTypes.object.isRequired,\r\n cajasCentro: PropTypes.array.isRequired,\r\n tiposZona: PropTypes.array.isRequired,\r\n updated: PropTypes.bool.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getZonaDetalles: PropTypes.func.isRequired,\r\n modifyFieldDetalleZona: PropTypes.func.isRequired,\r\n getCajasCentro: PropTypes.func.isRequired,\r\n getTiposZona: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n zonaDetalles: state.zonaDetalles.zona,\r\n cajasCentro: state.cajasCentro.cajasCentro,\r\n tiposZona: state.tiposZona.tiposzona,\r\n updated: state.zonaDetalles.updated,\r\n saveState: state.saveState,\r\n kd: state.userProfile.kd,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getZonaDetalles,\r\n modifyFieldDetalleZona,\r\n getCajasCentro,\r\n getTiposZona,\r\n setSaveState,\r\n openDialog\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withStyles(styles, { withTheme: true })(ZonaEdit)));\r\n","import axios from 'axios';\r\nimport { getData, postData, putData } from './redux_data';\r\nimport {\r\n GET_MAQUINAS_OF_MAE_MAQUINA, GET_MAQUINA_DETALLES, MODIFY_FIELD_DETALLE_MAQUINA, ADD_NEW_MAQUINA, DELETE_MAQUINA, UPDATE_DETALLES_MAQUINA, UPDATE_DETALLES_NEW_MAQUINA, GET_MAQUINAS_CENTRO_ORIGEN, GET_MAQUINAS_CENTRO_DESTINO, MOVE_MAQUINA_TO_CENTRO_DESINO, OPEN_DIALOG\r\n\r\n} from '../constants/action_types';\r\n\r\nimport * as config from '../constants/configuration';\r\n\r\nexport function getMaquinas(alta) {\r\n return getData(`vmaquinas/${alta}`, GET_MAQUINAS_OF_MAE_MAQUINA);\r\n};\r\n\r\nexport function getMaquinaDetalles(maquinaId) {\r\n\r\n return getData('vmaquinadetalle/' + maquinaId, GET_MAQUINA_DETALLES);\r\n\r\n};\r\n\r\nexport function modifyFieldDetalleMaquina(field, value) {\r\n return dispatch => {\r\n dispatch({ type: MODIFY_FIELD_DETALLE_MAQUINA, payload: [field, value] })\r\n };\r\n};\r\n\r\nexport function addNewMaquina(defaultModel, defaultCenter, regInterno) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_NEW_MAQUINA, payload:{defaultModel, defaultCenter, regInterno } });\r\n };\r\n};\r\n\r\n//delete a maquina from DB (DELETE):\r\nexport function deleteMaquinaDB(id) {\r\n\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_MAQUINA, payload: id })\r\n let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n axios.delete(config.API_URI() + `vmaquinas/${id}`,\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n }\r\n ).then((response) => {\r\n dispatch({ type: DELETE_MAQUINA + \"_SUCCESS\", payload: response })\r\n\r\n }).catch((error) => {\r\n if (error.response.status === 409) {\r\n dispatch({\r\n type: OPEN_DIALOG,\r\n modalType: 'SimpleMessage',\r\n modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n dialogid: 'error_delete_maquina_' + id\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: OPEN_DIALOG,\r\n modalType: 'SimpleMessage',\r\n modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n dialogid: 'error_delete_maquina_' + id\r\n });\r\n };\r\n });\r\n };\r\n};\r\n\r\n\r\n//update changes of an edited maquina (PUT):\r\nexport function updateDetallesMaquinaDB(maquina, id, thenHandler) {\r\n // return (dispatch, getState) => {\r\n // dispatch({ type: UPDATE_DETALLES_MAQUINA, payload: id })\r\n // let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n // axios.put(config.API_URI() + 'vmaquinadetalle/' + id, maquina,\r\n // {\r\n // headers: {\r\n // Authorization: \"Bearer \" + token\r\n // }\r\n // }\r\n // ).then((response) => {\r\n // dispatch({ type: UPDATE_DETALLES_MAQUINA + \"_SUCCESS\", payload: response })\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: 'Cambios guardados!' },\r\n // dialogid: 'success_update_maquina_' + id\r\n // });\r\n // }).catch((error) => {\r\n // if (error.response.status === 409) {\r\n\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_maquina_' + id\r\n // });\r\n // }\r\n // else {\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_maquina_' + id\r\n // });\r\n // };\r\n // });\r\n // };\r\n\r\n return putData('vmaquinadetalle', UPDATE_DETALLES_MAQUINA, maquina, id, 'Máquina actualizada', thenHandler);\r\n\r\n};\r\n\r\n\r\n//save NEW maquina (POST):\r\nexport function NewMaquinaDB(maquina, id, fecha, thenHandler) {\r\n \r\n return postData('vmaquinadetalle?fecha_alta=' + fecha, UPDATE_DETALLES_NEW_MAQUINA, maquina, 'Máquina creada', thenHandler);\r\n // return (dispatch, getState) => {\r\n // dispatch({ type: UPDATE_DETALLES_NEW_MAQUINA, payload: id })\r\n // let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n // axios.post(config.API_URI() + 'vmaquinadetalle/', maquina,\r\n // {\r\n // headers: {\r\n // Authorization: \"Bearer \" + token\r\n // }\r\n // }\r\n // ).then((response) => {\r\n // dispatch({ type: UPDATE_DETALLES_NEW_MAQUINA + \"_SUCCESS\", payload: response })\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: 'Nueva máquina creada!' },\r\n // dialogid: 'success_update_new_maquina_' + id\r\n // });\r\n // }).catch((error) => {\r\n // if (error.response.status === 409) {\r\n\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_new_maquina_' + id\r\n // });\r\n // }\r\n // else {\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_update_new_maquina_' + id\r\n // });\r\n // };\r\n // });\r\n // };\r\n\r\n\r\n};\r\n\r\n\r\n//acc_mover_maquinas:\r\nexport function getMaquinasCentroOrigen(centroId) {\r\n return getData(`vmaquinas/vmaquinasalta?centro_id=${centroId}`, GET_MAQUINAS_CENTRO_ORIGEN);\r\n};\r\n\r\nexport function getMaquinasCentroDestino(centroId) {\r\n return getData(`vmaquinas/vmaquinasalta?centro_id=${centroId}`, GET_MAQUINAS_CENTRO_DESTINO);\r\n};\r\n\r\n//post:\r\nexport function moveMaquinaToCentroDestino(arrayIds, centroOrigenId, centroDestinoId, fecha) {\r\n\r\n // return (dispatch, getState) => {\r\n // dispatch({ type: MOVE_MAQUINA_TO_CENTRO_DESINO, payload: arrayIds })\r\n // let token = getState().oidc.user ? getState().oidc.user.access_token : \"\";\r\n // axios.post(config.API_URI() + `vmaquinas/vmaquinasalta/movermaquinas?centro_origen=${centroOrigenId}¢ro_destino=${centroDestinoId}&date=${fecha}`, arrayIds,\r\n // {\r\n // headers: {\r\n // Authorization: \"Bearer \" + token\r\n // }\r\n // }\r\n // ).then((response) => {\r\n // dispatch({ type: MOVE_MAQUINA_TO_CENTRO_DESINO + \"_SUCCESS\", payload: response })\r\n // }).catch((error) => {\r\n // if (error.response.status === 409) {\r\n\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_moving_maquinas_' + arrayIds\r\n // });\r\n // }\r\n // else {\r\n // dispatch({\r\n // type: OPEN_DIALOG,\r\n // modalType: 'SimpleMessage',\r\n // modalProps: { message: error.response.data.message, exception: error.response.data.ex },\r\n // dialogid: 'error_moving_maquinas_' + arrayIds\r\n // });\r\n // };\r\n // });\r\n // };\r\n\r\n return postData(\r\n `vmaquinas/vmaquinasalta/movermaquinas?centro_origen=${centroOrigenId}¢ro_destino=${centroDestinoId}&date=${fecha}`,\r\n MOVE_MAQUINA_TO_CENTRO_DESINO,\r\n arrayIds,\r\n undefined,\r\n undefined\r\n );\r\n\r\n};\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog } from '../../actions';\r\nimport { getMaquinas, deleteMaquinaDB } from '../../actions/maquina_detalle_actions';\r\nimport { getTiposMaquina } from '../../actions/tipos_maquina_actions';\r\nimport { getModelosMaquina } from '../../actions/modelos_maquina_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n bottomBtn: {\r\n position: 'absolute',\r\n right: '0',\r\n bottom: '0',\r\n margin: theme.spacing(1)\r\n },\r\n button: {\r\n margin: theme.spacing(1)\r\n },\r\n group: {\r\n margin: `${theme.spacing(1)}px 0`,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeMaquina extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n estado_maquinas: 'vmaquinasalta',\r\n noSpinner: !this.props.noSpinner ? false : true,\r\n }\r\n\r\n };\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getMaquinas(this.state.estado_maquinas);\r\n this.props.getTiposMaquina();\r\n this.props.getModelosMaquina();\r\n\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if(prevProps.maeMaquinas !== this.props.maeMaquinas) this.setState({ noSpinner: true})\r\n\r\n if (prevState.estado_maquinas !== this.state.estado_maquinas) {\r\n this.props.getMaquinas(this.state.estado_maquinas);\r\n this.setState({noSpinner: false})\r\n }\r\n\r\n if (this.props.refresh) {\r\n this.props.getMaquinas(this.state.estado_maquinas);\r\n }\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n }\r\n\r\n editMaquina = (maquina) => {\r\n this.props.navigate(\"edit_maquina/\" + maquina.id);\r\n };\r\n\r\n newMaquina = () => {\r\n this.props.navigate(\"edit_maquina/\" + -1);\r\n };\r\n\r\n\r\n checkNewMaquina = (maquina) => {\r\n if (this.props.maeMaquinas.find(z => (z.descr === maquina.descr) && (z.id !== maquina.id))) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n\r\n deleteMaquina = (maquina) => {\r\n this.props.openDialog('ConfirmationDialog', {\r\n message: '¿Desea borrar definitivamente la máquina ' + this.props.maeMaquinas.find(c => c.id === maquina.id).descr + '? \\n NO es posible deshacer esta operación',\r\n acceptHandler: () => {\r\n this.props.deleteMaquinaDB(maquina.id);\r\n }\r\n }, uuidv4(), false, 'sm');\r\n \r\n };\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n
\r\n
\r\n\r\n \r\n this.handleValueChange(event, 'estado_maquinas')}\r\n >\r\n } label=\"Maquinas de alta\" />\r\n } label=\"Maquinas de baja\" />\r\n \r\n \r\n\r\n {this.props.tiposMaquina && this.props.modelosMaquina && this.props.maeMaquinas && this.state.noSpinner ?\r\n \r\n :
}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeMaquina.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n noSpinner: PropTypes.bool.isRequired,\r\n refresh: PropTypes.bool.isRequired,\r\n maeMaquinas: PropTypes.array.isRequired,\r\n tiposMaquina: PropTypes.object.isRequired,\r\n modelosMaquina: PropTypes.object.isRequired,\r\n\r\n //dispatch\r\n getMaquinas: PropTypes.func.isRequired,\r\n getTiposMaquina: PropTypes.func.isRequired,\r\n getModelosMaquina: PropTypes.func.isRequired,\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n deleteMaquinaDB: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n maeMaquinas: state.maeMaquinas.maquinas,\r\n refresh: state.maeMaquinas.refresh,\r\n noSpinner: state.maeMaquinas.noSpinner,\r\n tiposMaquina: state.tiposMaquina,\r\n modelosMaquina: state.modelosMaquina,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getMaquinas,\r\n getTiposMaquina,\r\n getModelosMaquina,\r\n openDialog,\r\n hideDialog,\r\n deleteMaquinaDB,\r\n }, dispatch);\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeMaquina));\r\n","import {\r\n ADD_CENTRO_MAQUINA,\r\n DELETE_CENTRO_MAQUINA,\r\n MODIFY_CENTRO_MAQUINA\r\n} from '../constants/action_types';\r\n\r\nexport function addMaquinaCentro(centro) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_CENTRO_MAQUINA, payload: centro });\r\n };\r\n};\r\n\r\nexport function modifyMaquinaCentro(centro) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_CENTRO_MAQUINA, payload: centro });\r\n };\r\n};\r\n\r\n\r\nexport function removeMaquinaCentro(centro) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_CENTRO_MAQUINA, payload: centro });\r\n };\r\n};","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { addMaquinaCentro, removeMaquinaCentro, modifyMaquinaCentro } from '../../actions/maquina_centros_actions';\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\n\r\n\r\nclass MaquinaCentros extends React.Component {\r\n\r\n\r\n addCentro = (centro) => {\r\n this.props.setSaveState(true);\r\n this.props.addMaquinaCentro(centro);\r\n };\r\n\r\n modifyCentroMaquina = (centro) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyMaquinaCentro(centro);\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, \"message_maquina_centros\", false, 'sm');\r\n\r\n };\r\n\r\n checkCentro = (centro) => {\r\n\r\n if (centro.fEnd !== undefined && centro.fEnd !== null && centro.fEnd !== '') {\r\n if (centro.fEnd < centro.fIni) {\r\n this.messageDialog('Fechas inválidas');\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n newCentro = () => {\r\n\r\n this.props.openDialog('EditCentroMaquina', {\r\n centro: {},\r\n centros: this.props.centros,\r\n maquinaId: this.props.id,\r\n okHandler: this.addCentro,\r\n checkCentro: this.checkCentro,\r\n }, \"new_maquina_centro_dialog\");\r\n\r\n };\r\n\r\n editCentro = (centro) => {\r\n\r\n this.props.openDialog('EditCentroMaquina', {\r\n centro,\r\n centros: this.props.centros,\r\n maquinaId: this.props.id,\r\n okHandler: this.modifyCentroMaquina,\r\n checkCentro: this.checkCentro\r\n }, \"edit_maquina_centro_dialog\");\r\n\r\n };\r\n\r\n removeCentro = (centro, index) => {\r\n this.props.setSaveState(true);\r\n this.props.removeMaquinaCentro(centro);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n Centros\r\n\r\n {this.props.maquinaCentros && !this.props.isLoading ?\r\n \r\n :
}\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nMaquinaCentros.propTypes = {\r\n //state\r\n isLoading: PropTypes.bool.isRequired,\r\n maquinaCentros: PropTypes.array.isRequired,\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n maquinaCentros: state.maquinaCentros.maquinaCentros,\r\n isLoading: state.maquinaCentros.isLoading,\r\n centros: state.centros.centros,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n addMaquinaCentro,\r\n removeMaquinaCentro,\r\n modifyMaquinaCentro,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles, { withTheme: true })(MaquinaCentros));","import {\r\n ADD_ITV_MAQUINA,\r\n DELETE_ITV_MAQUINA,\r\n MODIFY_ITV_MAQUINA\r\n} from '../constants/action_types';\r\n\r\nexport function addItvDeMaquina(itv) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_ITV_MAQUINA, payload: itv });\r\n };\r\n};\r\n\r\nexport function modifyItvMaquina(itv) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_ITV_MAQUINA, payload: itv });\r\n };\r\n};\r\n\r\n\r\nexport function removeItvDeMaquina(itv) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_ITV_MAQUINA, payload: itv });\r\n };\r\n};","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { addItvDeMaquina, removeItvDeMaquina, modifyItvMaquina } from '../../actions/maquina_itvs_actions';\r\n\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\n\r\nclass MaquinaItv extends React.Component {\r\n\r\n\r\n addItv = (itv) => {\r\n this.props.setSaveState(true);\r\n this.props.addItvDeMaquina(itv);\r\n };\r\n\r\n modifyItvMaquina = (itv) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyItvMaquina(itv);\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkItv = (itv) => {\r\n\r\n if ((itv.fechaCaducidad < '1900-01-01T00:00:00') || !itv.fechaCaducidad) {\r\n this.messageDialog('Fecha inválida');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n\r\n newItv = () => {\r\n\r\n this.props.openDialog('EditItvMaquina', {\r\n itv: {},\r\n maquinaId: this.props.id,\r\n okHandler: this.addItv,\r\n checkItv: this.checkItv,\r\n }, uuidv4());\r\n\r\n };\r\n\r\n editItv = (itv) => {\r\n\r\n this.props.openDialog('EditItvMaquina', {\r\n itv,\r\n maquinaId: this.props.id,\r\n okHandler: this.modifyItvMaquina,\r\n checkItv: this.checkItv\r\n }, uuidv4());\r\n\r\n };\r\n\r\n removeItv = (itv, index) => {\r\n this.props.setSaveState(true);\r\n this.props.removeItvDeMaquina(itv);\r\n };\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (
\r\n ITVs\r\n\r\n {this.props.maquinaItvs && !this.props.isLoading ?\r\n \r\n :
}\r\n
\r\n );\r\n };\r\n};\r\n\r\nMaquinaItv.propTypes = {\r\n //state\r\n isLoading: PropTypes.bool.isRequired,\r\n maquinaItvs: PropTypes.array.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n addItvDeMaquina: PropTypes.func.isRequired,\r\n modifyItvMaquina: PropTypes.func.isRequired,\r\n removeItvDeMaquina: PropTypes.func.isRequired,\r\n //props:\r\n id: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n maquinaItvs: state.maquinaItvs.maquinaItvs,\r\n isLoading: state.maquinaItvs.isLoading,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n addItvDeMaquina,\r\n removeItvDeMaquina,\r\n modifyItvMaquina,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(MaquinaItv));","import {\r\n ADD_LICENCIA_MAQUINA,\r\n DELETE_LICENCIA_MAQUINA,\r\n MODIFY_LICENCIA_MAQUINA\r\n} from '../constants/action_types';\r\n\r\nexport function addLicenciaDeMaquina(licencia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_LICENCIA_MAQUINA, payload: licencia });\r\n };\r\n};\r\n\r\n\r\nexport function modifyLicenciaDeMaquina(licencia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_LICENCIA_MAQUINA, payload: licencia });\r\n };\r\n};\r\n\r\nexport function removeLicenciaDeMaquina(licencia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_LICENCIA_MAQUINA, payload: licencia });\r\n };\r\n};","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { addLicenciaDeMaquina, removeLicenciaDeMaquina, modifyLicenciaDeMaquina } from '../../actions/maquina_licencias_actions';\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaquinaLicencias extends React.Component {\r\n\r\n\r\n addLicencia = licencia => {\r\n this.props.setSaveState(true);\r\n this.props.addLicenciaDeMaquina(licencia);\r\n };\r\n\r\n modifyLicenciaMaquina = licencia => {\r\n this.props.setSaveState(true);\r\n this.props.modifyLicenciaDeMaquina(licencia);\r\n };\r\n\r\n messageDialog = msg => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkLicencia = licencia => {\r\n if (!licencia.licencia.trim()) {\r\n this.messageDialog('Por favor, rellene el campo Licencia');\r\n return false;\r\n } else if (licencia.fechaInicio < '1900-01-01T00:00:00') {\r\n this.messageDialog('Fecha de inicio inválida');\r\n return false;\r\n } else if (licencia.fechaFin < '1900-01-01T00:00:00') {\r\n this.messageDialog('Fecha de fin inválida');\r\n return false;\r\n } else if (licencia.fechaInicio > licencia.fechaFin) {\r\n this.messageDialog('Fecha de fin debe ser anterior a la de inicio');\r\n return false;\r\n } else if (!licencia.fechaInicio) {\r\n this.messageDialog('Por favor, rellene el Fecha Inicio');\r\n return false;\r\n } else if (!licencia.fechaFin) {\r\n this.messageDialog('Por favor, rellene el campo Fecha Fin');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n newLicencia = () => {\r\n\r\n this.props.openDialog('EditLicenciaMaquina', {\r\n licencia: {},\r\n maquinaId: this.props.id,\r\n okHandler: this.addLicencia,\r\n checkLicencia: this.checkLicencia,\r\n }, uuidv4());\r\n\r\n };\r\n\r\n editLicencia = licencia => {\r\n\r\n this.props.openDialog('EditLicenciaMaquina', {\r\n licencia,\r\n maquinaId: this.props.id,\r\n okHandler: this.modifyLicenciaMaquina,\r\n checkLicencia: this.checkLicencia,\r\n }, uuidv4());\r\n\r\n }\r\n\r\n removeLicencia = licencia => {\r\n this.props.setSaveState(true);\r\n this.props.removeLicenciaDeMaquina(licencia);\r\n };\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n Licencias\r\n\r\n {this.props.maquinalicencias && !this.props.isLoading ?\r\n \r\n :
}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaquinaLicencias.propTypes = {\r\n //state\r\n isLoading: PropTypes.bool.isRequired,\r\n maquinalicencias: PropTypes.array.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n addLicenciaDeMaquina: PropTypes.func.isRequired,\r\n removeLicenciaDeMaquina: PropTypes.func.isRequired,\r\n modifyLicenciaDeMaquina: PropTypes.func.isRequired,\r\n //props:\r\n id: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n maquinalicencias: state.maquinalicencias.maquinalicencias,\r\n isLoading: state.maquinalicencias.isLoading,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n addLicenciaDeMaquina,\r\n removeLicenciaDeMaquina,\r\n modifyLicenciaDeMaquina,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(MaquinaLicencias));","import {\r\n ADD_INCIDENCIA_MAQUINA,\r\n DELETE_INCIDENCIA_MAQUINA,\r\n MODIFY_INCIDENCIA_MAQUINA\r\n} from '../constants/action_types';\r\n\r\nexport function addIncidenciaDeMaquina(incidencia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_INCIDENCIA_MAQUINA, payload: incidencia });\r\n }\r\n}\r\n\r\nexport function modifyIncidenciaMaquina(incidencia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_INCIDENCIA_MAQUINA, payload: incidencia });\r\n }\r\n}\r\n\r\nexport function removeIncidenciaDeMaquina(incidencia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_INCIDENCIA_MAQUINA, payload: incidencia });\r\n }\r\n}","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { addIncidenciaDeMaquina, removeIncidenciaDeMaquina, modifyIncidenciaMaquina } from '../../actions/maquina_incidencias_actions';\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions';\r\n\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaquinaIncidencias extends React.Component {\r\n\r\n\r\n addIncidencia = (incidencia) => {\r\n this.props.addIncidenciaDeMaquina(incidencia);\r\n };\r\n\r\n modifyIncidenciaMaquina = (incidencia) => {\r\n this.props.modifyIncidenciaMaquina(incidencia);\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n\r\n checkIncidenciaFields = incidencia => {\r\n if (incidencia.fecha < '1900-01-01T00:00:00') {\r\n this.messageDialog('Fecha de la incidencia inválida');\r\n return false;\r\n } else if (!incidencia.fecha) {\r\n this.messageDialog('Por favor, rellene el campo Fecha');\r\n return false;\r\n } else if (!incidencia.incidencia.trim()) {\r\n this.messageDialog('Por favor, rellene el campo Incidencia');\r\n return false;\r\n } else if (!incidencia.usuarioIncidencia) {\r\n this.messageDialog('Por favor, rellene el campo Usuario Incidencia');\r\n return false;\r\n } else if (incidencia.fechaDiagnostico && incidencia.fechaDiagnostico < '1900-01-01T00:00:00') {\r\n this.messageDialog('Fecha de diagnóstico inválida');\r\n return false;\r\n } else if (incidencia.fechaResolucion && incidencia.fechaResolucion < '1900-01-01T00:00:00') {\r\n this.messageDialog('Fecha de resolución inválida');\r\n return false;\r\n } else if ((incidencia.fechaResolucion && incidencia.fechaDiagnostico) && incidencia.fechaDiagnostico > incidencia.fechaResolucion) {\r\n this.messageDialog('Fecha de resolución debe ser posterior a la de diagnóstico');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n newIncidencia = () => {\r\n\r\n this.props.openDialog('EditIncidenciaMaquina', {\r\n incidencia: {},\r\n maquinaId: this.props.id,\r\n okHandler: this.addIncidencia,\r\n checkIncidenciaFields: this.checkIncidenciaFields,\r\n }, uuidv4());\r\n\r\n };\r\n\r\n editIncidencia = (incidencia) => {\r\n\r\n this.props.openDialog('EditIncidenciaMaquina', {\r\n incidencia,\r\n maquinaId: this.props.id,\r\n okHandler: this.modifyIncidenciaMaquina,\r\n checkIncidenciaFields: this.checkIncidenciaFields,\r\n }, uuidv4());\r\n\r\n };\r\n\r\n removeIncidencia = (incidencia, index) => {\r\n this.props.removeIncidenciaDeMaquina(incidencia);\r\n };\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n Incidencias\r\n\r\n {this.props.maquinaIncidencias && !this.props.isLoading ?\r\n \r\n :
}\r\n\r\n
\r\n );\r\n };\r\n};\r\n\r\nMaquinaIncidencias.propTypes = {\r\n //state\r\n isLoading: PropTypes.bool.isRequired,\r\n maquinaIncidencias: PropTypes.array.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n addIncidenciaDeMaquina: PropTypes.func.isRequired,\r\n removeIncidenciaDeMaquina: PropTypes.func.isRequired,\r\n modifyIncidenciaMaquina: PropTypes.func.isRequired,\r\n //props:\r\n id: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n maquinaIncidencias: state.maquinaIncidencias.maquinaIncidencias,\r\n isLoading: state.maquinaIncidencias.isLoading,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n addIncidenciaDeMaquina,\r\n removeIncidenciaDeMaquina,\r\n modifyIncidenciaMaquina,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(MaquinaIncidencias));","import {\r\n ADD_CONTADOR_MAQUINA,\r\n DELETE_CONTADOR_MAQUINA,\r\n MODIFY_CONTADOR_MAQUINA\r\n} from '../constants/action_types';\r\n\r\n\r\nexport function addContadorDeMaquina(contador) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_CONTADOR_MAQUINA, payload: contador });\r\n }\r\n}\r\n\r\nexport function modifyContadorDeMaquina(contador) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_CONTADOR_MAQUINA, payload: contador });\r\n }\r\n}\r\n\r\nexport function removeContadorDeMaquina(contador) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_CONTADOR_MAQUINA, payload: contador });\r\n }\r\n}","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { addContadorDeMaquina, removeContadorDeMaquina, modifyContadorDeMaquina } from '../../actions/maquina_contadores_actions';\r\n\r\nconst styles = theme => ({\r\n title: {\r\n margin: '5px 10px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaquinaContadores extends React.Component {\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dataGridScroll: false\r\n }\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (prevProps.saveState && !this.props.saveState) {\r\n this.setState({ ...this.state, dataGridScroll: false });\r\n }\r\n }\r\n\r\n addContador = (contador) => {\r\n this.props.setSaveState(true);\r\n this.props.addContadorDeMaquina(contador);\r\n this.setState({ ...this.state, dataGridScroll: true });\r\n };\r\n\r\n modifyContadorMaquina = (contador) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyContadorDeMaquina(contador);\r\n }\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n\r\n checkContador = (contador) => {\r\n if (isNaN(contador.iTipo)) {\r\n this.messageDialog('Por favor, rellene el campo i_tipo');\r\n return false;\r\n } else if (isNaN(contador.numOrden)) {\r\n this.messageDialog('Por favor, rellene el campo Num. Orden');\r\n return false;\r\n } else if (isNaN(contador.ultMultiplicador)) {\r\n this.messageDialog('Por favor, rellene el campo Ult. Multiplicador');\r\n return false;\r\n } else if (isNaN(contador.ultPrecio)) {\r\n this.messageDialog('Por favor, rellene el campo Ult. Precio');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n newContador = () => {\r\n\r\n this.props.openDialog('EditContadorMaquina', {\r\n contador: {},\r\n maquinaId: this.props.id,\r\n okHandler: this.addContador,\r\n checkContador: this.checkContador,\r\n tipoB: this.props.tipoB\r\n }, uuidv4());\r\n\r\n };\r\n\r\n editContador = (contador) => {\r\n\r\n this.props.openDialog('EditContadorMaquina', {\r\n contador,\r\n okHandler: this.modifyContadorMaquina,\r\n checkContador: this.checkContador,\r\n maquinaId: this.props.id,\r\n tipoB: this.props.tipoB\r\n }, uuidv4());\r\n\r\n };\r\n\r\n removeContador = (contador, index) => {\r\n this.props.setSaveState(true);\r\n this.props.removeContadorDeMaquina(contador);\r\n };\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n Contadores\r\n\r\n {this.props.maquinaContadores && !this.props.isLoading ?\r\n {\r\n this.props.openDialog('EditLecturasContador', {\r\n id: row.id,\r\n tipoB: this.props.tipoB\r\n }, uuidv4(), false, 'md');\r\n }\r\n },\r\n ]\r\n :\r\n [\r\n { key: 'tipoContador', name: 'Tipo Contador', editable: false, dragable: false, width: 100 },\r\n { key: 'numOrden', name: 'Num. Orden', editable: false, dragable: false, width: 85 },\r\n { key: 'ultMultiplicador', name: 'Ult. Multiplicador', editable: false, dragable: false, type: 'float', decimal: 3, width: 115 },\r\n { key: 'ultPrecio', name: 'Ult. Precio', editable: false, dragable: false, type: 'float', decimal: 3, width: 75 },\r\n { key: 'contadorCompra', name: 'Contador inicial', editable: false, dragable: false, type: 'int', width: 115 },\r\n { key: 'activa', name: 'Activa', type: 'bool', editable: false, dragable: false, width: 55 },\r\n { key: 'anulado', name: 'Anulado', type: 'bool', editable: false, dragable: false, width: 60 },\r\n {\r\n key: 'launch', name: '', editable: false, dragable: false, type: 'launch', handleLaunchClick: (row) => {\r\n this.props.openDialog('EditLecturasContador', {\r\n id: row.id,\r\n tipoB: this.props.tipoB\r\n }, uuidv4(), false, 'md');\r\n }\r\n },\r\n ]\r\n }\r\n rows={this.props.maquinaContadores}\r\n buttonEdit={true}\r\n buttonDelete={true}\r\n buttonNew={true}\r\n onNewRowClick={this.newContador}\r\n onEditClick={this.editContador}\r\n onDeleteClick={this.removeContador}\r\n last={this.state.dataGridScroll}\r\n height={200}\r\n />\r\n :
}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaquinaContadores.propTypes = {\r\n //state\r\n isLoading: PropTypes.bool.isRequired,\r\n maquinaContadores: PropTypes.array.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n addContadorDeMaquina: PropTypes.func.isRequired,\r\n removeContadorDeMaquina: PropTypes.func.isRequired,\r\n modifyContadorDeMaquina: PropTypes.func.isRequired,\r\n //props:\r\n id: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n maquinaContadores: state.maquinaContadores.maquinaContadores,\r\n tipoB: state.maquinaDetalle.maquinadetalles.tipoB,\r\n isLoading: state.maquinaContadores.isLoading,\r\n saveState: state.saveState\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n addContadorDeMaquina,\r\n removeContadorDeMaquina,\r\n modifyContadorDeMaquina,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(MaquinaContadores));","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport { navigate, openDialog, setSaveState } from '../../actions';\r\nimport { updateDetallesMaquinaDB, NewMaquinaDB } from '../../actions/maquina_detalle_actions';\r\n\r\nconst styles = theme => ({\r\n buttonsBottom: {\r\n margin: '20px 15px 30px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\n\r\nclass MaquinaActionButtons extends Component {\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, 'save_maquina:detalles_error', false, 'sm');\r\n\r\n };\r\n\r\n\r\n checkFields = maquina => {\r\n\r\n if (maquina.fechaCompra < '1900-01-01T00:00:00') {\r\n this.messageDialog('Fecha de compra inválida');\r\n return false;\r\n } else if (!maquina.fechaCompra) {\r\n this.messageDialog('Fecha de compra inválida');\r\n return false;\r\n } else if (maquina.fechaBaja && Date.parse(maquina.fechaCompra) > Date.parse(maquina.fechaBaja)) {\r\n this.messageDialog('Fecha de baja debe ser posterior a la de compra');\r\n return false;\r\n } else if (Date.parse(maquina.fechaAlta.slice(0, 10)) < Date.parse(maquina.fechaCompra.slice(0, 10))) {\r\n this.messageDialog('La fecha de alta no puede ser anterior a la fecha de compra');\r\n return false;\r\n } else if (!maquina.descr) {\r\n this.messageDialog('Por favor, rellene el campo Nombre');\r\n return false;\r\n } else if (!maquina.matricula) {\r\n this.messageDialog('Por favor, rellene el campo Matrícula');\r\n return false;\r\n } else if (!maquina.fechaCompra) {\r\n this.messageDialog('Por favor, rellene el campo Fecha Compra');\r\n return false;\r\n } else if (!maquina.regInterno) {\r\n this.messageDialog('Por favor, rellene el campo Reg Interno');\r\n return false;\r\n }\r\n\r\n\r\n let fechasCorrectas = true;\r\n\r\n this.props.maquinaCentros.maquinaCentros.forEach((c, i) => {\r\n\r\n if (this.props.maquinaCentros.maquinaCentros[i + 1] !== undefined) {\r\n\r\n if (c.fEnd === null) {\r\n this.messageDialog('Fechas de alta en centros incorrectas');\r\n fechasCorrectas = false;\r\n }\r\n\r\n if (Date.parse(c.fEnd.slice(0, 10)) > Date.parse(this.props.maquinaCentros.maquinaCentros[i + 1].fIni.slice(0, 10))) {\r\n this.messageDialog('Fechas de alta en centros incorrectas');\r\n fechasCorrectas = false;\r\n }\r\n }\r\n\r\n });\r\n\r\n if (!fechasCorrectas) return false;\r\n\r\n return true;\r\n\r\n };\r\n\r\n updateHandler = () => {\r\n\r\n this.props.maquinaContadores.maquinaContadores.forEach(p => {\r\n if (typeof p.id !== 'number') p.id = -1;\r\n });\r\n\r\n this.props.maquinaIncidencias.maquinaIncidencias.forEach(p => {\r\n if (typeof p.id !== 'number') p.id = -1;\r\n });\r\n\r\n this.props.maquinalicencias.maquinalicencias.forEach(p => {\r\n if (typeof p.id !== 'number') p.id = -1;\r\n });\r\n\r\n this.props.maquinaItvs.maquinaItvs.forEach(p => {\r\n if (typeof p.id !== 'number') p.id = -1;\r\n });\r\n\r\n this.props.maquinaCentros.maquinaCentros.forEach(p => {\r\n if (typeof p.id !== 'number') p.id = -1;\r\n });\r\n\r\n\r\n const maquina = {\r\n id: this.props.detallesmaquina.maquinadetalles.id,\r\n descr: this.props.detallesmaquina.maquinadetalles.descr,\r\n matricula: this.props.detallesmaquina.maquinadetalles.matricula,\r\n iModeloMaquina: this.props.detallesmaquina.maquinadetalles.iModeloMaquina,\r\n fechaCompra: this.props.detallesmaquina.maquinadetalles.fechaCompra,\r\n fechaAlta: this.props.detallesmaquina.maquinadetalles.fechaAlta,\r\n fechaBaja: this.props.detallesmaquina.maquinadetalles.fechaBaja ? this.props.detallesmaquina.maquinadetalles.fechaBaja : '',\r\n regInterno: this.props.detallesmaquina.maquinadetalles.regInterno,\r\n activa: this.props.detallesmaquina.maquinadetalles.activa,\r\n comentarios: this.props.detallesmaquina.maquinadetalles.comentarios,\r\n regaloDirecto: this.props.detallesmaquina.maquinadetalles.regaloDirecto,\r\n centroId: this.props.detallesmaquina.maquinadetalles.centroId,\r\n contadores: this.props.maquinaContadores.maquinaContadores,\r\n incidencias: this.props.maquinaIncidencias.maquinaIncidencias,\r\n licencias: this.props.maquinalicencias.maquinalicencias,\r\n itVs: this.props.maquinaItvs.maquinaItvs,\r\n centros: this.props.maquinaCentros.maquinaCentros\r\n\r\n };\r\n\r\n if (this.checkFields(maquina)) {\r\n this.props.setSaveState(false);\r\n\r\n if (this.props.id === -1) {\r\n this.props.NewMaquinaDB(maquina, this.props.id, this.props.detallesmaquina.maquinadetalles.fechaAlta, () => { console.log(1000); this.props.navigate(\"mae_maquina\") })\r\n }\r\n else {\r\n console.log(1001);\r\n this.props.updateDetallesMaquinaDB(maquina, this.props.id, () => { console.log(1500); this.props.navigate(\"mae_maquina\") })\r\n };\r\n\r\n };\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n \r\n this.updateHandler()}>\r\n Guardar\r\n \r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nMaquinaActionButtons.propTypes = {\r\n //state\r\n id: PropTypes.number.isRequired,\r\n detallesmaquina: PropTypes.object.isRequired,\r\n maquinaContadores: PropTypes.object.isRequired,\r\n maquinaIncidencias: PropTypes.object.isRequired,\r\n maquinalicencias: PropTypes.object.isRequired,\r\n maquinaItvs: PropTypes.object.isRequired,\r\n maquinaCentros: PropTypes.object.isRequired,\r\n //dispatch\r\n updateDetallesMaquinaDB: PropTypes.func.isRequired,\r\n NewMaquinaDB: PropTypes.func.isRequired,\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n detallesmaquina: state.maquinaDetalle,\r\n maquinaContadores: state.maquinaContadores,\r\n maquinaIncidencias: state.maquinaIncidencias,\r\n maquinalicencias: state.maquinalicencias,\r\n maquinaItvs: state.maquinaItvs,\r\n maquinaCentros: state.maquinaCentros\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n updateDetallesMaquinaDB,\r\n NewMaquinaDB,\r\n navigate,\r\n openDialog,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withStyles(styles, { withTheme: true })(MaquinaActionButtons)));","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\n//component ui:\r\nimport DatePicker from '../../components/utils/DatePicker';\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Input from '@material-ui/core/Input';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Icon from '@material-ui/core/Icon';\r\n\r\n//components of grids:\r\nimport MaquinaCentros from './maquina_centros';\r\nimport MaquinaItv from './maquina_itv';\r\nimport MaquinaLicencias from './maquina_licencias';\r\nimport MaquinaIncidencias from './maquina_incidencias';\r\nimport MaquinaContadores from './maquina_contadores';\r\nimport MaquinaActionButtons from './maquina_action_buttons';\r\n\r\n//actions:\r\nimport { navigate, setSaveState, openDialog } from '../../actions';\r\n\r\nimport { getData } from '../../dataLib';\r\n\r\n//for the select options:\r\nimport {\r\n getMaquinaDetalles,\r\n modifyFieldDetalleMaquina,\r\n addNewMaquina,\r\n} from '../../actions/maquina_detalle_actions';\r\n//import { getModelosMaquina } from '../../actions/modelos_maquina_actions';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n toolbar: {\r\n display: 'block',\r\n minHeight: 112,\r\n marginBottom: 15,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n formRight: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 0 5px 20px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n formSelect: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 0 5px 20px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n formComent: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '10px 0 5px 25px',\r\n width: 520,\r\n minWidth: 120,\r\n },\r\n grid: {\r\n padding: '0 12px',\r\n width: '100%',\r\n },\r\n buttonAtras: {\r\n margin: '0 0 10px 16px',\r\n height: 40,\r\n width: 123,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n centroSelect: {\r\n maxWidth: 240,\r\n },\r\n modeloSelect: {\r\n marginRight: 20,\r\n maxWidth: 240,\r\n },\r\n buttonIcon: {\r\n marginLeft: theme.spacing(2),\r\n borderRadius: 0,\r\n border: 'none',\r\n boxShadow: 'none',\r\n height: 48,\r\n },\r\n});\r\n\r\nclass MaquinaEdit extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n id: '',\r\n descr: '',\r\n matricula: '',\r\n iModeloMaquina: '',\r\n modelo: '',\r\n fechaCompra: null,\r\n fechaBaja: null,\r\n regInterno: '',\r\n comentarios: '',\r\n regaloDirecto: false,\r\n activa: false,\r\n\r\n iTipoMaquina: '',\r\n tipo: '',\r\n centroId: '',\r\n centro: '',\r\n\r\n fechaAlta: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(''); //go to home page\r\n return;\r\n }\r\n\r\n //if is a new maquina we put the state to empty:\r\n if (this.props.match.params.id === '-1') {\r\n getData(\r\n 'VMaquinas/NuevoRegInterno',\r\n response => {\r\n this.props.addNewMaquina(\r\n [...this.props.modelosMaquina].sort(\r\n this.compareDescr,\r\n )[0].id,\r\n this.props.centros[0].id,\r\n response.data,\r\n );\r\n },\r\n undefined,\r\n this.props.user,\r\n );\r\n }\r\n //otherwise, get all its details:\r\n else this.props.getMaquinaDetalles(this.props.match.params.id);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.detallesmaquina !== this.props.detallesmaquina) {\r\n //once we get the data:\r\n this.setState({\r\n id: this.props.match.params.id\r\n ? this.props.match.params.id\r\n : -1,\r\n descr: !this.props.detallesmaquina\r\n ? ''\r\n : this.props.detallesmaquina.descr,\r\n matricula: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.matricula\r\n : '',\r\n iModeloMaquina: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.iModeloMaquina\r\n : '',\r\n modelo: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.modelo\r\n : [...this.props.modelosMaquina].sort(this.compareDescr)[0]\r\n .descr,\r\n fechaCompra: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.fechaCompra\r\n ? this.props.detallesmaquina.fechaCompra.slice(0, 10)\r\n : ''\r\n : '',\r\n fechaBaja: this.props.detallesmaquina\r\n ? !this.props.detallesmaquina.fechaBaja\r\n ? ''\r\n : this.props.detallesmaquina.fechaBaja.slice(0, 10)\r\n : null,\r\n regInterno: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.regInterno\r\n : '',\r\n comentarios: !this.props.detallesmaquina\r\n ? ''\r\n : this.props.detallesmaquina.comentarios,\r\n regaloDirecto: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.regaloDirecto\r\n : false,\r\n activa: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.activa\r\n : false,\r\n\r\n iTipoMaquina: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.iTipoMaquina\r\n : '',\r\n tipo: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.tipo\r\n : '',\r\n centro: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.centro\r\n : '',\r\n centroId: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.centroId\r\n : '',\r\n\r\n fechaAlta: this.props.detallesmaquina\r\n ? this.props.detallesmaquina.fechaAlta\r\n : '',\r\n });\r\n\r\n if (prevProps.updated !== this.props.updated && this.props.updated)\r\n this.props.navigate('mae_maquina');\r\n }\r\n }\r\n\r\n //textfield\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n //this.setState({ ...this.state, [field]: event });\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldDetalleMaquina(field, event);\r\n };\r\n\r\n //checkbox:\r\n handleBooleanChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.checked });\r\n };\r\n\r\n //modelo maquina select:\r\n handleModeloMaquinaChange = event => {\r\n const value = parseInt(event.target.value);\r\n\r\n this.setState({\r\n ...this.state,\r\n iModeloMaquina: value,\r\n modelo: this.props.modelosMaquina.find(mm => mm.id === value).descr,\r\n });\r\n };\r\n\r\n compareDescr = (a, b) => {\r\n if (a.descr < b.descr) return -1;\r\n if (a.descr > b.descr) return 1;\r\n return 0;\r\n };\r\n\r\n fillModelosMaquina = () => {\r\n //poner un SPINNER hasta que se imprima toda la lista (tarda unos 2-3 segs):\r\n\r\n return [...this.props.modelosMaquina]\r\n .sort(this.compareDescr)\r\n .map(mm => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n onBlur = (event, field) => {\r\n //const value = event.target.value;\r\n\r\n console.log(field);\r\n console.log(this.state[field]);\r\n\r\n const value = this.state[field];\r\n\r\n if (this.props.detallesmaquina[field] !== value) {\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldDetalleMaquina(field, value);\r\n }\r\n };\r\n\r\n onBlurCheckBox = (event, field) => {\r\n let value = event.target.checked;\r\n\r\n if (value === 'true') value = true;\r\n else if (value === 'false') value = false;\r\n\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldDetalleMaquina(field, value);\r\n };\r\n\r\n goBack = () => {\r\n if (this.props.saveState.pending) {\r\n this.props.openDialog(\r\n 'ConfirmationDialog',\r\n {\r\n message:\r\n 'Existen cambios no guardados. Desea abandonar la sección y perder los cambios?',\r\n acceptHandler: () => {\r\n this.props.setSaveState(false);\r\n this.props.navigate('mae_maquina');\r\n },\r\n },\r\n 'left-drawer-confirmation-message',\r\n false,\r\n 'sm',\r\n );\r\n } else {\r\n this.props.navigate('mae_maquina');\r\n }\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return this.props.detallesmaquina && this.props.modelosMaquina ? (\r\n
\r\n
\r\n \r\n
\r\n {/* */}\r\n \r\n {' '}\r\n keyboard_backspace\r\n \r\n\r\n
\r\n \r\n \r\n this.handleValueChange(event, 'descr')\r\n }\r\n onBlur={event =>\r\n this.onBlur(event, 'descr')\r\n }\r\n onKeyPress={e => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n this.onBlur(e, 'descr');\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n Modelo de Maquina\r\n \r\n \r\n this.onBlur(event, 'iModeloMaquina')\r\n }\r\n input={}\r\n style={{ maxHeight: 300 }}\r\n name=\"modeloMaquina\"\r\n >\r\n {this.fillModelosMaquina()}\r\n \r\n \r\n \r\n \r\n Centro\r\n \r\n \r\n this.handleValueChange(\r\n event,\r\n 'centroId',\r\n )\r\n }\r\n onBlur={event =>\r\n this.onBlur(event, 'centroId')\r\n }\r\n input={}\r\n name=\"centroId\"\r\n >\r\n {this.props.centros.map(centro => {\r\n return (\r\n \r\n {centro.centro}\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n this.handleValueChange(\r\n event,\r\n 'matricula',\r\n )\r\n }\r\n onBlur={event =>\r\n this.onBlur(event, 'matricula')\r\n }\r\n onKeyPress={e => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n this.onBlur(e, 'matricula');\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n this.handleValueChange(\r\n event,\r\n 'regInterno',\r\n )\r\n }\r\n onBlur={event =>\r\n this.onBlur(event, 'regInterno')\r\n }\r\n onKeyPress={e => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n this.onBlur(e, 'regInterno');\r\n }\r\n }}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(\r\n d.toISOString().slice(0, 10),\r\n 'fechaCompra',\r\n )\r\n }\r\n }}\r\n onBlur={event =>\r\n this.onBlur(event, 'fechaCompra')\r\n }\r\n onKeyPress={e => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n this.onBlur(e, 'fechaCompra');\r\n }\r\n }}\r\n />\r\n \r\n\r\n {this.props.match.params.id === '-1' ? (\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(\r\n d.toISOString().slice(0, 10),\r\n 'fechaAlta',\r\n )\r\n }\r\n\r\n }}\r\n onBlur={event =>\r\n this.onBlur(event, 'fechaAlta')\r\n }\r\n onKeyPress={e => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n this.onBlur(e, 'fechaAlta');\r\n }\r\n }}\r\n />\r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(\r\n d.toISOString().slice(0, 10),\r\n 'fechaBaja',\r\n )\r\n }\r\n else {\r\n this.handleValueChangeDate(null, 'fechaBaja')\r\n }\r\n }}\r\n onBlur={event =>\r\n this.onBlur(event, 'fechaBaja')\r\n }\r\n onKeyPress={e => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n this.onBlur(e, 'fechaBaja');\r\n }\r\n }}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n this.handleValueChange(\r\n event,\r\n 'comentarios',\r\n )\r\n }\r\n onBlur={event =>\r\n this.onBlur(event, 'comentarios')\r\n }\r\n />\r\n \r\n
\r\n\r\n \r\n \r\n \r\n this.handleBooleanChange(\r\n event,\r\n 'activa',\r\n )\r\n }\r\n onBlur={event =>\r\n this.onBlurCheckBox(\r\n event,\r\n 'activa',\r\n )\r\n }\r\n onKeyPress={e => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n this.onBlur(e);\r\n }\r\n }}\r\n color=\"primary\"\r\n />\r\n }\r\n label=\"Activa\"\r\n />\r\n \r\n\r\n \r\n \r\n this.handleBooleanChange(\r\n event,\r\n 'regaloDirecto',\r\n )\r\n }\r\n onBlur={event =>\r\n this.onBlurCheckBox(\r\n event,\r\n 'regaloDirecto',\r\n )\r\n }\r\n onKeyPress={e => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n this.onBlur(e);\r\n }\r\n }}\r\n color=\"primary\"\r\n />\r\n }\r\n label=\"Regalo Directo\"\r\n />\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n ) : (\r\n ''\r\n );\r\n }\r\n}\r\n\r\nMaquinaEdit.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n detallesmaquina: PropTypes.object,\r\n updated: PropTypes.bool.isRequired,\r\n tiposMaquina: PropTypes.object.isRequired,\r\n modelosMaquina: PropTypes.array.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getMaquinaDetalles: PropTypes.func.isRequired,\r\n modifyFieldDetalleMaquina: PropTypes.func.isRequired,\r\n addNewMaquina: PropTypes.func.isRequired,\r\n getModelosMaquina: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n detallesmaquina: state.maquinaDetalle.maquinadetalles,\r\n updated: state.maquinaDetalle.updated,\r\n tiposMaquina: state.tiposMaquina,\r\n modelosMaquina: state.modelosMaquina.modelosmaquina,\r\n centros: state.centros.centros,\r\n saveState: state.saveState,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n navigate,\r\n getMaquinaDetalles,\r\n modifyFieldDetalleMaquina,\r\n addNewMaquina,\r\n //getModelosMaquina,\r\n setSaveState,\r\n openDialog,\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(withRouter(withStyles(styles, { withTheme: true })(MaquinaEdit)));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//actions:\r\nimport { unlockCierreDiario, modifyDatosCierreDiario, getOtrosDatosCierreDiario, newOtrosDatosDB, updateOtrosDatosDB } from '../actions/cierre_diario_actions';\r\nimport { unlockCierreSemanal } from '../actions/cierre_semanal_actions';\r\nimport {\r\n setCentroDia,\r\n invalidateCentroDiaData,\r\n enableCentroDiaData,\r\n} from '../actions/centro_dia_actions';\r\nimport { openDialog, loading } from '../actions/index';\r\nimport { setSaveState } from '../actions';\r\n\r\n\r\n//component ui:\r\nimport DatePicker from '../components/utils/DatePicker';\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport { Button, Paper } from '@material-ui/core';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\n//helpers:\r\nimport { getData, postData, putData } from '../dataLib';\r\n\r\nconst styles = theme => ({\r\n form: {\r\n maxWidth: 600,\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n select: {\r\n width: 180,\r\n margin: 0,\r\n padding: 0,\r\n },\r\n spinnerContainer: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: 40,\r\n },\r\n spinner: {\r\n width: '20px !important',\r\n height: '20px !important',\r\n },\r\n textField: {\r\n width: 150,\r\n margin: 0,\r\n padding: 0,\r\n },\r\n desbloquearContainer: {\r\n display: 'flex',\r\n width: 130,\r\n },\r\n acceptContainer: {\r\n display: 'flex',\r\n width: 95,\r\n },\r\n button: {\r\n borderRadius: 0,\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n color: 'white',\r\n height: \"100%\",\r\n textTransform: 'capitalize',\r\n boxShadow: 'none',\r\n },\r\n paperCentroDia: {\r\n margin: 8,\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: 'white',\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n buttonEnl: {\r\n padding: '0 5px',\r\n marginLeft: 10,\r\n backgroundColor: theme.palette.secondary.light,\r\n borderRadius: 0,\r\n fontSize: 10,\r\n // minWidth: 40,\r\n minWidth: 45,\r\n height: 35,\r\n '&:hover': {\r\n backgroundColor: '#cc8ebf'\r\n },\r\n boxShadow: '1px 1px 1px darkgrey',\r\n overflow: 'hidden'\r\n },\r\n buttonContentEnl: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n }\r\n});\r\n\r\nclass CentroDia extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n centroId: this.props.centroDiaSelected.centro.id\r\n ? this.props.centroDiaSelected.centro.id\r\n : 0,\r\n centroDescr: this.props.centroDiaSelected.centro.descr\r\n ? this.props.centroDiaSelected.centro.descr\r\n : '',\r\n centroDiaCierre: this.props.centroDiaSelected.centro.iDiaCierre\r\n ? this.props.centroDiaSelected.centro.iDiaCierre\r\n : 1,\r\n dia: this.props.centroDiaSelected.dia\r\n ? this.props.centroDiaSelected.dia\r\n : '2018-04-02',\r\n showButton: true,\r\n producto: {},\r\n productoRelacionado: {},\r\n isSigfridLoaded: false,\r\n isTecBrainLoaded: false\r\n };\r\n }\r\n\r\n componentDidUpdate = (prevProps, prevState) => {\r\n\r\n //Comprobar si se han cargado los datos\r\n if (this.state.isSigfridLoaded && this.state.isTecBrainLoaded) {\r\n this.setState({ ...this.state, isSigfridLoaded: false, isTecBrainLoaded: false });\r\n this.props.openDialog('SimpleMessage', {\r\n message: \"Sistemas enlazados importados\"\r\n }, uuidv4(), false, 'sm');\r\n this.props.loading(false);\r\n }\r\n\r\n //Comprobacion de si hay dato en cierre diario para mostrar el boton para sincronizar\r\n //datos de sigfrid y tecbrain\r\n if (!this.props.semanal) {\r\n if (prevState.producto === this.state.producto) {\r\n let dataBar, dataPack;\r\n if (this.props.datosCierreDiario.datos.length > 0) {\r\n this.props.datosCierreDiario.datos.forEach(data => {\r\n if (data.iKind === -7) {\r\n dataBar = data;\r\n }\r\n if (data.iKind === -8) {\r\n dataPack = data;\r\n }\r\n });\r\n //if (dataBar && dataPack) {\r\n if (dataBar) {\r\n if (dataBar !== this.state.producto) {\r\n this.props.getOtrosDatosCierreDiario(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia);\r\n this.setState({\r\n ...this.state,\r\n producto: dataBar,\r\n productoRelacionado: dataPack\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (prevProps.isLoaded !== this.props.isLoaded && this.props.isLoaded) {\r\n this.setState({\r\n ...this.state, showButton: false\r\n });\r\n } else {\r\n if (\r\n prevProps.centroDiaSelected.centro.id !==\r\n this.props.centroDiaSelected.centro.id ||\r\n prevProps.centroDiaSelected.dia !==\r\n this.props.centroDiaSelected.dia\r\n ) {\r\n this.setState({\r\n ...this.state,\r\n centroId: this.props.centroDiaSelected.centro.id,\r\n centroDescr: this.props.centroDiaSelected.centro.descr,\r\n centroDiaCierre: this.props.centroDiaSelected.centro\r\n .iDiaCierre,\r\n dia: this.props.centroDiaSelected.dia\r\n });\r\n }\r\n }\r\n };\r\n\r\n componentDidMount = () => {\r\n\r\n if (this.props.isLoaded)\r\n this.setState({ ...this.state, showButton: false });\r\n this.props.enableCentroDiaData();\r\n };\r\n\r\n handleCentroValueChange = event => {\r\n const value = parseInt(event.target.value);\r\n\r\n let urlCierre =\r\n 'CierreDiario/UtimoDiaCerrado?centro_id=' +\r\n value +\r\n '&semanal=' +\r\n this.props.semanal;\r\n\r\n getData(\r\n urlCierre,\r\n response => {\r\n var centro = this.props.centros.find(c => c.id === value);\r\n\r\n var dt = new Date(response.data);\r\n this.setState({\r\n ...this.state,\r\n centroId: value,\r\n centroDescr: centro.descr,\r\n centroDiaCierre: centro.iDiaCierre,\r\n dia: dt.toISOString().slice(0, 10),\r\n showButton: true,\r\n });\r\n this.props.invalidateCentroDiaData();\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'error obteniendo última fecha de cierre',\r\n },\r\n 'error-centro-dia-ultimo-dia',\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n handleDiaValueChange = event => {\r\n\r\n var dt = new Date(event);\r\n\r\n if (this.props.semanal === true) {\r\n\r\n if (dt.getDay() !== this.state.centroDiaCierre) {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'Seleccione un día de cierre semanal',\r\n },\r\n 'centro_dia_dia_cierre_semanal',\r\n false,\r\n 'sm',\r\n );\r\n return;\r\n }\r\n }\r\n\r\n this.setState({ ...this.state, dia: dt.toISOString().slice(0, 10), showButton: true });\r\n this.props.invalidateCentroDiaData();\r\n };\r\n\r\n handleAceptarButtonClick = e => {\r\n e.preventDefault();\r\n if (this.props.centros.length) {\r\n if (this.props.semanal === true) {\r\n var dt = new Date(this.state.dia);\r\n if (dt.getDay() !== this.state.centroDiaCierre) {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'Seleccione un día de cierre semanal',\r\n },\r\n 'centro_dia_dia_cierre_semanal',\r\n false,\r\n 'sm',\r\n );\r\n return;\r\n } else {\r\n this.props.setCentroDia(\r\n this.state.centroId,\r\n this.state.dia,\r\n this.props.semanal,\r\n true,\r\n );\r\n }\r\n } else {\r\n let urlCierre =\r\n 'CierreDiario/UtimoDiaCerrado?centro_id=' +\r\n this.state.centroId;\r\n\r\n getData(\r\n urlCierre,\r\n response => {\r\n var dt = new Date(response.data);\r\n var dt_sel = new Date(this.state.dia);\r\n\r\n if (dt_sel.getTime() > dt.getTime()) {\r\n this.props.invalidateCentroDiaData();\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message:\r\n 'El día: ' +\r\n dt.toLocaleDateString() +\r\n ' aún no ha sido cerrado',\r\n },\r\n 'centro_dia_error_dia_cierre_semanal',\r\n false,\r\n 'sm',\r\n );\r\n\r\n this.setState({\r\n ...this.state,\r\n dia: dt.toISOString().slice(0, 10),\r\n });\r\n } else {\r\n this.props.setCentroDia(\r\n this.state.centroId,\r\n this.state.dia,\r\n this.props.semanal,\r\n true,\r\n );\r\n }\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message:\r\n 'error obteniendo última fecha de cierre',\r\n },\r\n 'error-centro-dia-ultimo-dia',\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n }\r\n }\r\n };\r\n\r\n centroSelectOptions = () => {\r\n return this.props.centros\r\n .filter(c => c.isGroup === false && c.activo === 1)\r\n .map((centro, index) => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n //#region Sigfrid\r\n updateDesglose = (response, desgloseId, articuloId) => {\r\n\r\n const art2 = this.state.productoRelacionado ? this.state.productoRelacionado.articuloId : '0';\r\n\r\n let desgloseURL = 'dadesglosehoras/' + desgloseId;\r\n desgloseURL += '?art1=' + this.state.producto.articuloId + '&art2=' + art2 + '&normal=' + response.normal + '&packs=' + response.packs;\r\n\r\n putData(desgloseURL,\r\n () => {\r\n /* const message = this.state.producto.iKind === -7 ? 'Ventas Bar y franjas horarias importadas' : 'Ventas por hora actualizadas'\r\n this.props.openDialog('SimpleMessage', {\r\n message: message\r\n }, uuidv4(), false, 'sm'); */\r\n this.props.modifyDatosCierreDiario({ ...this.state.producto, button1: response.normal + response.packs, importe: response.normal });\r\n if (this.state.productoRelacionado) {\r\n this.props.modifyDatosCierreDiario({ ...this.state.productoRelacionado, importe: response.packs });\r\n }\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR actualizando ventas por hora'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n { ...response.desglose, id: desgloseId, articuloId: articuloId, fecha: this.props.centroDiaSelected.dia },\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n newDesglose = (response, articuloId) => {\r\n\r\n const art2 = this.state.productoRelacionado ? this.state.productoRelacionado.articuloId : '0';\r\n\r\n let desgloseURL = 'dadesglosehoras';\r\n desgloseURL += '?art1=' + this.state.producto.articuloId + '&art2=' + art2 + '&normal=' + response.normal + '&packs=' + response.packs;\r\n\r\n postData(desgloseURL,\r\n () => {\r\n /* const message = this.state.producto.iKind === -7 ? 'Ventas Bar y franjas horarias importadas' : 'Ventas por hora actualizadas'\r\n this.props.openDialog('SimpleMessage', {\r\n message: message\r\n }, uuidv4(), false, 'sm'); */\r\n this.setState({ ...this.state, isSigfridLoaded: true });\r\n\r\n this.props.modifyDatosCierreDiario({ ...this.state.producto, button1: response.normal + response.packs, importe: response.normal });\r\n if (this.state.productoRelacionado) {\r\n this.props.modifyDatosCierreDiario({ ...this.state.productoRelacionado, importe: response.packs });\r\n }\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating desglose horas 2'\r\n }, uuidv4(), false, 'sm');\r\n this.setState({ ...this.state, isSigfridLoaded: true })\r\n },\r\n { ...response.desglose, id: -1, articuloId: articuloId, fecha: this.props.centroDiaSelected.dia },\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n sigfridHandler = (sigfrid) => {\r\n const desgloseURL = 'dadesglosehoras/cierrediario?zona_id=' + this.state.producto.zonaId + '&date=' + this.props.centroDiaSelected.dia;\r\n\r\n getData(desgloseURL,\r\n (response) => {\r\n if (response.data.id === -1) {\r\n this.newDesglose(sigfrid, response.data.articuloId);\r\n } //nuevo desglose\r\n else {\r\n this.updateDesglose(sigfrid, response.data.id, response.data.articuloId);\r\n } //actualizar desglose\r\n\r\n this.setState({ ...this.state, isSigfridLoaded: true })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching desglose horas - ' + error\r\n }, uuidv4(), false, 'sm');\r\n this.setState({ ...this.state, isSigfridLoaded: true })\r\n },\r\n this.props.user\r\n );\r\n\r\n\r\n }\r\n\r\n importSigfrid = (thenHandler) => {\r\n\r\n const getURL = 'sigfrid?centro_id=' + this.props.centroDiaSelected.centro.sigfrid + '&date=' + this.props.centroDiaSelected.dia;\r\n\r\n getData(getURL,\r\n (response) => {\r\n\r\n let totales = [];\r\n\r\n let normal = 0.0;\r\n let packs = 0.0;\r\n\r\n for (const key in response.data.datos) {\r\n\r\n if (key !== \"local\" && key !== \"fecha\" && key !== \"cabeceras\" && key !== \"totales\") {\r\n\r\n const linea = response.data.datos[key];\r\n\r\n //if (linea[20].value21 === null || linea[20].value21 === '') {\r\n\r\n if (linea[10].value11 !== '002' && linea[10].value11 !== '001') {\r\n\r\n const hora = parseInt(linea[12].value13.slice(0, 2));\r\n const importe = parseFloat(linea[8].value9.replace('.', '').replace(',', '.'));\r\n const tipo = linea[13].value14;\r\n\r\n if (totales[hora] !== undefined) totales[hora] += importe;\r\n else totales[hora] = importe;\r\n\r\n if (tipo === \"MESA\") packs += importe;\r\n else normal += importe;\r\n\r\n }\r\n }\r\n }\r\n\r\n var newDesglose = {};\r\n\r\n let antes12 = 0.0;\r\n for (let i = 5; i <= 12; i++) {\r\n if (totales[i] !== undefined) antes12 += totales[i];\r\n }\r\n\r\n newDesglose.hora01 = antes12;\r\n newDesglose.hora02 = totales[13] ? totales[13] : 0.0;\r\n newDesglose.hora03 = totales[14] ? totales[14] : 0.0;\r\n newDesglose.hora04 = totales[15] ? totales[15] : 0.0;\r\n newDesglose.hora05 = totales[16] ? totales[16] : 0.0;\r\n newDesglose.hora06 = totales[17] ? totales[17] : 0.0;\r\n newDesglose.hora07 = totales[18] ? totales[18] : 0.0;\r\n newDesglose.hora08 = totales[19] ? totales[19] : 0.0;\r\n newDesglose.hora09 = totales[20] ? totales[20] : 0.0;\r\n newDesglose.hora10 = totales[21] ? totales[21] : 0.0;\r\n newDesglose.hora11 = totales[22] ? totales[22] : 0.0;\r\n newDesglose.hora12 = totales[23] ? totales[23] : 0.0;\r\n newDesglose.hora13 = totales[0] ? totales[0] : 0.0;\r\n newDesglose.hora14 = totales[1] ? totales[1] : 0.0;\r\n newDesglose.hora15 = totales[2] ? totales[2] : 0.0;\r\n newDesglose.hora16 = totales[3] ? totales[3] : 0.0;\r\n newDesglose.hora17 = totales[4] ? totales[4] : 0.0;\r\n newDesglose.hora18 = 0.0;\r\n newDesglose.hora19 = 0.0;\r\n newDesglose.hora20 = 0.0;\r\n newDesglose.hora21 = 0.0;\r\n newDesglose.hora22 = 0.0;\r\n newDesglose.hora23 = 0.0;\r\n newDesglose.hora24 = 0.0;\r\n\r\n if (!this.state.productoRelacionado) thenHandler({ desglose: newDesglose, normal: normal + packs, packs: 0 });\r\n else thenHandler({ desglose: newDesglose, normal: normal, packs: packs });\r\n\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching sigfrid - ' + error\r\n }, uuidv4(), false, 'sm');\r\n this.setState({ ...this.state, isSigfridLoaded: true })\r\n },\r\n this.props.user\r\n );\r\n }\r\n\r\n //#endregion\r\n\r\n thenTecBrainCount = () => {\r\n this.props.setSaveState(false);\r\n this.setState({ ...this.state, isTecBrainLoaded: true });\r\n this.props.loading(false);\r\n }\r\n\r\n formatDate(date) {\r\n var d = new Date(date),\r\n month = '' + (d.getMonth() + 1),\r\n day = '' + d.getDate(),\r\n year = d.getFullYear();\r\n \r\n if (month.length < 2) \r\n month = '0' + month;\r\n if (day.length < 2) \r\n day = '0' + day;\r\n \r\n return [year, month, day].join('');\r\n }\r\n\r\n updateCountPersonTecBrain = () => {\r\n let start = this.state.dia.split('-');\r\n let jsstart = new Date(start[0],start[1]-1,start[2]);\r\n let jsend = new Date(start[0],start[1]-1,start[2]);\r\n jsend.setDate(jsend.getDate() + 1);\r\n \r\n let strStart = this.formatDate(jsstart);\r\n let strEnd = this.formatDate(jsend);\r\n console.log(strStart,strEnd);\r\n /* end[2] = parseInt(end[2], 10) + 1;\r\n if (end[2] < 10) end[2] = \"0\" + end[2]; */\r\n postData(`DCConteoPersonas?start=${strStart}1000&end=${strEnd}0959&idCenter=${this.state.centroId}`,\r\n (response) => {\r\n\r\n if (response.data) {\r\n const otrosDatos = this.props.otrosDatosCierreDiario.datos;\r\n console.log(otrosDatos);\r\n otrosDatos.numeroPersonas = response.data;\r\n const id = !otrosDatos.id ? 0 : otrosDatos.id;\r\n if (id === 0) {\r\n this.props.newOtrosDatosDB(otrosDatos, this.thenTecBrainCount, () => {\r\n this.props.loading(false);\r\n });\r\n } else {\r\n this.props.updateOtrosDatosDB(otrosDatos, id, this.thenTecBrainCount, () => {\r\n this.props.loading(false);\r\n });\r\n };\r\n }\r\n else {\r\n this.thenTecBrainCount();\r\n }\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR tec brain' + error\r\n }, uuidv4(), false, 'sm');\r\n this.setState({ ...this.state, isTecBrainLoaded: true });\r\n }, undefined,\r\n this.props.user\r\n );\r\n }\r\n\r\n renderDesbloquearButton = () => {\r\n const { classes } = this.props;\r\n\r\n if (\r\n this.props.semanal &&\r\n this.props.centroDiaSelected.isSemanaCerrada\r\n ) {\r\n return this.props.centroDiaSelected.isValid ? (\r\n \r\n {\r\n this.props.unlockCierreSemanal(\r\n this.state.centroId,\r\n this.state.dia,\r\n );\r\n }}\r\n disabled={false}\r\n >\r\n Desbloquear\r\n \r\n \r\n ) : (\r\n {\r\n this.props.unlockCierreSemanal(\r\n this.state.centroId,\r\n this.state.dia,\r\n );\r\n }}\r\n disabled={true}\r\n >\r\n Desbloquear\r\n \r\n );\r\n } else if (\r\n this.props.semanal !== true &&\r\n this.props.centroDiaSelected.isDiaCerrado\r\n ) {\r\n return this.props.centroDiaSelected.isValid ? (\r\n \r\n {\r\n this.props.unlockCierreDiario(\r\n this.state.centroId,\r\n this.state.dia,\r\n );\r\n }}\r\n disabled={false}\r\n >\r\n Desbloquear\r\n \r\n \r\n ) : (\r\n {\r\n this.props.unlockCierreDiario(\r\n this.state.centroId,\r\n this.state.dia,\r\n );\r\n }}\r\n disabled={true}\r\n >\r\n Desbloquear\r\n \r\n );\r\n }\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n {this.props.userProfile.selectedCentroProfile !==\r\n undefined &&\r\n [0, 4, 5, 16, 17, 20].includes(\r\n this.props.userProfile.selectedCentroProfile.iPerfil,\r\n ) ? (\r\n \r\n \r\n Centro\r\n \r\n \r\n this.handleCentroValueChange(event)\r\n }\r\n name=\"centro\"\r\n >\r\n {this.props.centros\r\n .filter(\r\n c =>\r\n c.isGroup === false &&\r\n c.activo === 1,\r\n )\r\n .find(c => c.id === this.state.centroId) ===\r\n undefined ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n {this.centroSelectOptions()}\r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n {this.props.userProfile.selectedCentroProfile !==\r\n undefined &&\r\n [0, 4, 5, 16, 17, 20].includes(\r\n this.props.userProfile.selectedCentroProfile.iPerfil,\r\n ) ? (\r\n
\r\n {this.props.isLoading ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n ) : (\r\n ''\r\n )}\r\n\r\n {this.state.centroId !== 0 ? (\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleDiaValueChange(d);\r\n }\r\n }}\r\n />\r\n ) : (\r\n ''\r\n )}\r\n\r\n {this.state.centroId !== 0 &&\r\n ([0, 4, 5, 15, 17, 18].includes(\r\n this.props.userProfile.selectedCentroProfile.iPerfil,\r\n ) || (this.props.userProfile.selectedCentroProfile.iPerfil === 15 && this.props.semanal)) ? (\r\n
\r\n {this.renderDesbloquearButton()}\r\n
\r\n ) : (\r\n ''\r\n )}\r\n\r\n {this.state.centroId !== 0 ? (\r\n \r\n {this.state.showButton ? (\r\n c.id === this.state.centroId,\r\n ) === undefined\r\n }\r\n className={classes.button}\r\n onClick={this.handleAceptarButtonClick}\r\n >\r\n Aceptar\r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n
\r\n \r\n {this.state.producto.zonaId && this.props.otrosDatosCierreDiario.loaded === true &&\r\n this.props.otrosDatosCierreDiario.isLoading === false && !this.props.centroDiaSelected.isDiaCerrado ?\r\n \r\n \r\n \r\n :\r\n null}\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nCentroDia.propTypes = {\r\n //state:\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isLoaded: PropTypes.bool.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n //dispatch:\r\n unlockCierreDiario: PropTypes.func.isRequired,\r\n unlockCierreSemanal: PropTypes.func.isRequired,\r\n setCentroDia: PropTypes.func.isRequired,\r\n invalidateCentroDiaData: PropTypes.func.isRequired,\r\n enableCentroDiaData: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n isLoading: state.centros.isLoading,\r\n centroDiaSelected: state.centroDiaSelected,\r\n isLoaded: state.centroDiaSelected.isLoaded,\r\n userProfile: state.userProfile,\r\n datosCierreDiario: state.datosCierreDiario,\r\n otrosDatosCierreDiario: state.otrosDatosCierreDiario\r\n // isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n unlockCierreDiario,\r\n unlockCierreSemanal,\r\n setCentroDia,\r\n openDialog,\r\n invalidateCentroDiaData,\r\n enableCentroDiaData,\r\n modifyDatosCierreDiario,\r\n getOtrosDatosCierreDiario,\r\n updateOtrosDatosDB,\r\n newOtrosDatosDB,\r\n setSaveState,\r\n loading\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps,\r\n)(withStyles(styles, { withTheme: true })(CentroDia));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//actions:\r\nimport { modifyDatosCierreDiario } from '../../actions/cierre_diario_actions';\r\nimport { openDialog, setSaveState } from '../../actions';\r\nimport { loading } from '../../actions/index';\r\n\r\n//import { getData, postData, putData } from '../../dataLib';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Paper, Typography } from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\nimport FloatNumberFormatText from '../../components/float_number_text_formatter';\r\nimport IntNumberFormatText from '../../components/int_number_text_formatter';\r\n\r\n//helpers:\r\nimport { getData } from '../../dataLib';\r\n\r\n\r\nconst styles = theme => ({\r\n\r\n paperContainer: {\r\n margin: '20px auto',\r\n },\r\n paperItem: {\r\n margin: '0 auto',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n padding: '2px 25px',\r\n boxShadow: 'none',\r\n border: 0,\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: theme.spacing(1),\r\n padding: 0,\r\n fontSize: 11,\r\n },\r\n leftSide: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: '50%',\r\n maxWidth: 190,\r\n },\r\n label: {\r\n textAlign: 'left',\r\n marginRight: 5,\r\n fontSize: 12,\r\n },\r\n input: {\r\n width: 75,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n buttonContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n width: '50%',\r\n alignItems: 'center',\r\n },\r\n button: {\r\n padding: '0 5px',\r\n marginLeft: 10,\r\n backgroundColor: theme.palette.secondary.light,\r\n borderRadius: 0,\r\n fontSize: 10,\r\n // minWidth: 40,\r\n width: '46%',\r\n minWidth: 45,\r\n height: 35,\r\n '&:hover': {\r\n backgroundColor: '#cc8ebf'\r\n },\r\n boxShadow: '1px 1px 1px darkgrey',\r\n overflow: 'hidden'\r\n },\r\n buttonContent: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n});\r\n\r\nclass CierreDiarioItem extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n prevImporte: this.props.producto.importe,\r\n importe: this.props.producto.importe\r\n }\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n\r\n if (prevState.prevImporte !== nextProps.producto.importe) {\r\n return {\r\n prevImporte: nextProps.producto.importe,\r\n importe: nextProps.producto.importe\r\n };\r\n }\r\n else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n handleImporteChange = (event) => {\r\n if (event.target.value !== '') {\r\n this.props.setSaveState(true);\r\n this.setState({ ...this.state, importe: event.target.value });\r\n }\r\n else this.setState({ ...this.state, importe: 0 });\r\n }\r\n\r\n onValueChange = (value) => {\r\n this.props.modifyDatosCierreDiario({ ...this.props.producto, importe: this.state.importe });\r\n if ( this.props.producto.isMovCaja === 0 && this.props.producto.legKind === -2 )\r\n this.props.modifyDatosCierreDiario({ ...this.props.productoRelacionado, importe: this.state.importe });\r\n\r\n }\r\n\r\n actualizaRedSys = () => {\r\n this.props.loading(false);\r\n // obtiene el nuevo valor de RedSys para esta fecha y centro \r\n this.props.setSaveState(true);\r\n\r\n let urlVisas = 'cierrediario/visasredsys?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia;\r\n getData(\r\n urlVisas,\r\n response => {\r\n var visas = response.data;\r\n this.props.modifyDatosCierreDiario({ ...this.props.producto, importe: visas });\r\n this.props.modifyDatosCierreDiario({ ...this.props.productoRelacionado, importe: visas });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'error obteniendo visas de REDSYS',\r\n },\r\n 'error-centro-dia-visas-redsys',\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n\r\n }\r\n\r\n generateButton1 = () => {\r\n const { classes } = this.props;\r\n switch (this.props.producto.iKind) {\r\n case 0:\r\n if ( this.props.producto.legKind === -2)\r\n return (\r\n \r\n );\r\n else\r\n return (
);\r\n\r\n case 1:\r\n if ( this.props.producto.legKind !== -2)\r\n return (\r\n \r\n );\r\n else\r\n return (
);\r\n case 3:\r\n return (\r\n \r\n );\r\n case 4:\r\n return (\r\n \r\n );\r\n case -5:\r\n return (\r\n \r\n );\r\n case 6:\r\n return (\r\n \r\n );\r\n case -7:\r\n return (\r\n \r\n );\r\n default:\r\n return (
);\r\n }\r\n }\r\n\r\n generateButton2 = () => {\r\n const { classes } = this.props;\r\n switch (this.props.producto.iKind) {\r\n case -5:\r\n return (\r\n \r\n );\r\n case -7:\r\n /* if (this.props.centroDiaSelected.centro.sigfrid !== -1) {\r\n return (\r\n \r\n );\r\n } */\r\n break;\r\n default:\r\n return (
)\r\n\r\n }\r\n }\r\n\r\n /*importSigfrid = (thenHandler) => {\r\n\r\n const getURL = 'sigfrid?centro_id=' + this.props.centroDiaSelected.centro.sigfrid + '&date=' + this.props.centroDiaSelected.dia;\r\n\r\n getData(getURL,\r\n (response) => {\r\n\r\n let totales = [];\r\n\r\n let normal = 0.0;\r\n let packs = 0.0;\r\n\r\n for (const key in response.data.datos) {\r\n\r\n if (key !== \"local\" && key !== \"fecha\" && key !== \"cabeceras\" && key !== \"totales\") {\r\n\r\n const linea = response.data.datos[key];\r\n\r\n //if (linea[20].value21 === null || linea[20].value21 === '') {\r\n\r\n if (linea[10].value11 !== '002' && linea[10].value11 !== '001') {\r\n\r\n const hora = parseInt(linea[12].value13.slice(0, 2));\r\n const importe = parseFloat(linea[8].value9.replace('.', '').replace(',', '.'));\r\n const tipo = linea[13].value14;\r\n\r\n if (totales[hora] !== undefined) totales[hora] += importe;\r\n else totales[hora] = importe;\r\n\r\n if (tipo === \"MESA\") packs += importe;\r\n else normal += importe;\r\n\r\n }\r\n }\r\n }\r\n\r\n var newDesglose = {};\r\n\r\n let antes12 = 0.0;\r\n for (let i = 5; i <= 12; i++) {\r\n if (totales[i] !== undefined) antes12 += totales[i];\r\n }\r\n\r\n newDesglose.hora01 = antes12;\r\n newDesglose.hora02 = totales[13] ? totales[13] : 0.0;\r\n newDesglose.hora03 = totales[14] ? totales[14] : 0.0;\r\n newDesglose.hora04 = totales[15] ? totales[15] : 0.0;\r\n newDesglose.hora05 = totales[16] ? totales[16] : 0.0;\r\n newDesglose.hora06 = totales[17] ? totales[17] : 0.0;\r\n newDesglose.hora07 = totales[18] ? totales[18] : 0.0;\r\n newDesglose.hora08 = totales[19] ? totales[19] : 0.0;\r\n newDesglose.hora09 = totales[20] ? totales[20] : 0.0;\r\n newDesglose.hora10 = totales[21] ? totales[21] : 0.0;\r\n newDesglose.hora11 = totales[22] ? totales[22] : 0.0;\r\n newDesglose.hora12 = totales[23] ? totales[23] : 0.0;\r\n newDesglose.hora13 = totales[0] ? totales[0] : 0.0;\r\n newDesglose.hora14 = totales[1] ? totales[1] : 0.0;\r\n newDesglose.hora15 = totales[2] ? totales[2] : 0.0;\r\n newDesglose.hora16 = totales[3] ? totales[3] : 0.0;\r\n newDesglose.hora17 = totales[4] ? totales[4] : 0.0;\r\n newDesglose.hora18 = 0.0;\r\n newDesglose.hora19 = 0.0;\r\n newDesglose.hora20 = 0.0;\r\n newDesglose.hora21 = 0.0;\r\n newDesglose.hora22 = 0.0;\r\n newDesglose.hora23 = 0.0;\r\n newDesglose.hora24 = 0.0;\r\n\r\n thenHandler({ desglose: newDesglose, normal: normal, packs: packs });\r\n\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching sigfrid - ' + error\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n }\r\n\r\n sigfridHandler = (sigfrid) => {\r\n \r\n const desgloseURL = 'dadesglosehoras/cierrediario?zona_id=' + this.props.producto.zonaId + '&date=' + this.props.centroDiaSelected.dia;\r\n\r\n getData(desgloseURL,\r\n (response) => {\r\n if (response.data.id === -1) {\r\n this.newDesglose(sigfrid, response.data.articuloId);\r\n } //nuevo desglose\r\n else {\r\n this.updateDesglose(sigfrid, response.data.id, response.data.articuloId);\r\n } //actualizar desglose\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching desglose horas - ' + error\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n\r\n\r\n }\r\n\r\n updateDesglose = (response, desgloseId, articuloId) => {\r\n\r\n const art2 = this.props.productoRelacionado ? this.props.productoRelacionado.articuloId : '0';\r\n\r\n let desgloseURL = 'dadesglosehoras/' + desgloseId;\r\n desgloseURL += '?art1=' + this.props.producto.articuloId + '&art2=' + art2 + '&normal=' + response.normal + '&packs=' + response.packs;\r\n\r\n putData(desgloseURL,\r\n () => {\r\n const message = this.props.producto.iKind === -7 ? 'Ventas Bar y franjas horarias importadas' : 'Ventas por hora actualizadas'\r\n this.props.openDialog('SimpleMessage', {\r\n message: message\r\n }, uuidv4(), false, 'sm');\r\n this.props.modifyDatosCierreDiario({ ...this.props.producto, button1: response.normal + response.packs, importe: response.normal });\r\n this.props.modifyDatosCierreDiario({ ...this.props.productoRelacionado, importe: response.packs });\r\n\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR actualizando ventas por hora'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n { ...response.desglose, id: desgloseId, articuloId: articuloId, fecha: this.props.centroDiaSelected.dia },\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n newDesglose = (response, articuloId) => {\r\n\r\n const art2 = this.props.productoRelacionado ? this.props.productoRelacionado.articuloId : '0';\r\n\r\n let desgloseURL = 'dadesglosehoras';\r\n desgloseURL += '?art1=' + this.props.producto.articuloId + '&art2=' + art2 + '&normal=' + response.normal + '&packs=' + response.packs;\r\n\r\n postData(desgloseURL,\r\n () => {\r\n const message = this.props.producto.iKind === -7 ? 'Ventas Bar y franjas horarias importadas' : 'Ventas por hora actualizadas'\r\n this.props.openDialog('SimpleMessage', {\r\n message: message\r\n }, uuidv4(), false, 'sm');\r\n\r\n this.props.modifyDatosCierreDiario({ ...this.props.producto, button1: response.normal + response.packs, importe: response.normal });\r\n this.props.modifyDatosCierreDiario({ ...this.props.productoRelacionado, importe: response.packs });\r\n\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR updating desglose horas 2'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n { ...response.desglose, id: -1, articuloId: articuloId, fecha: this.props.centroDiaSelected.dia },\r\n this.props.user\r\n );\r\n\r\n }*/\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n\r\n
\r\n \r\n {this.props.producto.producto}\r\n \r\n {\r\n e.target.setSelectionRange(0, 1000);\r\n }}\r\n value={this.state.importe}\r\n onChange={(event) => this.handleImporteChange(event)}\r\n onBlur={(event) => this.onValueChange(event.target.value)}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onValueChange(e.target.value) };\r\n }}\r\n InputProps={{ classes: { input: classes.inputImporte }, inputComponent: FloatNumberFormatInput }}\r\n variant=\"outlined\"\r\n disabled={\r\n this.props.producto.iKind === 4 || // Gastos\r\n this.props.producto.iKind === 6 || // Arqueo\r\n this.props.producto.iKind === 3 || // Maq. Cambios\r\n this.props.producto.iKind === 1 || // MKT y Redsys VISA\r\n this.props.producto.iKind === 100 ||\r\n (this.props.producto.isMovCaja === 0 && this.props.producto.legKind === -2) || // REDSYS ingresos\r\n (this.props.centroDiaSelected.centro.sigfrid !== -1 && (this.props.producto.iKind === -7 || this.props.producto.iKind === -8)) ||\r\n this.props.isDiaCerrado\r\n }\r\n />\r\n
\r\n
\r\n {this.generateButton1()}\r\n {this.generateButton2()}\r\n
\r\n\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierreDiarioItem.propTypes = {\r\n //state\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n //dispatch\r\n modifyDatosCierreDiario: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n //parameters\r\n producto: PropTypes.object.isRequired,\r\n productoRelacionado: PropTypes.object\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n //datosCierreDiario: state.datosCierreDiario.datos\r\n centroDiaSelected: state.centroDiaSelected,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyDatosCierreDiario,\r\n openDialog,\r\n setSaveState,\r\n loading,\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreDiarioItem));\r\n","// En este container se introducen los datos referentes a los movimientos económicos del cierre diario.\r\n// Contiene un componente CentroDia que permite seleccionar el centro y la fecha de cierre ( el centro solamente si el usuario tiene permisos ). \r\n// El centro y el día están guardados en el store de la aplicación.\r\n// Se obtienen los datos mediante la acción getDatosCierreDiario una vez hay un centro y un dia seleccionados. \r\n// La primera vez que se entra se llama a la acción setCentroDia para obtener el ultimo dia abierto para el centro seleccionado.\r\n// Una vez se obtienen los datos del cierre diario, se genera una estructura de:\r\n// - Cajas.\r\n// - Zonas.\r\n// - Conceptos de ingresos/pagos.\r\n// Todos los controles de conceptos del cierre diario se renderizan mediante el componente CierreDiarioItem (cierre_diario_item.js).\r\n// CierreDiarioItem hace uso de los componentes CierreDiarioArcadeGrid, CierreDiarioGastosGrid, CierreDiarioMKTGrid, CierreDiarioPartidaTiposGrid y CierreDiarioPorHoras \r\n// para mostrar la edición de cada uno de los conceptos de ingreso o pago dependiendo de su tipo.\r\n//El botón de guardar llama a la acción updateCierreDiarioDatosDB para actualizar la información de estos movimientos económicos en el servidor y hace un nextStep del Stepper de AccCierreDiario \r\n// para que se muestre el componente CierreDiarioOtrosDatos.\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\n\r\n//actions:\r\nimport { getDatosCierreDiario, modifyDatosCierreDiario, updateCierreDiarioDatosDB } from '../../actions/cierre_diario_actions';\r\nimport { setCentroDia } from '../../actions/centro_dia_actions';\r\nimport { openDialog, setSaveState } from '../../actions';\r\n\r\n//material ui:\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Paper, Typography } from '@material-ui/core';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n//components:\r\nimport CentroDia from '../centro_dia';\r\nimport CierreDiarioItem from './cierre_diario_item';\r\nimport FloatNumberFormatText from '../../components/float_number_text_formatter';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n ...theme.mixins.gutters(),\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n margin: theme.spacing(1),\r\n flexGrow: 1,\r\n },\r\n paperCaja: {\r\n backgroundColor: '#E8F1D7',\r\n boxShadow: 'none',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n margin: '25px 0',\r\n padding: 10,\r\n },\r\n paperConcepto: {\r\n padding: 0,\r\n margin: theme.spacing(1),\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n },\r\n paperZona: {\r\n padding: 0,\r\n margin: 0,\r\n borderRadius: 0,\r\n },\r\n titleIngresos: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: theme.palette.primary.main,\r\n padding: '4px 2px 4px 12px',\r\n },\r\n titlePagos: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: theme.palette.secondary.main,\r\n padding: '4px 2px 4px 12px',\r\n },\r\n titleZona: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n backgroundColor: '#e6e6e6',\r\n padding: '4px 2px 4px 12px',\r\n borderBottom: '3px solid #b8b8b8'\r\n },\r\n containerItems: {\r\n width: '100%',\r\n margin: '8px auto',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n cover: {\r\n position: 'absolute',\r\n height: '100%',\r\n width: '100%',\r\n zIndex: 1,\r\n backgroundColor: '#ddd',\r\n opacity: 0.3,\r\n },\r\n divData: {\r\n position: 'relative'\r\n },\r\n titleConceptoIngresos:\r\n {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n backgroundColor: theme.palette.primary.main,\r\n paddingRight: theme.spacing(1)\r\n },\r\n titleConceptoPagos:\r\n {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n backgroundColor: theme.palette.secondary.main,\r\n paddingRight: theme.spacing(1)\r\n }\r\n\r\n});\r\n\r\nclass CierreDiarioDatos extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showSpinner: false,\r\n };\r\n\r\n };\r\n componentDidMount() {\r\n if (this.props.first) {\r\n if (this.props.centroDiaSelected.centro.id !== undefined && this.props.centroDiaSelected.dia !== '' && !this.props.centroDiaSelected.centro.isGroup) {\r\n this.props.setCentroDia(this.props.centroDiaSelected.centro.id, undefined, false);\r\n //this.props.getDatosCierreDiario(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia);\r\n };\r\n }\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.centroDiaSelected.centro !== this.props.centroDiaSelected.centro ||\r\n prevProps.centroDiaSelected.dia !== this.props.centroDiaSelected.dia) {\r\n this.setState({ showSpinner: true })\r\n this.props.getDatosCierreDiario(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia);\r\n }\r\n if (prevProps.isLoading !== this.props.isLoading) this.setState({ showSpinner: this.props.isLoading });\r\n if (prevProps.isLoading !== this.props.isLoading) this.setState({ showSpinner: this.props.isLoading });\r\n };\r\n\r\n generateCierreDiarioControls = () => {\r\n\r\n //create object from this.props.datosCierreDiario\r\n\r\n var datosCierre = [];\r\n\r\n //create a control for each of the items from datosCierreDiario\r\n this.props.datosCierreDiario.forEach(item => {\r\n\r\n // if (typeof datosCierre[item.cajaId] === 'undefined') { //no existe la caja\r\n // datosCierre[item.cajaId] = { cajaId: item.cajaId, descr: item.caja, iTipoZona: item.iTipoZona, conceptos: [] };\r\n // }\r\n let caja = datosCierre.find(c => c.cajaId === item.cajaId);\r\n if (caja === undefined) {\r\n caja = { cajaId: item.cajaId, descr: item.caja, iTipoZona: item.iTipoZona, conceptos: [] };\r\n datosCierre.push(caja);\r\n }\r\n\r\n // const caja = datosCierre[item.cajaId];\r\n\r\n // if (typeof caja.conceptos[item.isMovCaja] === 'undefined') { //no existe el concepto\r\n // caja.conceptos[item.isMovCaja] = { concepto: item.concepto, isMovCaja: item.isMovCaja, zonas: [], cajaDescr: caja.descr };\r\n // }\r\n let concepto = caja.conceptos.find(c => c.isMovCaja === item.isMovCaja);\r\n if (concepto === undefined) {\r\n concepto = { concepto: item.concepto, isMovCaja: item.isMovCaja, zonas: [], cajaDescr: caja.descr };\r\n caja.conceptos.push(concepto);\r\n }\r\n\r\n // const concepto = caja.conceptos[item.isMovCaja];\r\n\r\n // if (typeof concepto.zonas[item.zonaId] === 'undefined') { //no existe la zona\r\n // concepto.zonas[item.zonaId] = { zonaId: item.zonaId, descr: item.zona, iTipoZona: item.iTipoZona, productos: [] }\r\n // }\r\n\r\n let zona = concepto.zonas.find(z => z.zonaId === item.zonaId);\r\n if (zona === undefined) {\r\n zona = { zonaId: item.zonaId, descr: item.zona, iTipoZona: item.iTipoZona, productos: [] };\r\n concepto.zonas.push(zona);\r\n }\r\n //const zona = concepto.zonas[item.zonaId];\r\n //zona.productos[item.articuloId] = item;\r\n zona.productos.push(item);\r\n\r\n\r\n });\r\n\r\n const { classes } = this.props;\r\n\r\n //ponemos zona general al final\r\n var cajaGeneral = undefined;\r\n const newDatosCierre = [];\r\n datosCierre.forEach(c => {\r\n if (c.iTipoZona !== 9) newDatosCierre.push(c);\r\n else cajaGeneral = c;\r\n });\r\n if (cajaGeneral) newDatosCierre.push(cajaGeneral);\r\n\r\n\r\n return newDatosCierre.map((caja) => {\r\n if (caja.conceptos[0] !== undefined && caja.conceptos[1] !== undefined) {\r\n return (\r\n \r\n\r\n {this.generateConceptos(caja.cajaId, caja.conceptos)}\r\n\r\n \r\n )\r\n }\r\n else {\r\n return (
)\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n\r\n generateConceptos = (cajaid, conceptos) => {\r\n\r\n if (conceptos[0] !== undefined && conceptos[1] !== undefined) {\r\n\r\n const conceptoIngresos = conceptos.find(c => c.isMovCaja === 0);\r\n\r\n const conceptoPagos = conceptos.find(c => c.isMovCaja === 1);\r\n\r\n return (\r\n \r\n\r\n \r\n {this.generateConceptosIngresos(conceptoIngresos)}\r\n \r\n\r\n \r\n {this.generateConceptosPagos(conceptoPagos)}\r\n \r\n\r\n \r\n )\r\n }\r\n }\r\n\r\n generateConceptosIngresos = (conceptoIngresos, cajaid) => {\r\n if (conceptoIngresos === undefined) {\r\n return (
);\r\n }\r\n\r\n let total = 0.0;\r\n\r\n conceptoIngresos.zonas.forEach(z => {\r\n z.productos.forEach(p => {\r\n total += parseFloat(p.importe);\r\n });\r\n });\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n \r\n
\r\n \r\n {conceptoIngresos.concepto + ' - ' + conceptoIngresos.cajaDescr}\r\n \r\n Total: \r\n
\r\n {this.generateZonas('ingresos', conceptoIngresos.zonas)}\r\n
\r\n\r\n )\r\n }\r\n\r\n generateConceptosPagos = (conceptoPagos, cajaid) => {\r\n if (conceptoPagos === undefined) {\r\n return (
);\r\n }\r\n\r\n let total = 0.0;\r\n\r\n conceptoPagos.zonas.forEach(z => {\r\n z.productos.forEach(p => {\r\n total += parseFloat(p.importe);\r\n });\r\n });\r\n\r\n const { classes } = this.props;\r\n return (\r\n\r\n \r\n
\r\n \r\n {conceptoPagos.concepto + ' - ' + conceptoPagos.cajaDescr}\r\n \r\n Total: \r\n
\r\n {this.generateZonas('pagos', conceptoPagos.zonas)}\r\n
\r\n\r\n )\r\n }\r\n\r\n\r\n generateZonas = (concepto, zonas) => {\r\n const { classes } = this.props;\r\n\r\n return zonas.map((zona) => {\r\n\r\n return (\r\n \r\n \r\n {zona.descr}\r\n \r\n
\r\n {this.generateProductos(zona.productos)}\r\n
\r\n
\r\n )\r\n\r\n })\r\n }\r\n\r\n modifyValue = (v, producto) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyDatosCierreDiario({ ...producto, importe: v });\r\n }\r\n\r\n compare = (a, b) => {\r\n if (a.producto < b.producto)\r\n return 1;\r\n if (a.producto > b.producto)\r\n return -1;\r\n return 0;\r\n }\r\n\r\n\r\n generateProductos = (productos) => {\r\n\r\n // let sortedProductos = productos.map(p => p);\r\n // sortedProductos.sort(this.compare);\r\n\r\n // let productosOK = [];\r\n // sortedProductos.forEach(p => productosOK.push(p));\r\n\r\n let productosOK = [];\r\n productos.forEach(p => productosOK.push(p));\r\n\r\n return productosOK.map((producto) => {\r\n\r\n const key = producto.articuloId;\r\n\r\n if (producto.iKind === -7) {\r\n\r\n const ventasPack = productosOK.find(p => p.iKind === -8);\r\n return (\r\n \r\n )\r\n\r\n }\r\n else {\r\n\r\n if (producto.legKind === -2 && producto.isMovCaja === 0) {\r\n\r\n const cREDSYS = this.props.datosCierreDiario.find(p => p.legKind === -2 && p.isMovCaja === 1); \r\n return (\r\n \r\n )\r\n\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n hanldeOKClick = () => {\r\n if (!this.props.isDiaCerrado) {\r\n //update cierre diario datos data\r\n var producto = this.props.datosCierreDiario.find(p => p.iKind === -5);\r\n if (producto) {\r\n if (parseInt(producto.button1) !== parseInt(producto.button2)) {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'El número de partidas por horas y el número de partidas por tipo no coinciden'\r\n }, 'cierre-diario-datos-error-numero-de-partidas', false, 'sm');\r\n return;\r\n }\r\n }\r\n\r\n this.props.updateCierreDiarioDatosDB(this.props.datosCierreDiario, this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia, this.saveHandler);\r\n\r\n // var producto = this.props.datosCierreDiario.find(p => p.iKind === -5);\r\n // if (producto) {\r\n // if (parseInt(producto.button1) === parseInt(producto.button2)) {\r\n // this.props.nextStep();\r\n // }\r\n // else {\r\n // this.props.openDialog('SimpleMessage', {\r\n // message: 'El número de partidas por horas y el número de partidas por tipo no coinciden'\r\n // }, 'cierre-diario-datos-error-numero-de-partidas', false, 'sm');\r\n // }\r\n // }\r\n // else {\r\n\r\n // this.props.nextStep();\r\n // }\r\n }\r\n else {\r\n this.props.nextStep();\r\n }\r\n }\r\n\r\n saveHandler = () => {\r\n this.props.setSaveState(false);\r\n this.props.nextStep();\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n if (!this.props.datosCierreDiario.length && !this.state.showSpinner) {\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n else if (this.state.showSpinner) {\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n
\r\n {this.generateCierreDiarioControls()}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n };\r\n};\r\n\r\nCierreDiarioDatos.propTypes = {\r\n user: PropTypes.object,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n datosCierreDiario: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n getDatosCierreDiario: PropTypes.func.isRequired,\r\n modifyDatosCierreDiario: PropTypes.func.isRequired,\r\n updateCierreDiarioDatosDB: PropTypes.func.isRequired,\r\n nextStep: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected,\r\n datosCierreDiario: state.datosCierreDiario.datos,\r\n isLoading: state.datosCierreDiario.isLoading,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n saveState: state.saveState,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n getDatosCierreDiario,\r\n modifyDatosCierreDiario,\r\n updateCierreDiarioDatosDB,\r\n openDialog,\r\n setCentroDia,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreDiarioDatos));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n//material ui components:\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n\r\n//actions:\r\nimport { modifyFieldOtrosDatos } from '../../../actions/cierre_diario_actions';\r\nimport { setSaveState } from '../../../actions';\r\n\r\n//components:\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\nimport FloatPercentFormatInput from '../../../components/float_percent_input_formatter';\r\n\r\n//styles:\r\nconst styles = theme => ({\r\n container: {\r\n width: '95%',\r\n height: 165,\r\n },\r\n paperTitle: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n },\r\n headerRow: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n backgroundColor: '#e6e6e6',\r\n padding: '4px 2px 4px 12px',\r\n marginBottom: 5,\r\n borderBottom: '3px solid #b8b8b8',\r\n },\r\n headerRowItem: {\r\n fontSize: 13,\r\n fontWeight: '700',\r\n margin: 0,\r\n width: '50%',\r\n padding: '0 10px',\r\n },\r\n gridRow: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n fontSize: 11,\r\n padding: '2px 10px',\r\n borderBottom: '1px solid #8bc34a',\r\n \"&:last-child\": {\r\n borderBottom: 'none',\r\n paddingBottom: 3,\r\n fontWeight: '700',\r\n },\r\n },\r\n rowItem: {\r\n width: '50%',\r\n padding: '0 10px',\r\n fontWeight: '500',\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n leftSide: {\r\n paddingLeft: 10,\r\n },\r\n inputsSide: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n width: '60%'\r\n },\r\n input: {\r\n width: 30,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: '4px 5px 4px 2px',\r\n padding: 0,\r\n fontSize: 12,\r\n height: 14,\r\n },\r\n lastInput: {\r\n height: 25,\r\n fontWeight: '700',\r\n [`& fieldset`]: {\r\n borderColor: 'transparent !important',\r\n },\r\n },\r\n});\r\n\r\nclass CumpleanosTable extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n //encuesta, cumpleaños:\r\n //op. local\r\n cumplesOp1M: !this.props.otrosDatosCierreDiario.cumplesOp1M ? 0 : this.props.otrosDatosCierreDiario.cumplesOp1M,\r\n cumplesOp1R: !this.props.otrosDatosCierreDiario.cumplesOp1R ? 0 : this.props.otrosDatosCierreDiario.cumplesOp1R,\r\n cumplesOp1B: !this.props.otrosDatosCierreDiario.cumplesOp1B ? 0 : this.props.otrosDatosCierreDiario.cumplesOp1B,\r\n cumplesOp1E: !this.props.otrosDatosCierreDiario.cumplesOp1E ? 0 : this.props.otrosDatosCierreDiario.cumplesOp1E,\r\n //op. personal\r\n cumplesOp2M: !this.props.otrosDatosCierreDiario.cumplesOp2M ? 0 : this.props.otrosDatosCierreDiario.cumplesOp2M,\r\n cumplesOp2R: !this.props.otrosDatosCierreDiario.cumplesOp2R ? 0 : this.props.otrosDatosCierreDiario.cumplesOp2R,\r\n cumplesOp2B: !this.props.otrosDatosCierreDiario.cumplesOp2B ? 0 : this.props.otrosDatosCierreDiario.cumplesOp2B,\r\n cumplesOp2E: !this.props.otrosDatosCierreDiario.cumplesOp2E ? 0 : this.props.otrosDatosCierreDiario.cumplesOp2E,\r\n // op. comida\r\n cumplesOp3M: !this.props.otrosDatosCierreDiario.cumplesOp3M ? 0 : this.props.otrosDatosCierreDiario.cumplesOp3M,\r\n cumplesOp3R: !this.props.otrosDatosCierreDiario.cumplesOp3R ? 0 : this.props.otrosDatosCierreDiario.cumplesOp3R,\r\n cumplesOp3B: !this.props.otrosDatosCierreDiario.cumplesOp3B ? 0 : this.props.otrosDatosCierreDiario.cumplesOp3B,\r\n cumplesOp3E: !this.props.otrosDatosCierreDiario.cumplesOp3E ? 0 : this.props.otrosDatosCierreDiario.cumplesOp3E,\r\n // op. precio\r\n cumplesOp4M: !this.props.otrosDatosCierreDiario.cumplesOp4M ? 0 : this.props.otrosDatosCierreDiario.cumplesOp4M,\r\n cumplesOp4R: !this.props.otrosDatosCierreDiario.cumplesOp4R ? 0 : this.props.otrosDatosCierreDiario.cumplesOp4R,\r\n cumplesOp4B: !this.props.otrosDatosCierreDiario.cumplesOp4B ? 0 : this.props.otrosDatosCierreDiario.cumplesOp4B,\r\n cumplesOp4E: !this.props.otrosDatosCierreDiario.cumplesOp4E ? 0 : this.props.otrosDatosCierreDiario.cumplesOp4E,\r\n // resultado:\r\n resultadoCumplesPor100: !this.props.otrosDatosCierreDiario.resultadoCumplesPor100 ? 0 : this.props.otrosDatosCierreDiario.resultadoCumplesPor100,\r\n\r\n editing: false\r\n\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreDiario !== this.props.otrosDatosCierreDiario) {\r\n this.setState({\r\n //encuesta, cumpleaños:\r\n //op. local\r\n cumplesOp1M: !this.props.otrosDatosCierreDiario.cumplesOp1M ? 0 : this.props.otrosDatosCierreDiario.cumplesOp1M,\r\n cumplesOp1R: !this.props.otrosDatosCierreDiario.cumplesOp1R ? 0 : this.props.otrosDatosCierreDiario.cumplesOp1R,\r\n cumplesOp1B: !this.props.otrosDatosCierreDiario.cumplesOp1B ? 0 : this.props.otrosDatosCierreDiario.cumplesOp1B,\r\n cumplesOp1E: !this.props.otrosDatosCierreDiario.cumplesOp1E ? 0 : this.props.otrosDatosCierreDiario.cumplesOp1E,\r\n //op. personal\r\n cumplesOp2M: !this.props.otrosDatosCierreDiario.cumplesOp2M ? 0 : this.props.otrosDatosCierreDiario.cumplesOp2M,\r\n cumplesOp2R: !this.props.otrosDatosCierreDiario.cumplesOp2R ? 0 : this.props.otrosDatosCierreDiario.cumplesOp2R,\r\n cumplesOp2B: !this.props.otrosDatosCierreDiario.cumplesOp2B ? 0 : this.props.otrosDatosCierreDiario.cumplesOp2B,\r\n cumplesOp2E: !this.props.otrosDatosCierreDiario.cumplesOp2E ? 0 : this.props.otrosDatosCierreDiario.cumplesOp2E,\r\n // op. comida\r\n cumplesOp3M: !this.props.otrosDatosCierreDiario.cumplesOp3M ? 0 : this.props.otrosDatosCierreDiario.cumplesOp3M,\r\n cumplesOp3R: !this.props.otrosDatosCierreDiario.cumplesOp3R ? 0 : this.props.otrosDatosCierreDiario.cumplesOp3R,\r\n cumplesOp3B: !this.props.otrosDatosCierreDiario.cumplesOp3B ? 0 : this.props.otrosDatosCierreDiario.cumplesOp3B,\r\n cumplesOp3E: !this.props.otrosDatosCierreDiario.cumplesOp3E ? 0 : this.props.otrosDatosCierreDiario.cumplesOp3E,\r\n // op. precio\r\n cumplesOp4M: !this.props.otrosDatosCierreDiario.cumplesOp4M ? 0 : this.props.otrosDatosCierreDiario.cumplesOp4M,\r\n cumplesOp4R: !this.props.otrosDatosCierreDiario.cumplesOp4R ? 0 : this.props.otrosDatosCierreDiario.cumplesOp4R,\r\n cumplesOp4B: !this.props.otrosDatosCierreDiario.cumplesOp4B ? 0 : this.props.otrosDatosCierreDiario.cumplesOp4B,\r\n cumplesOp4E: !this.props.otrosDatosCierreDiario.cumplesOp4E ? 0 : this.props.otrosDatosCierreDiario.cumplesOp4E,\r\n // resultado:\r\n resultadoCumplesPor100: !this.props.otrosDatosCierreDiario.resultadoCumplesPor100 ? 0 : this.props.otrosDatosCierreDiario.resultadoCumplesPor100,\r\n\r\n editing: false\r\n\r\n });\r\n };\r\n };\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n\r\n this.setState({ ...this.state, [field]: event.target.value, editing: true });\r\n };\r\n\r\n\r\n onBlur = (event, field) => {\r\n\r\n const value = parseInt(this.state[field])\r\n\r\n this.setState({ ...this.state, [field]: value, editing: false });\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldOtrosDatos(field, value);\r\n };\r\n\r\n resultadoEncuesta = () => {\r\n\r\n if (this.state.editing) return;\r\n\r\n let resultDB = 0,\r\n numberOfAnswers = 0;\r\n\r\n const obj = this.state;\r\n\r\n for (const key in obj)\r\n if (obj[key] !== 0)\r\n numberOfAnswers += obj[key];\r\n\r\n if (numberOfAnswers)\r\n resultDB = ((\r\n ((parseInt(this.state.cumplesOp1M) + parseInt(this.state.cumplesOp2M) + parseInt(this.state.cumplesOp3M) + parseInt(this.state.cumplesOp4M)) * 25) +\r\n ((parseInt(this.state.cumplesOp1R) + parseInt(this.state.cumplesOp2R) + parseInt(this.state.cumplesOp3R) + parseInt(this.state.cumplesOp4R)) * 50) +\r\n ((parseInt(this.state.cumplesOp1B) + parseInt(this.state.cumplesOp2B) + parseInt(this.state.cumplesOp3B) + parseInt(this.state.cumplesOp4B)) * 75) +\r\n ((parseInt(this.state.cumplesOp1E) + parseInt(this.state.cumplesOp2E) + parseInt(this.state.cumplesOp3E) + parseInt(this.state.cumplesOp4E)) * 100)\r\n\r\n ) / numberOfAnswers);\r\n\r\n return resultDB;\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n {/* header row */}\r\n
\r\n
Cumpleaños
\r\n
M
\r\n
R
\r\n
B
\r\n
MB
\r\n
\r\n\r\n {/* second row */}\r\n
\r\n
Opinión Local
\r\n
\r\n\r\n this.handleValueChange(event, 'cumplesOp1M')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp1M')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp1M') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp1R')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp1R')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp1R') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp1B')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp1B')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp1B') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp1E')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp1E')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp1E') };\r\n }}\r\n />\r\n\r\n\r\n
\r\n
\r\n\r\n {/* third row */}\r\n
\r\n
Opinión Personal
\r\n\r\n
\r\n\r\n this.handleValueChange(event, 'cumplesOp2M')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp2M')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp2M') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp2R')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp2R')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp2R') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp2B')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp2B')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp2B') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp2E')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp2E')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp2E') };\r\n }}\r\n />\r\n\r\n
\r\n
\r\n\r\n\r\n {/* fourth row */}\r\n
\r\n
Opinión Comida
\r\n\r\n
\r\n\r\n this.handleValueChange(event, 'cumplesOp3M')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp3M')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp3M') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp3R')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp3R')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp3R') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp3B')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp3B')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp3B') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp3E')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp3E')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp3E') };\r\n }}\r\n />\r\n\r\n
\r\n
\r\n\r\n\r\n {/* fifth row */}\r\n
\r\n
Opinión Precio
\r\n\r\n
\r\n\r\n this.handleValueChange(event, 'cumplesOp4M')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp4M')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp4M') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp4R')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp4R')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp4R') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp4B')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp4B')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp4B') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'cumplesOp4E')}\r\n onBlur={(event) => this.onBlur(event, 'cumplesOp4E')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'cumplesOp4E') };\r\n }}\r\n />\r\n\r\n
\r\n
\r\n\r\n\r\n {/* sixth row */}\r\n
\r\n
Resultado
\r\n\r\n \r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCumpleanosTable.propTypes = {\r\n otrosDatosCierreDiario: PropTypes.object.isRequired,\r\n modifyFieldOtrosDatos: PropTypes.func.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n otrosDatosCierreDiario: state.otrosDatosCierreDiario.datos,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyFieldOtrosDatos,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CumpleanosTable));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n//material ui components:\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n//actions:\r\nimport { modifyFieldOtrosDatos } from '../../../actions/cierre_diario_actions';\r\nimport { setSaveState } from '../../../actions';\r\n\r\n//components:\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\nimport FloatPercentFormatInput from '../../../components/float_percent_input_formatter';\r\n\r\n\r\n//styles:\r\nconst styles = theme => ({\r\n container: {\r\n width: '48%',\r\n height: 165,\r\n },\r\n paperTitle: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n },\r\n headerRow: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n backgroundColor: '#e6e6e6',\r\n padding: '4px 2px 4px 12px',\r\n marginBottom: 5,\r\n borderBottom: '3px solid #b8b8b8',\r\n },\r\n headerRowItem: {\r\n fontSize: 13,\r\n fontWeight: '700',\r\n margin: 0,\r\n width: '50%',\r\n padding: '0 10px',\r\n },\r\n gridRow: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n fontSize: 11,\r\n padding: '2px 10px',\r\n borderBottom: '1px solid #8bc34a',\r\n \"&:last-child\": {\r\n borderBottom: 'none',\r\n paddingBottom: 3,\r\n fontWeight: '700',\r\n },\r\n },\r\n rowItem: {\r\n width: '50%',\r\n padding: '0 10px',\r\n fontWeight: '500',\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n leftSide: {\r\n paddingLeft: 10,\r\n },\r\n inputsSide: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n width: '60%'\r\n },\r\n input: {\r\n width: 30,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: '4px 5px 4px 2px',\r\n padding: 0,\r\n fontSize: 12,\r\n height: 14,\r\n },\r\n lastInput: {\r\n height: 25,\r\n fontWeight: '700',\r\n [`& fieldset`]: {\r\n borderColor: 'transparent !important',\r\n },\r\n },\r\n});\r\n\r\nclass SatisfaccionTable extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n //encuesta, satisfaccion:\r\n //op. local\r\n ilusionaOp1M: !this.props.otrosDatosCierreDiario.ilusionaOp1M ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp1M,\r\n ilusionaOp1R: !this.props.otrosDatosCierreDiario.ilusionaOp1R ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp1R,\r\n ilusionaOp1B: !this.props.otrosDatosCierreDiario.ilusionaOp1B ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp1B,\r\n ilusionaOp1E: !this.props.otrosDatosCierreDiario.ilusionaOp1E ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp1E,\r\n //op. personal\r\n ilusionaOp2M: !this.props.otrosDatosCierreDiario.ilusionaOp2M ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp2M,\r\n ilusionaOp2R: !this.props.otrosDatosCierreDiario.ilusionaOp2R ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp2R,\r\n ilusionaOp2B: !this.props.otrosDatosCierreDiario.ilusionaOp2B ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp2B,\r\n ilusionaOp2E: !this.props.otrosDatosCierreDiario.ilusionaOp2E ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp2E,\r\n // op. maquinas\r\n ilusionaOp3M: !this.props.otrosDatosCierreDiario.ilusionaOp3M ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp3M,\r\n ilusionaOp3R: !this.props.otrosDatosCierreDiario.ilusionaOp3R ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp3R,\r\n ilusionaOp3B: !this.props.otrosDatosCierreDiario.ilusionaOp3B ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp3B,\r\n ilusionaOp3E: !this.props.otrosDatosCierreDiario.ilusionaOp3E ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp3E,\r\n // op. precio\r\n ilusionaOp4M: !this.props.otrosDatosCierreDiario.ilusionaOp4M ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp4M,\r\n ilusionaOp4R: !this.props.otrosDatosCierreDiario.ilusionaOp4R ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp4R,\r\n ilusionaOp4B: !this.props.otrosDatosCierreDiario.ilusionaOp4B ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp4B,\r\n ilusionaOp4E: !this.props.otrosDatosCierreDiario.ilusionaOp4E ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp4E,\r\n // resultado:\r\n resultadoIlusionaPor100: !this.props.otrosDatosCierreDiario.resultadoIlusionaPor100 ? 0 : this.props.otrosDatosCierreDiario.resultadoIlusionaPor100,\r\n\r\n editing: false\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreDiario !== this.props.otrosDatosCierreDiario) {\r\n this.setState({\r\n //encuesta, satisfaccion:\r\n //op. local\r\n ilusionaOp1M: !this.props.otrosDatosCierreDiario.ilusionaOp1M ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp1M,\r\n ilusionaOp1R: !this.props.otrosDatosCierreDiario.ilusionaOp1R ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp1R,\r\n ilusionaOp1B: !this.props.otrosDatosCierreDiario.ilusionaOp1B ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp1B,\r\n ilusionaOp1E: !this.props.otrosDatosCierreDiario.ilusionaOp1E ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp1E,\r\n //op. personal\r\n ilusionaOp2M: !this.props.otrosDatosCierreDiario.ilusionaOp2M ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp2M,\r\n ilusionaOp2R: !this.props.otrosDatosCierreDiario.ilusionaOp2R ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp2R,\r\n ilusionaOp2B: !this.props.otrosDatosCierreDiario.ilusionaOp2B ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp2B,\r\n ilusionaOp2E: !this.props.otrosDatosCierreDiario.ilusionaOp2E ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp2E,\r\n // op. maquinas\r\n ilusionaOp3M: !this.props.otrosDatosCierreDiario.ilusionaOp3M ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp3M,\r\n ilusionaOp3R: !this.props.otrosDatosCierreDiario.ilusionaOp3R ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp3R,\r\n ilusionaOp3B: !this.props.otrosDatosCierreDiario.ilusionaOp3B ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp3B,\r\n ilusionaOp3E: !this.props.otrosDatosCierreDiario.ilusionaOp3E ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp3E,\r\n // op. precio\r\n ilusionaOp4M: !this.props.otrosDatosCierreDiario.ilusionaOp4M ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp4M,\r\n ilusionaOp4R: !this.props.otrosDatosCierreDiario.ilusionaOp4R ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp4R,\r\n ilusionaOp4B: !this.props.otrosDatosCierreDiario.ilusionaOp4B ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp4B,\r\n ilusionaOp4E: !this.props.otrosDatosCierreDiario.ilusionaOp4E ? 0 : this.props.otrosDatosCierreDiario.ilusionaOp4E,\r\n // resultado:\r\n resultadoIlusionaPor100: !this.props.otrosDatosCierreDiario.resultadoIlusionaPor100 ? 0 : this.props.otrosDatosCierreDiario.resultadoIlusionaPor100,\r\n\r\n editing: false\r\n });\r\n };\r\n };\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value, editing: true });\r\n };\r\n\r\n\r\n onBlur = (event, field) => {\r\n const value = parseInt(this.state[field])\r\n\r\n this.setState({ ...this.state, [field]: value, editing: false });\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldOtrosDatos(field, value);\r\n };\r\n\r\n resultadoEncuesta = () => {\r\n\r\n if (this.state.editing) return;\r\n\r\n let resultDB = 0,\r\n numberOfAnswers = 0;\r\n\r\n const obj = this.state;\r\n\r\n for (const key in obj)\r\n if (obj[key] !== 0)\r\n numberOfAnswers += obj[key];\r\n\r\n if (numberOfAnswers)\r\n resultDB = ((\r\n ((parseInt(this.state.ilusionaOp1M) + parseInt(this.state.ilusionaOp2M) + parseInt(this.state.ilusionaOp3M) + parseInt(this.state.ilusionaOp4M)) * 25) +\r\n ((parseInt(this.state.ilusionaOp1R) + parseInt(this.state.ilusionaOp2R) + parseInt(this.state.ilusionaOp3R) + parseInt(this.state.ilusionaOp4R)) * 50) +\r\n ((parseInt(this.state.ilusionaOp1B) + parseInt(this.state.ilusionaOp2B) + parseInt(this.state.ilusionaOp3B) + parseInt(this.state.ilusionaOp4B)) * 75) +\r\n ((parseInt(this.state.ilusionaOp1E) + parseInt(this.state.ilusionaOp2E) + parseInt(this.state.ilusionaOp3E) + parseInt(this.state.ilusionaOp4E)) * 100)\r\n\r\n ) / numberOfAnswers);\r\n\r\n return resultDB;\r\n };\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n {/* header row */}\r\n
\r\n
Satisfacción
\r\n
M
\r\n
R
\r\n
B
\r\n
MB
\r\n
\r\n\r\n {/* second row */}\r\n
\r\n
Opinión Local
\r\n
\r\n this.handleValueChange(event, 'ilusionaOp1M')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp1M')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp1M') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp1R')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp1R')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp1R') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp1B')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp1B')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp1B') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp1E')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp1E')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp1E') };\r\n }}\r\n />\r\n
\r\n\r\n\r\n
\r\n\r\n {/* third row */}\r\n
\r\n
Opinión Personal
\r\n
\r\n this.handleValueChange(event, 'ilusionaOp2M')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp2M')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp2M') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp2R')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp2R')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp2R') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp2B')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp2B')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp2B') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp2E')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp2E')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp2E') };\r\n }}\r\n />\r\n
\r\n\r\n
\r\n\r\n {/* fourth row */}\r\n
\r\n
Opinión Comida
\r\n
\r\n this.handleValueChange(event, 'ilusionaOp3M')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp3M')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp3M') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp3R')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp3R')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp3R') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp3B')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp3B')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp3B') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp3E')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp3E')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp3E') };\r\n }}\r\n />\r\n
\r\n\r\n
\r\n\r\n\r\n {/* fifth row */}\r\n
\r\n
Opinión Precio
\r\n
\r\n this.handleValueChange(event, 'ilusionaOp4M')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp4M')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp4M') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp4R')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp4R')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp4R') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp4B')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp4B')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp4B') };\r\n }}\r\n />\r\n\r\n this.handleValueChange(event, 'ilusionaOp4E')}\r\n onBlur={(event) => this.onBlur(event, 'ilusionaOp4E')}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onBlur(e, 'ilusionaOp4E') };\r\n }}\r\n />\r\n
\r\n\r\n
\r\n\r\n\r\n {/* sixth row */}\r\n
\r\n
Resultado
\r\n \r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nSatisfaccionTable.propTypes = {\r\n otrosDatosCierreDiario: PropTypes.object.isRequired,\r\n modifyFieldOtrosDatos: PropTypes.func.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n otrosDatosCierreDiario: state.otrosDatosCierreDiario.datos,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyFieldOtrosDatos,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(SatisfaccionTable));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n//material ui components:\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n//actions:\r\nimport { modifyFieldOtrosDatos } from '../../../actions/cierre_diario_actions';\r\nimport { setSaveState } from '../../../actions';\r\n\r\n//styles:\r\nconst styles = theme => ({\r\n checked: {\r\n color: theme.palette.secondary,\r\n },\r\n rightSide: {\r\n padding: 0,\r\n minHeight: \"220px\",\r\n marginBottom: '5px',\r\n fontSize: 13,\r\n fontWeight: '600',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n },\r\n paperTitle: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n paddingRight: '10%',\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: theme.palette.secondary.main,\r\n padding: '4px 2px 4px 12px',\r\n },\r\n titleItem: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n display: 'flex',\r\n margin: 0,\r\n },\r\n containerItems: {\r\n margin: '1px auto'\r\n },\r\n itemContainer: {\r\n display: 'flex',\r\n padding: '2px 20px 2px 15px',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n fontSize: 12,\r\n minHeight: 40, \r\n },\r\n radiobuttonContainer: {\r\n display: 'inline-flex',\r\n height: 0,\r\n marginTop: '-48px',\r\n }\r\n\r\n});\r\n\r\nclass Apertura extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n //apertura:\r\n aperturaRpta01: !this.props.otrosDatosCierreDiario.aperturaRpta01 ? false : this.props.otrosDatosCierreDiario.aperturaRpta01,\r\n aperturaRpta02: !this.props.otrosDatosCierreDiario.aperturaRpta02 ? false : this.props.otrosDatosCierreDiario.aperturaRpta02,\r\n aperturaRpta03: !this.props.otrosDatosCierreDiario.aperturaRpta03 ? false : this.props.otrosDatosCierreDiario.aperturaRpta03,\r\n aperturaRpta04: !this.props.otrosDatosCierreDiario.aperturaRpta04 ? false : this.props.otrosDatosCierreDiario.aperturaRpta04,\r\n aperturaRpta05: !this.props.otrosDatosCierreDiario.aperturaRpta05 ? false : this.props.otrosDatosCierreDiario.aperturaRpta05,\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreDiario !== this.props.otrosDatosCierreDiario) {\r\n this.setState({\r\n //apertura:\r\n aperturaRpta01: !this.props.otrosDatosCierreDiario.aperturaRpta01 ? false : this.props.otrosDatosCierreDiario.aperturaRpta01,\r\n aperturaRpta02: !this.props.otrosDatosCierreDiario.aperturaRpta02 ? false : this.props.otrosDatosCierreDiario.aperturaRpta02,\r\n aperturaRpta03: !this.props.otrosDatosCierreDiario.aperturaRpta03 ? false : this.props.otrosDatosCierreDiario.aperturaRpta03,\r\n aperturaRpta04: !this.props.otrosDatosCierreDiario.aperturaRpta04 ? false : this.props.otrosDatosCierreDiario.aperturaRpta04,\r\n aperturaRpta05: !this.props.otrosDatosCierreDiario.aperturaRpta05 ? false : this.props.otrosDatosCierreDiario.aperturaRpta05,\r\n });\r\n };\r\n };\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n\r\n let value = event.target.value;\r\n\r\n if (value === 'true') value = true\r\n else if (value === 'false') value = false;\r\n\r\n this.setState({ ...this.state, [field]: value });\r\n\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldOtrosDatos(field, value);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n const questions = [\r\n {\r\n value: this.state.aperturaRpta01 ? 'true' : 'false',\r\n field: 'aperturaRpta01',\r\n label: 'Planes limpieza realizados'\r\n },\r\n {\r\n value: this.state.aperturaRpta02 ? 'true' : 'false',\r\n field: 'aperturaRpta02',\r\n label: 'Neveras rellenas'\r\n },\r\n {\r\n value: this.state.aperturaRpta03 ? 'true' : 'false',\r\n field: 'aperturaRpta03',\r\n label: 'Cafetería-Lavavajillas, maquinaria limpios'\r\n },\r\n {\r\n value: this.state.aperturaRpta04 ? 'true' : 'false',\r\n field: 'aperturaRpta04',\r\n label: 'Kids y caseta ordenada'\r\n },\r\n {\r\n value: this.state.aperturaRpta05 ? 'true' : 'false',\r\n field: 'aperturaRpta05',\r\n label: 'Office ordenado y limpio'\r\n }\r\n ]\r\n\r\n return (\r\n
\r\n \r\n
\r\n
BAR-KIDS
\r\n
SÍ / NO
\r\n
\r\n \r\n {/* form container */}\r\n\r\n {questions.map((q, i) =>\r\n \r\n {/*label*/}\r\n \r\n

{q.label}

\r\n
\r\n\r\n \r\n this.handleValueChange(event, q.field)} >\r\n\r\n }\r\n />\r\n\r\n }\r\n />\r\n \r\n \r\n
\r\n )}\r\n\r\n
\r\n {/* end form container */}\r\n\r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nApertura.propTypes = {\r\n otrosDatosCierreDiario: PropTypes.object.isRequired,\r\n modifyFieldOtrosDatos: PropTypes.func.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n otrosDatosCierreDiario: state.otrosDatosCierreDiario.datos,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyFieldOtrosDatos,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(Apertura));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n//material ui components:\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n//actions:\r\nimport { modifyFieldOtrosDatos } from '../../../actions/cierre_diario_actions';\r\nimport { setSaveState } from '../../../actions';\r\n\r\n//styles:\r\nconst styles = theme => ({\r\n checked: {\r\n color: theme.palette.secondary,\r\n },\r\n rightSide: {\r\n padding: 0,\r\n minHeight: \"220px\",\r\n marginBottom: '5px',\r\n fontSize: 13,\r\n fontWeight: '600',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n },\r\n paperTitle: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n paddingRight: '10%',\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: theme.palette.secondary.main,\r\n padding: '4px 2px 4px 12px',\r\n },\r\n titleItem: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n display: 'flex',\r\n margin: 0,\r\n },\r\n containerItems: {\r\n margin: '1px auto'\r\n },\r\n itemContainer: {\r\n display: 'flex',\r\n padding: '2px 20px 2px 15px',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n fontSize: 12,\r\n minHeight: 40, \r\n },\r\n radiobuttonContainer: {\r\n display: 'inline-flex',\r\n height: 0,\r\n marginTop: '-48px',\r\n }\r\n\r\n});\r\n\r\nclass Operativa extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n //operativa:\r\n operativaRpta01: !this.props.otrosDatosCierreDiario.operativaRpta01 ? 0 : this.props.otrosDatosCierreDiario.operativaRpta01,\r\n operativaRpta02: !this.props.otrosDatosCierreDiario.operativaRpta02 ? 0 : this.props.otrosDatosCierreDiario.operativaRpta02,\r\n operativaRpta03: !this.props.otrosDatosCierreDiario.operativaRpta03 ? 0 : this.props.otrosDatosCierreDiario.operativaRpta03,\r\n operativaRpta04: !this.props.otrosDatosCierreDiario.operativaRpta04 ? 0 : this.props.otrosDatosCierreDiario.operativaRpta04,\r\n operativaRpta05: !this.props.otrosDatosCierreDiario.operativaRpta05 ? 0 : this.props.otrosDatosCierreDiario.operativaRpta05,\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreDiario !== this.props.otrosDatosCierreDiario) {\r\n this.setState({\r\n //operativa:\r\n operativaRpta01: !this.props.otrosDatosCierreDiario.operativaRpta01 ? 0 : this.props.otrosDatosCierreDiario.operativaRpta01,\r\n operativaRpta02: !this.props.otrosDatosCierreDiario.operativaRpta02 ? 0 : this.props.otrosDatosCierreDiario.operativaRpta02,\r\n operativaRpta03: !this.props.otrosDatosCierreDiario.operativaRpta03 ? 0 : this.props.otrosDatosCierreDiario.operativaRpta03,\r\n operativaRpta04: !this.props.otrosDatosCierreDiario.operativaRpta04 ? 0 : this.props.otrosDatosCierreDiario.operativaRpta04,\r\n operativaRpta05: !this.props.otrosDatosCierreDiario.operativaRpta05 ? 0 : this.props.otrosDatosCierreDiario.operativaRpta05,\r\n });\r\n };\r\n };\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n\r\n let value = event.target.value;\r\n\r\n if (value === 'true') value = true\r\n else if (value === 'false') value = false;\r\n\r\n this.setState({ ...this.state, [field]: value });\r\n\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldOtrosDatos(field, value);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n const questions = [\r\n {\r\n value: this.state.operativaRpta01 ? 'true' : 'false',\r\n field: 'operativaRpta01',\r\n label: 'Planes de limpieza realizados'\r\n },\r\n {\r\n value: this.state.operativaRpta02 ? 'true' : 'false',\r\n field: 'operativaRpta02',\r\n label: 'Vitrinas rellenas'\r\n },\r\n {\r\n value: this.state.operativaRpta03 ? 'true' : 'false',\r\n field: 'operativaRpta03',\r\n label: 'Retornabolas vacío y limpio'\r\n },\r\n {\r\n value: this.state.operativaRpta04 ? 'true' : 'false',\r\n field: 'operativaRpta04',\r\n label: 'Accesorios OK en cada máquina'\r\n },\r\n {\r\n value: this.state.operativaRpta05 ? 'true' : 'false',\r\n field: 'operativaRpta05',\r\n label: 'Mistral-Bob-Gruas rellenas'\r\n }\r\n ]\r\n\r\n return (\r\n
\r\n \r\n
\r\n
BOWLING-REDEMPTION-ARCADE
\r\n
SÍ / NO
\r\n
\r\n \r\n {/* form container */}\r\n\r\n {questions.map((q, i) =>\r\n \r\n {/*label*/}\r\n \r\n

{q.label}

\r\n
\r\n\r\n \r\n this.handleValueChange(event, q.field)} >\r\n\r\n }\r\n />\r\n\r\n }\r\n />\r\n \r\n \r\n
\r\n )}\r\n\r\n
\r\n {/* end form container */}\r\n\r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nOperativa.propTypes = {\r\n otrosDatosCierreDiario: PropTypes.object.isRequired,\r\n modifyFieldOtrosDatos: PropTypes.func.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n otrosDatosCierreDiario: state.otrosDatosCierreDiario.datos,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyFieldOtrosDatos,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(Operativa));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n//material ui components:\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n//actions:\r\nimport { modifyFieldOtrosDatos } from '../../../actions/cierre_diario_actions';\r\nimport { setSaveState } from '../../../actions';\r\n\r\n//styles:\r\nconst styles = theme => ({\r\n checked: {\r\n color: theme.palette.secondary,\r\n },\r\n rightSide: {\r\n padding: 0,\r\n minHeight: \"220px\",\r\n marginBottom: '5px',\r\n fontSize: 13,\r\n fontWeight: '600',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n },\r\n paperTitle: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n paddingRight: '10%',\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: theme.palette.secondary.main,\r\n padding: '4px 2px 4px 12px',\r\n },\r\n titleItem: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n display: 'flex',\r\n margin: 0,\r\n },\r\n containerItems: {\r\n margin: '1px auto'\r\n },\r\n itemContainer: {\r\n display: 'flex',\r\n padding: '2px 20px 2px 15px',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n fontSize: 12,\r\n minHeight: 40, \r\n },\r\n radiobuttonContainer: {\r\n display: 'inline-flex',\r\n height: 0,\r\n marginTop: '-48px',\r\n }\r\n\r\n});\r\n\r\nclass Cierre extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n //cierre:\r\n cierreRpta01: !this.props.otrosDatosCierreDiario.cierreRpta01 ? 0 : this.props.otrosDatosCierreDiario.cierreRpta01,\r\n cierreRpta02: !this.props.otrosDatosCierreDiario.cierreRpta02 ? 0 : this.props.otrosDatosCierreDiario.cierreRpta02,\r\n cierreRpta03: !this.props.otrosDatosCierreDiario.cierreRpta03 ? 0 : this.props.otrosDatosCierreDiario.cierreRpta03,\r\n cierreRpta04: !this.props.otrosDatosCierreDiario.cierreRpta04 ? 0 : this.props.otrosDatosCierreDiario.cierreRpta04,\r\n cierreRpta05: !this.props.otrosDatosCierreDiario.cierreRpta05 ? 0 : this.props.otrosDatosCierreDiario.cierreRpta05,\r\n\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreDiario !== this.props.otrosDatosCierreDiario) {\r\n this.setState({\r\n //cierre:\r\n cierreRpta01: !this.props.otrosDatosCierreDiario.cierreRpta01 ? 0 : this.props.otrosDatosCierreDiario.cierreRpta01,\r\n cierreRpta02: !this.props.otrosDatosCierreDiario.cierreRpta02 ? 0 : this.props.otrosDatosCierreDiario.cierreRpta02,\r\n cierreRpta03: !this.props.otrosDatosCierreDiario.cierreRpta03 ? 0 : this.props.otrosDatosCierreDiario.cierreRpta03,\r\n cierreRpta04: !this.props.otrosDatosCierreDiario.cierreRpta04 ? 0 : this.props.otrosDatosCierreDiario.cierreRpta04,\r\n cierreRpta05: !this.props.otrosDatosCierreDiario.cierreRpta05 ? 0 : this.props.otrosDatosCierreDiario.cierreRpta05,\r\n\r\n });\r\n };\r\n };\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n\r\n let value = event.target.value;\r\n\r\n if (value === 'true') value = true\r\n else if (value === 'false') value = false;\r\n\r\n this.setState({ ...this.state, [field]: value });\r\n\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldOtrosDatos(field, value);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n const questions = [\r\n {\r\n value: this.state.cierreRpta01 ? 'true' : 'false',\r\n field: 'cierreRpta01',\r\n label: 'Cierre diario verificado'\r\n },\r\n {\r\n value: this.state.cierreRpta02 ? 'true' : 'false',\r\n field: 'cierreRpta02',\r\n label: 'Máquinas cambio rellenas'\r\n },\r\n {\r\n value: this.state.cierreRpta03 ? 'true' : 'false',\r\n field: 'cierreRpta03',\r\n label: 'Jornada sin reclamaciones'\r\n },\r\n {\r\n value: this.state.cierreRpta04 ? 'true' : 'false',\r\n field: 'cierreRpta04',\r\n label: 'Hojas de registro rellenadas OK'\r\n },\r\n {\r\n value: this.state.cierreRpta05 ? 'true' : 'false',\r\n field: 'cierreRpta05',\r\n label: 'Centro cerrado y abierto en hora'\r\n }\r\n ]\r\n\r\n return (\r\n
\r\n \r\n
\r\n
GESTIÓN
\r\n
SÍ / NO
\r\n
\r\n \r\n {/* form container */}\r\n\r\n {questions.map((q, i) =>\r\n \r\n {/*label*/}\r\n \r\n

{q.label}

\r\n
\r\n\r\n \r\n this.handleValueChange(event, q.field)} >\r\n\r\n }\r\n />\r\n\r\n }\r\n />\r\n \r\n \r\n
\r\n )}\r\n\r\n
\r\n {/* end form container */}\r\n\r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierre.propTypes = {\r\n otrosDatosCierreDiario: PropTypes.object.isRequired,\r\n modifyFieldOtrosDatos: PropTypes.func.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n otrosDatosCierreDiario: state.otrosDatosCierreDiario.datos,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyFieldOtrosDatos,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(Cierre));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n//material ui components:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Paper, Grid, Typography, TextField } from '@material-ui/core';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\n//actions:\r\nimport { modifyFieldOtrosDatos } from '../../../actions/cierre_diario_actions';\r\nimport { setSaveState } from '../../../actions';\r\n\r\n//components:\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\nimport FloatNumberFormatInput from '../../../components/float_number_input_formatter';\r\n\r\n//styles:\r\nconst styles = theme => ({\r\n container: {\r\n padding: 0,\r\n fontSize: 13,\r\n fontWeight: '600',\r\n margin: '0 8px',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n height: 155,\r\n },\r\n paperTitle: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n margin: 0,\r\n backgroundColor: theme.palette.primary.main,\r\n padding: '4px 2px 4px 12px',\r\n },\r\n containerItems: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n height: 130,\r\n },\r\n singleItem: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n padding: '2px 15px',\r\n },\r\n center: {\r\n display: 'flex',\r\n alignContent: 'center',\r\n marginTop: 6,\r\n },\r\n label: {\r\n maxWidth: 85,\r\n fontSize: 11,\r\n },\r\n input: {\r\n width: 60,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: '8px 8px 8px 2px',\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n inputlarge: {\r\n margin: '0 auto',\r\n width: '90%',\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important',\r\n height: 'inherit',\r\n },\r\n },\r\n barArcadeContainer: {\r\n height: 'inherit',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between'\r\n },\r\n paperHalf: {\r\n height: '49%',\r\n margin: 0,\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass FirstRowPapers extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n //bolera:\r\n interPista: !this.props.otrosDatosCierreDiario.interPista ? 0 : this.props.otrosDatosCierreDiario.interPista,\r\n pistasParadas: !this.props.otrosDatosCierreDiario.pistasParadas ? 0 : this.props.otrosDatosCierreDiario.pistasParadas,\r\n paresZapatos: !this.props.otrosDatosCierreDiario.paresZapatos ? 0 : this.props.otrosDatosCierreDiario.paresZapatos,\r\n //venta normal/bar:\r\n ventasNormalBar: !this.props.otrosDatosCierreDiario.ventasNormalBar ? 0 : this.props.otrosDatosCierreDiario.ventasNormalBar,\r\n //maq arcade paradas:\r\n maqArcadeParadas: !this.props.otrosDatosCierreDiario.maqArcadeParadas ? 0 : this.props.otrosDatosCierreDiario.maqArcadeParadas,\r\n //kids:\r\n numNinos: !this.props.otrosDatosCierreDiario.numNinos ? 0 : this.props.otrosDatosCierreDiario.numNinos,\r\n numAniversarios: !this.props.otrosDatosCierreDiario.numAniversarios ? 0 : this.props.otrosDatosCierreDiario.numAniversarios,\r\n ninosKids: !this.props.otrosDatosCierreDiario.ninosKids ? 0 : this.props.otrosDatosCierreDiario.ninosKids,\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreDiario !== this.props.otrosDatosCierreDiario) {\r\n this.setState({\r\n //bolera:\r\n interPista: !this.props.otrosDatosCierreDiario.interPista ? 0 : this.props.otrosDatosCierreDiario.interPista,\r\n pistasParadas: !this.props.otrosDatosCierreDiario.pistasParadas ? 0 : this.props.otrosDatosCierreDiario.pistasParadas,\r\n paresZapatos: !this.props.otrosDatosCierreDiario.paresZapatos ? 0 : this.props.otrosDatosCierreDiario.paresZapatos,\r\n //venta normal/bar:\r\n ventasNormalBar: !this.props.otrosDatosCierreDiario.ventasNormalBar ? 0 : this.props.otrosDatosCierreDiario.ventasNormalBar,\r\n //maq arcade paradas:\r\n maqArcadeParadas: !this.props.otrosDatosCierreDiario.maqArcadeParadas ? 0 : this.props.otrosDatosCierreDiario.maqArcadeParadas,\r\n //kids:\r\n numNinos: !this.props.otrosDatosCierreDiario.numNinos ? 0 : this.props.otrosDatosCierreDiario.numNinos,\r\n numAniversarios: !this.props.otrosDatosCierreDiario.numAniversarios ? 0 : this.props.otrosDatosCierreDiario.numAniversarios,\r\n ninosKids: !this.props.otrosDatosCierreDiario.ninosKids ? 0 : this.props.otrosDatosCierreDiario.ninosKids,\r\n });\r\n };\r\n };\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n\r\n onBlur = (event, field) => {\r\n\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldOtrosDatos(field, this.state[field]);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n \r\n {/* first row*/}\r\n\r\n \r\n {/* bolera */}\r\n \r\n {/* title*/}\r\n
Bolera
\r\n\r\n
\r\n
\r\n {/* first label and input*/}\r\n Intervenciones en Pista\r\n\r\n this.handleValueChange(event, 'interPista')}\r\n onBlur={(event) => this.onBlur(event, 'interPista')}\r\n variant='outlined'\r\n />\r\n
\r\n\r\n
\r\n {/* second label and input*/}\r\n Pistas paradas\r\n\r\n\r\n this.handleValueChange(event, 'pistasParadas')}\r\n onBlur={(event) => this.onBlur(event, 'pistasParadas')}\r\n variant='outlined'\r\n />\r\n
\r\n\r\n\r\n
\r\n {/* third label and input*/}\r\n Pares de Zapatos\r\n\r\n\r\n this.handleValueChange(event, 'paresZapatos')}\r\n onBlur={(event) => this.onBlur(event, 'paresZapatos')}\r\n variant='outlined'\r\n />\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n {/* bar y arcade: */}\r\n \r\n {/* cuadro bar */}\r\n \r\n
Venta Normal/Bar %
\r\n
\r\n \r\n this.handleValueChange(event, 'ventasNormalBar')}\r\n onBlur={(event) => this.onBlur(event, 'ventasNormalBar')}\r\n variant='outlined'\r\n />\r\n \r\n
\r\n
\r\n\r\n {/* cuadro arcade */}\r\n \r\n
Maq.Arcade parada
\r\n
\r\n this.handleValueChange(event, 'maqArcadeParadas')}\r\n onBlur={(event) => this.onBlur(event, 'maqArcadeParadas')}\r\n variant='outlined'\r\n />\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n {/* kids */}\r\n \r\n
KIDS
\r\n
\r\n
\r\n {/* first label and input*/}\r\n Nº Niños/Cumples\r\n\r\n this.handleValueChange(event, 'numNinos')}\r\n onBlur={(event) => this.onBlur(event, 'numNinos')}\r\n variant='outlined'\r\n />\r\n
\r\n\r\n
\r\n {/* second label and input*/}\r\n Nº Cumpleaños\r\n\r\n this.handleValueChange(event, 'numAniversarios')}\r\n onBlur={(event) => this.onBlur(event, 'numAniversarios')}\r\n variant='outlined'\r\n />\r\n
\r\n\r\n\r\n
\r\n {/* third label and input*/}\r\n Niños en Kids\r\n\r\n this.handleValueChange(event, 'ninosKids')}\r\n onBlur={(event) => this.onBlur(event, 'ninosKids')}\r\n variant='outlined'\r\n />\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n );\r\n };\r\n};\r\n\r\nFirstRowPapers.propTypes = {\r\n otrosDatosCierreDiario: PropTypes.object.isRequired,\r\n modifyFieldOtrosDatos: PropTypes.func.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n otrosDatosCierreDiario: state.otrosDatosCierreDiario.datos,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyFieldOtrosDatos,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(FirstRowPapers));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n//material ui components:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Paper, Grid, Typography, TextField } from '@material-ui/core';\r\n\r\n//actions:\r\nimport { modifyFieldOtrosDatos } from '../../../actions/cierre_diario_actions';\r\nimport { setSaveState } from '../../../actions';\r\n\r\n//components:\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\n\r\n//styles:\r\nconst styles = theme => ({\r\n container: {\r\n padding: 0,\r\n marginBottom: 5,\r\n fontSize: 13,\r\n fontWeight: '600',\r\n margin: '0 8px',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n height: 155,\r\n },\r\n paperTitle: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n margin: 0,\r\n color: 'white',\r\n backgroundColor: theme.palette.primary.main,\r\n padding: '4px 2px 4px 12px',\r\n },\r\n containerItems: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n height: 130,\r\n },\r\n singleItem: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n padding: '2px 15px',\r\n },\r\n label: {\r\n maxWidth: 85,\r\n fontSize: 11,\r\n },\r\n input: {\r\n width: 60,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: '8px 8px 8px 2px',\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n textAreaContainer: {\r\n padding: '0 10px',\r\n height: '90%',\r\n marginTop: -10,\r\n },\r\n textareaInput: {\r\n display: 'flex',\r\n alignItems: 'start',\r\n padding: 5,\r\n height: 120,\r\n fontSize: 13,\r\n fontWeight: '500',\r\n backgroundColor: 'white',\r\n borderRadius: 0,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important',\r\n height: 'inherit',\r\n },\r\n },\r\n});\r\n\r\nclass SecondRowPapers extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n //eventos, hechos relevantes:\r\n eventosRelevantes: !this.props.otrosDatosCierreDiario.eventosRelevantes ? '' : this.props.otrosDatosCierreDiario.eventosRelevantes,\r\n //rrhh:\r\n horasPersonal: !this.props.otrosDatosCierreDiario.horasPersonal ? 0 : this.props.otrosDatosCierreDiario.horasPersonal,\r\n horasVacaciones: !this.props.otrosDatosCierreDiario.horasVacaciones ? 0 : this.props.otrosDatosCierreDiario.horasVacaciones,\r\n horasBajas: !this.props.otrosDatosCierreDiario.horasBajas ? 0 : this.props.otrosDatosCierreDiario.horasBajas,\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreDiario !== this.props.otrosDatosCierreDiario) {\r\n this.setState({\r\n //eventos, hechos relevantes:\r\n eventosRelevantes: !this.props.otrosDatosCierreDiario.eventosRelevantes ? '' : this.props.otrosDatosCierreDiario.eventosRelevantes,\r\n //rrhh:\r\n horasPersonal: !this.props.otrosDatosCierreDiario.horasPersonal ? 0 : this.props.otrosDatosCierreDiario.horasPersonal,\r\n horasVacaciones: !this.props.otrosDatosCierreDiario.horasVacaciones ? 0 : this.props.otrosDatosCierreDiario.horasVacaciones,\r\n horasBajas: !this.props.otrosDatosCierreDiario.horasBajas ? 0 : this.props.otrosDatosCierreDiario.horasBajas,\r\n });\r\n };\r\n };\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n\r\n onBlur = (event, field) => {\r\n\r\n // const value = !event.target.value ? 0 : parseInt(event.target.value);\r\n\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldOtrosDatos(field, this.state[field]);\r\n };\r\n\r\n onBlurText = (event, field) => {\r\n\r\n const value = !event.target.value ? '' : event.target.value;\r\n\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldOtrosDatos(field, value);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n \r\n\r\n {/* eventos: */}\r\n \r\n \r\n
Eventos y hechos relevantes
\r\n\r\n \r\n\r\n this.handleValueChange(event, 'eventosRelevantes')}\r\n onBlur={(event) => this.onBlurText(event, 'eventosRelevantes')}\r\n variant='outlined'\r\n fullWidth\r\n />\r\n \r\n\r\n
\r\n
\r\n\r\n {/* hhrr: */}\r\n \r\n \r\n
RRHH
\r\n\r\n
\r\n
\r\n {/* first label and input*/}\r\n Horas Personal\r\n\r\n this.handleValueChange(event, 'horasPersonal')}\r\n onBlur={(event) => this.onBlur(event, 'horasPersonal')}\r\n variant='outlined'\r\n />\r\n
\r\n\r\n
\r\n {/* second label and input*/}\r\n Horas Vacaciones\r\n\r\n this.handleValueChange(event, 'horasVacaciones')}\r\n onBlur={(event) => this.onBlur(event, 'horasVacaciones')}\r\n variant='outlined'\r\n />\r\n
\r\n\r\n
\r\n {/* third label and input*/}\r\n Horas Bajas\r\n\r\n this.handleValueChange(event, 'horasBajas')}\r\n onBlur={(event) => this.onBlur(event, 'horasBajas')}\r\n variant='outlined'\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nSecondRowPapers.propTypes = {\r\n otrosDatosCierreDiario: PropTypes.object.isRequired,\r\n modifyFieldOtrosDatos: PropTypes.func.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n otrosDatosCierreDiario: state.otrosDatosCierreDiario.datos,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyFieldOtrosDatos,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(SecondRowPapers));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui components:\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n//styles:\r\nconst styles = theme => ({\r\n paperTitle: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: theme.palette.primary.main,\r\n padding: '4px 2px 4px 12px',\r\n margin: 0,\r\n },\r\n paper: {\r\n backgroundColor: theme.palette.primary.light,\r\n boxShadow: 'none',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n margin: '25px 0',\r\n padding: 10,\r\n },\r\n headerRow: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n backgroundColor: '#e6e6e6',\r\n padding: '4px 2px 4px 12px',\r\n borderBottom: '3px solid #b8b8b8',\r\n },\r\n headerRowItem: {\r\n fontSize: 13,\r\n fontWeight: '700',\r\n margin: 0,\r\n width: '50%',\r\n padding: '0 10px',\r\n },\r\n gridRow: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n fontSize: 11,\r\n padding: '2px 10px',\r\n borderBottom: '1px solid #8bc34a',\r\n \"&:last-child\": {\r\n borderBottom: 'none',\r\n paddingBottom: 3,\r\n },\r\n },\r\n rowItem: {\r\n width: '50%',\r\n padding: '0 10px',\r\n fontWeight: '500',\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n});\r\n\r\n\r\nconst Top5 = (props) => {\r\n\r\n const { classes } = props;\r\n\r\n return (\r\n\r\n \r\n \r\n
Top 5
\r\n\r\n
\r\n {/* header row */}\r\n
Tipo de Partida
\r\n
Total Partidas
\r\n
\r\n {props.top5.length ? props.top5.map((tp, i) =>\r\n\r\n
\r\n
{tp.descr ? tp.descr : ''}
\r\n
{tp.totalPartidas ? tp.totalPartidas.toFixed(2) : '0.00'}
\r\n
\r\n )\r\n :

No hay partidas jugadas

\r\n }\r\n
\r\n
\r\n\r\n );\r\n};\r\n\r\n\r\nTop5.propTypes = {\r\n top5: PropTypes.array.isRequired\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n top5: state.otrosDatosCierreDiario.top5,\r\n };\r\n};\r\n\r\n\r\nexport default connect(mapStateToProps)(withStyles(styles, { withTheme: true })(Top5));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n//material ui components:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Paper, Grid, Typography, TextField } from '@material-ui/core';\r\n\r\nimport Top5 from './top5';\r\n\r\n//actions:\r\nimport { modifyFieldOtrosDatos } from '../../../actions/cierre_diario_actions';\r\nimport { setSaveState } from '../../../actions';\r\n\r\n//components:\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\nimport FloatNumberFormatInput from '../../../components/float_number_input_formatter';\r\n\r\n//styles:\r\nconst styles = theme => ({\r\n container: {\r\n padding: 0,\r\n marginBottom: 5,\r\n fontSize: 13,\r\n fontWeight: '600',\r\n margin: '0 8px',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n height: 155,\r\n },\r\n paperTitle: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n margin: 0,\r\n color: 'white',\r\n backgroundColor: theme.palette.primary.main,\r\n padding: '4px 2px 4px 12px',\r\n },\r\n containerItems: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n height: 130,\r\n },\r\n singleItem: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n padding: '2px 15px',\r\n },\r\n label: {\r\n maxWidth: 85,\r\n fontSize: 11,\r\n },\r\n input: {\r\n width: 60,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: '8px 8px 8px 2px',\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n});\r\nclass ThirdRowPapers extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n //marketing:\r\n numeroPersonas: !this.props.otrosDatosCierreDiario.numeroPersonas ? 0 : this.props.otrosDatosCierreDiario.numeroPersonas,\r\n extrasVendidos: !this.props.otrosDatosCierreDiario.extrasVendidos ? 0 : this.props.otrosDatosCierreDiario.extrasVendidos,\r\n tokensEntregados: !this.props.otrosDatosCierreDiario.tokensEntregados ? 0 : this.props.otrosDatosCierreDiario.tokensEntregados,\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreDiario !== this.props.otrosDatosCierreDiario) {\r\n this.setState({\r\n //marketing:\r\n numeroPersonas: !this.props.otrosDatosCierreDiario.numeroPersonas ? 0 : this.props.otrosDatosCierreDiario.numeroPersonas,\r\n extrasVendidos: !this.props.otrosDatosCierreDiario.extrasVendidos ? 0 : this.props.otrosDatosCierreDiario.extrasVendidos,\r\n tokensEntregados: !this.props.otrosDatosCierreDiario.tokensEntregados ? 0 : this.props.otrosDatosCierreDiario.tokensEntregados,\r\n });\r\n };\r\n };\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n\r\n onBlur = (event, field) => {\r\n\r\n // const value = !event.target.value ? 0 : parseInt(event.target.value);\r\n\r\n this.props.setSaveState(true);\r\n this.props.modifyFieldOtrosDatos(field, this.state[field]);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n\r\n {/* third row: top5 y marketing */}\r\n \r\n\r\n\r\n \r\n {/* MKTING */}\r\n \r\n
Marketing
\r\n\r\n
\r\n
\r\n {/* first label and input*/}\r\n Número Personas\r\n this.handleValueChange(event, 'numeroPersonas')}\r\n onBlur={(event) => this.onBlur(event, 'numeroPersonas')}\r\n variant='outlined'\r\n />\r\n
\r\n
\r\n {/* second label and input*/}\r\n Extras Vendidos €\r\n this.handleValueChange(event, 'extrasVendidos')}\r\n onBlur={(event) => this.onBlur(event, 'extrasVendidos')}\r\n variant='outlined'\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nThirdRowPapers.propTypes = {\r\n otrosDatosCierreDiario: PropTypes.object.isRequired,\r\n modifyFieldOtrosDatos: PropTypes.func.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n otrosDatosCierreDiario: state.otrosDatosCierreDiario.datos,\r\n tieneTokens: state.otrosDatosCierreDiario.tieneTokens,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyFieldOtrosDatos,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(ThirdRowPapers));\r\n","//En este componente se muestran para su edición los valores de diversos datos relativos al cierre diario (afluencia, niños en fiestas de cumpleaños, incidencias en pistas ....)\r\n// utilizando los componentes de /cierre_diario_otros_datos_componentes para mantener el aspecto de la pantalla existente en el antiguo TCW\r\n//En este componente no se permite cambiar el centro ni el dia de cierre y se obtienen los datos con una llamada a la acción getOtrosDatosCierreDiario\r\n//El botón de guardar llama a la acción newOtrosDatosDB o updateOtrosDatosDB para actualizar los datos en el servidor y después hace un nextStep del Stepper de AccCierreDiario \r\n// para que se muestre el componente CierreDiarioResumen.\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui components:\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Paper, Grid } from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n//actions:\r\nimport { getOtrosDatosCierreDiario, newOtrosDatosDB, updateOtrosDatosDB } from '../../actions/cierre_diario_actions';\r\nimport { setSaveState } from '../../actions';\r\n\r\n//components:\r\nimport CumpleanosTable from './cierre_diario_otros_datos_components/cumpleaños_table';\r\nimport SatisfaccionTable from './cierre_diario_otros_datos_components/satisfaccion_table';\r\nimport Apertura from './cierre_diario_otros_datos_components/Apertura';\r\nimport Operativa from './cierre_diario_otros_datos_components/Operativa';\r\nimport Cierre from './cierre_diario_otros_datos_components/Cierre';\r\nimport FirstRowPapers from './cierre_diario_otros_datos_components/first_row_papers';\r\nimport SecondRowPapers from './cierre_diario_otros_datos_components/second_row_papers';\r\nimport ThirdRowPapers from './cierre_diario_otros_datos_components/third_row_papers';\r\n\r\n\r\n\r\n//styles:\r\nconst styles = theme => ({\r\n root: {\r\n ...theme.mixins.gutters(),\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n margin: theme.spacing(1),\r\n flexGrow: 1,\r\n fontSize: 13,\r\n fontWeight: '600',\r\n },\r\n paperCaja: {\r\n backgroundColor: '#E8F1D7',\r\n boxShadow: 'none',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n margin: '25px 0',\r\n padding: 10,\r\n },\r\n mainContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n },\r\n container: {\r\n padding: 0,\r\n fontSize: 13,\r\n fontWeight: '600',\r\n margin: '0 8px',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n height: '100%',\r\n },\r\n paperTitle: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: 'black',\r\n padding: '4px 2px 4px 12px',\r\n margin: 0,\r\n },\r\n encuestasContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n height: 165,\r\n },\r\n rightsideContainer: {\r\n paddingBottom: '0px !important',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n}); \r\n\r\nclass CierreDiarioOtrosDatos extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showAll: false,\r\n showSpinner: true,\r\n };\r\n };\r\n\r\n\r\n componentDidMount() {\r\n this.props.getOtrosDatosCierreDiario(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia);\r\n };\r\n\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreDiario !== this.props.otrosDatosCierreDiario) {\r\n this.setState({\r\n showAll: true,\r\n });\r\n };\r\n\r\n if (prevProps.isLoading !== this.props.isLoading && this.props.isLoading) this.setState({ showSpinner: true });\r\n if (prevProps.isLoading !== this.props.isLoading && !this.props.isLoading) this.setState({ showSpinner: false });\r\n };\r\n\r\n saveHandler = () =>{\r\n this.props.setSaveState(false);\r\n this.props.nextStep();\r\n }\r\n\r\n hanldeOKClick = () => {\r\n\r\n const otrosDatos = this.props.otrosDatosCierreDiario;\r\n const id = !this.props.otrosDatosCierreDiario.id ? 0 : this.props.otrosDatosCierreDiario.id;\r\n\r\n if (!this.props.isDiaCerrado) {\r\n\r\n if (id === 0) {\r\n //create new otrosdatos de cierre diario (post):\r\n this.props.newOtrosDatosDB(otrosDatos, this.saveHandler);\r\n } else {\r\n //modify existing otrosdatos (put):\r\n this.props.updateOtrosDatosDB(otrosDatos, id, this.saveHandler);\r\n };\r\n }\r\n else{\r\n this.props.nextStep();\r\n }\r\n\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.showAll && !this.state.showSpinner) {\r\n return (\r\n
\r\n\r\n \r\n \r\n\r\n {/* main */}\r\n \r\n \r\n \r\n \r\n\r\n {/*fourth row:*/}\r\n
\r\n \r\n

Encuestas

\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
{/*end main*/}\r\n\r\n {/* right side */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierreDiarioOtrosDatos.propTypes = {\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n otrosDatosCierreDiario: PropTypes.object.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n getOtrosDatosCierreDiario: PropTypes.func.isRequired,\r\n newOtrosDatosDB: PropTypes.func.isRequired,\r\n updateOtrosDatosDB: PropTypes.func.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n prevStep: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected,\r\n otrosDatosCierreDiario: state.otrosDatosCierreDiario.datos,\r\n isLoading: state.otrosDatosCierreDiario.isLoading,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n getOtrosDatosCierreDiario,\r\n newOtrosDatosDB,\r\n updateOtrosDatosDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreDiarioOtrosDatos));\r\n","//En este container se muestra un resumen de los datos del cierre diario y la opciópn de cerrar el día.\r\n//En este componente no se permite cambiar el centro ni el dia de cierre.\r\n//Se genera una estructura con los dados ya dispoonibles del cierre diario de:\r\n// - Cajas.\r\n// - Conceptos (ingresos o cobros).\r\n// - Productos.\r\n// Se muestra el total de los productos de cada zona y concepto para detectar descuadres.\r\n// Se obtiene y se muestra un resumen con los descuadres mediante la acción getResumenCierreDiario.\r\n// Se obtiene y se muestra el número de partidas mediante la acción getPartidasPorTipo.\r\n// El boton de cerrar:\r\n// - comprueba que el descuadre no sea mayor de 5€, y en el caso de que así lo sea muestra un diálogo modal para permitir introioducir las observaciones por descuadre.\r\n// - acción cerrarDiaCierreDiario para cerrar el día\r\n// - llama al servidor de reports para obtener el report del resumen diario.\r\n// Si el día ya estaba cerrado y el usuario tiiene los permisos adecuados el botón de cerrar muestra el texto 'Modificar cierre'.\r\n// El botón de modificar cierre desbloquea el día (unlockCierreDiario) y vuelve a mostrar el primer step (CierreDiarioDatos) de AccCierreDiario.\r\n\r\n\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui components:\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Paper, Typography } from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\n\r\nimport { getResumenCierreDiario, cerrarDiaCierreDiario, unlockCierreDiario } from '../../actions/cierre_diario_actions';\r\nimport { openDialog, hideDialog } from '../../actions/index';\r\n\r\n\r\nimport FloatNumberFormatText from '../../components/float_number_text_formatter';\r\nimport IntNumberFormatText from '../../components/int_number_text_formatter';\r\nimport { getData, createReport, postData } from '../../dataLib';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n ...theme.mixins.gutters(),\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n margin: theme.spacing(1),\r\n flexGrow: 1,\r\n fontSize: 13,\r\n fontWeight: '600',\r\n },\r\n paperCaja: {\r\n backgroundColor: theme.palette.primary.light,\r\n boxShadow: 'none',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n margin: '25px 0',\r\n padding: 10,\r\n },\r\n paperConcepto: {\r\n padding: 0,\r\n margin: 0,\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: 0,\r\n },\r\n cajaSection: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n margin: 0,\r\n padding: '0 0 10px',\r\n borderRadius: 0,\r\n background: theme.palette.primary.light,\r\n },\r\n cajaSectionLeft: {\r\n display: 'flex',\r\n padding: '0 10px 0 8px',\r\n width: '50%',\r\n justifyContent: 'space-between',\r\n },\r\n cajaSectionRight: {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n width: '50%',\r\n },\r\n cajaSectionItem: {\r\n display: 'flex',\r\n justifyContent: 'space-evenly',\r\n width: '35%',\r\n },\r\n cajaSectionFontDescr: {\r\n fontSize: 13,\r\n fontWeight: '700',\r\n textTransform: 'uppercase',\r\n },\r\n cajaSectionFont: {\r\n fontSize: 13,\r\n fontWeight: '700',\r\n },\r\n paperZona: {\r\n padding: 0,\r\n margin: 0,\r\n borderRadius: 0,\r\n marginBottom: 28,\r\n },\r\n conceptTitleContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n padding: '4px 2px 4px 12px',\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n conceptTitleContainerSecondary: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n padding: '4px 2px 4px 12px',\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n conceptTitleContainerblack: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n padding: '4px 2px 4px 12px',\r\n backgroundColor: 'black',\r\n },\r\n topGrid: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n backgroundColor: '#e6e6e6',\r\n padding: '3px 0',\r\n borderBottom: '3px solid #b8b8b8',\r\n fontSize: 13,\r\n fontWeight: '700',\r\n },\r\n gridRow: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n fontSize: 13,\r\n padding: '4px 10px',\r\n borderBottom: '1px solid #8bc34a',\r\n \"&:last-child\": {\r\n borderBottom: 'none'\r\n },\r\n },\r\n gridCellsHeaderleft: {\r\n width: '33%',\r\n padding: '3px 3px 3px 20px',\r\n },\r\n gridCellsHeaderCenter: {\r\n width: '33%',\r\n padding: '3px 10px 3px 3px',\r\n textAlign: 'right',\r\n },\r\n gridCellsHeaderRight: {\r\n width: '33%',\r\n padding: '3px 20px 3px 3px',\r\n textAlign: 'right',\r\n },\r\n gridCells: {\r\n width: '33%',\r\n padding: '0 10px',\r\n fontWeight: '500',\r\n },\r\n rtl: {\r\n textAlign: 'right',\r\n },\r\n conceptTitle: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n },\r\n conceptSectionItem: {\r\n display: 'flex',\r\n justifyContent: 'space-around',\r\n width: '34%',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n paperResumenTable: {\r\n backgroundColor: '#efefef',\r\n padding: theme.spacing(1),\r\n elevation: 3\r\n },\r\n typoError: {\r\n fontSize: 13,\r\n color: 'red'\r\n },\r\n typoDefault: {\r\n fontSize: 13,\r\n color: 'black'\r\n },\r\n typoOK: {\r\n fontSize: 13,\r\n color: 'green'\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass CierreDiarioResumen extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n partidas: 0.0,\r\n descuadreBarBolera: 0.0,\r\n descuadreBar: 0.0,\r\n descuadreBolera: 0.0,\r\n descuadreArcade: 0.0,\r\n cajaBar: -1,\r\n cajaBolera: -1,\r\n cajaArcade: -1,\r\n arqueoGeneralId: -1,\r\n showSpinner: false,\r\n datosCierre: [],\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n this.getPartidasPorTipo();\r\n this.props.getResumenCierreDiario(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia);\r\n this.parseCierreDiarioData();\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.centroDiaSelected.centro.id !== this.props.centroDiaSelected.centro.id ||\r\n prevProps.centroDiaSelected.dia !== this.props.centroDiaSelected.dia) {\r\n this.setState({ showSpinner: true })\r\n this.props.getDatosCierreDiario(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia);\r\n };\r\n if (prevProps.isLoading !== this.props.isLoading) this.setState({ showSpinner: this.props.isLoading });\r\n if (prevProps.isLoading !== this.props.isLoading) this.setState({ showSpinner: this.props.isLoading });\r\n };\r\n\r\n parseCierreDiarioData = () => {\r\n //create object from this.props.datosCierreDiario\r\n\r\n let descuadreBarBolera = 0.0;\r\n let descuadreBar = 0.0;\r\n let descuadreBolera = 0.0;\r\n let descuadreArcade = 0.0;\r\n let cajaBolera = -1;\r\n let cajaBar = -1;\r\n let cajaArcade = -1;\r\n\r\n let ventaPacksBar = 0.0;\r\n const packsBar = this.props.datosCierreDiario.find(p => p.iTipoZona === 1 && p.iKind === -8);\r\n if (packsBar !== undefined) {\r\n ventaPacksBar = packsBar.importe;\r\n };\r\n\r\n /* let importeGastosGeneral = 0.0;\r\n const gastosGeneral = this.props.datosCierreDiario.find(p => p.iTipoZona === 9 && p.iKind === 4);\r\n if (gastosGeneral !== undefined) {\r\n importeGastosGeneral = gastosGeneral.importe;\r\n } */\r\n\r\n var datosCierre = [];\r\n\r\n //create a control for each of the items from this.props.datosCierreDiario\r\n this.props.datosCierreDiario.forEach(item => {\r\n\r\n let item_cajaId = Math.abs(item.cajaId);\r\n\r\n //if (item.iTipoZona !== 9) {\r\n\r\n if (typeof datosCierre[item_cajaId] === 'undefined') { //no existe la caja\r\n datosCierre[item_cajaId] = { cajaId: item.cajaId, descr: item.caja, iTipoZona: item.iTipoZona, conceptos: [], descuadre: 0.0, partidas: false };\r\n }\r\n\r\n const caja = datosCierre[item_cajaId];\r\n\r\n\r\n if (typeof caja.conceptos[item.isMovCaja] === 'undefined') { //no existe el concepto\r\n caja.conceptos[item.isMovCaja] = { concepto: item.concepto, isMovCaja: item.isMovCaja, productos: [], total: 0.0 };\r\n }\r\n\r\n const concepto = caja.conceptos[item.isMovCaja];\r\n\r\n if (item.iKind === -5) caja.partidas = true;\r\n\r\n concepto.productos.push(item);\r\n //}\r\n\r\n });\r\n\r\n\r\n //sort items\r\n datosCierre.forEach(caja => {\r\n caja.conceptos.forEach(concepto => {\r\n concepto.productos.sort(this.compareProductos);\r\n });\r\n });\r\n datosCierre.sort(this.compareDescr);\r\n\r\n datosCierre.forEach(caja => {\r\n\r\n const conceptoIngresos = caja.conceptos[0];\r\n const conceptoPagos = caja.conceptos[1];\r\n\r\n if (conceptoIngresos !== undefined) {\r\n let total = 0.0;\r\n conceptoIngresos.productos.forEach(p => {\r\n if (p.iTipoZona === 0 && p.iKind === -5) p.ingresoCorregido = parseFloat(p.importe) - parseFloat(ventaPacksBar);\r\n else if (p.iTipoZona === 5 && p.iKind === 3) p.ingresoCorregido = parseFloat(p.importe);// + importeGastosGeneral;\r\n else p.ingresoCorregido = parseFloat(p.importe);\r\n total += parseFloat(p.ingresoCorregido);\r\n });\r\n conceptoIngresos.total = total;\r\n }\r\n\r\n if (conceptoPagos !== undefined) {\r\n let total = 0.0;\r\n conceptoPagos.productos.forEach(p => {\r\n if (p.iTipoZona === 0 && p.iKind === 6) p.cobroCorregido = parseFloat(p.importe) - parseFloat(ventaPacksBar);\r\n else if (p.iTipoZona === 1 && p.iKind === 6) p.cobroCorregido = parseFloat(p.importe) + parseFloat(ventaPacksBar);\r\n else p.cobroCorregido = parseFloat(p.importe);\r\n total += parseFloat(p.cobroCorregido);\r\n });\r\n conceptoPagos.total = total;\r\n }\r\n\r\n if (conceptoIngresos !== undefined && conceptoPagos !== undefined) {\r\n caja.descuadre = conceptoPagos.total - conceptoIngresos.total;\r\n if (Math.abs(caja.descuadre) < 0.0001) caja.descuadre = 0.0;\r\n //if (caja.iTipoZona === 0 || caja.iTipoZona === 1) descuadreBarBolera += caja.descuadre;\r\n\r\n switch (caja.iTipoZona) {\r\n case 0: // Bolera\r\n descuadreBolera += caja.descuadre;\r\n cajaBolera = caja.cajaId;\r\n break;\r\n case 1: // Bar\r\n descuadreBar += caja.descuadre;\r\n cajaBar = caja.cajaId;\r\n break;\r\n case 5: // Arcade\r\n descuadreArcade += caja.descuadre;\r\n cajaArcade = caja.cajaId;\r\n break;\r\n default: break;\r\n }\r\n\r\n };\r\n\r\n });\r\n\r\n this.setState({\r\n ...this.state,\r\n datosCierre: datosCierre,\r\n descuadreBarBolera: descuadreBarBolera,\r\n descuadreBolera: descuadreBolera, cajaBolera: cajaBolera,\r\n descuadreBar: descuadreBar, cajaBar: cajaBar,\r\n descuadreArcade: descuadreArcade, cajaArcade: cajaArcade\r\n });\r\n\r\n }\r\n\r\n calculateTotal = (rows) => {\r\n let total = 0;\r\n rows.forEach((r) => {\r\n total += parseInt(r.numPartidas);\r\n })\r\n return total;\r\n };\r\n\r\n\r\n getPartidasPorTipo = () => {\r\n\r\n let URL = 'VPartidaPorTipo?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia;\r\n\r\n getData(URL,\r\n (response) => {\r\n this.setState({ ...this.state, partidas: this.calculateTotal(response.data) });\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'error obteniendo las partidas por tipo'\r\n }, 'error-cierre-diario-resumen-get-partidas', false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n\r\n };\r\n\r\n\r\n compareDescr = (a, b) => {\r\n if (a.descr < b.descr) return 1;\r\n if (a.descr > b.descr) return -1;\r\n return 0;\r\n }\r\n\r\n compareProductos = (a, b) => {\r\n if (a.producto < b.producto) return 1;\r\n if (a.producto > b.producto) return -1;\r\n if (a.iTipoZona < b.iTipoZona) return -1;\r\n if (a.iTipoZona > b.iTipoZona) return 1;\r\n if (a.iKind < b.iKind) return -1;\r\n if (a.iKind > b.iKind) return 1;\r\n return 0;\r\n }\r\n\r\n generateCierreDiarioControls = () => {\r\n\r\n let ventaPacksBar = 0.0;\r\n const packsBar = this.props.datosCierreDiario.find(p => p.iTipoZona === 1 && p.iKind === -8);\r\n if (packsBar !== undefined) {\r\n ventaPacksBar = packsBar.importe;\r\n };\r\n\r\n const { classes } = this.props;\r\n\r\n let datos = [];\r\n this.state.datosCierre.forEach(d => datos.push(d));\r\n\r\n return datos.map((caja, i) => {\r\n\r\n if (caja.conceptos[0] === undefined || caja.conceptos[1] === undefined) {\r\n return (
);\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n {caja.descr}\r\n\r\n
\r\n {caja.partidas ? 'Partidas:' : ''}\r\n {caja.partidas ? : ''}\r\n
\r\n
\r\n\r\n
\r\n {caja.iTipoZona !== 9 ?\r\n
\r\n Descuadre:\r\n \r\n \r\n \r\n
\r\n :
}\r\n
\r\n
\r\n
\r\n\r\n\r\n {this.generateConceptos(caja, ventaPacksBar, i)}\r\n
\r\n );\r\n\r\n });\r\n\r\n };\r\n\r\n generateConceptos = (caja, ventaPacksBar, i) => {\r\n\r\n if (caja.conceptos[0] !== undefined && caja.conceptos[1] !== undefined) {\r\n\r\n const conceptoIngresos = caja.conceptos[0];\r\n const conceptoPagos = caja.conceptos[1];\r\n\r\n return (\r\n
\r\n
\r\n {this.generateConceptosIngresos(conceptoIngresos, caja, ventaPacksBar, i)}\r\n
\r\n\r\n
\r\n {this.generateConceptosPagos(conceptoPagos, caja, ventaPacksBar, i)}\r\n
\r\n
\r\n );\r\n }\r\n };\r\n\r\n generateConceptosIngresos = (conceptoIngresos, caja, ventaPacksBar, i) => {\r\n\r\n if (conceptoIngresos === undefined) {\r\n return (
);\r\n };\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n \r\n\r\n
\r\n {conceptoIngresos.concepto} \r\n\r\n
\r\n Total:\r\n\r\n \r\n
\r\n\r\n
\r\n {this.generateProductosIngresos(conceptoIngresos.productos, caja, ventaPacksBar)}\r\n
\r\n\r\n );\r\n };\r\n\r\n generateConceptosPagos = (conceptoPagos, caja, ventaPacksBar, i) => {\r\n if (conceptoPagos === undefined) {\r\n return (
);\r\n };\r\n\r\n const { classes } = this.props;\r\n return (\r\n\r\n \r\n\r\n
\r\n {conceptoPagos.concepto}\r\n\r\n
\r\n Total:\r\n\r\n \r\n
\r\n
\r\n\r\n {this.generateProductosPagos(conceptoPagos.productos, caja, ventaPacksBar)}\r\n
\r\n\r\n );\r\n };\r\n\r\n generateProductosIngresos = (productos, caja, ventaPacksBar) => {\r\n\r\n const { classes } = this.props;\r\n\r\n const tooltipText = caja.iTipoZona === 5 ? \"Ingreso corregido con gastos de caja general\" : \"Ingreso corregido con ventas packs de bar\";\r\n\r\n return (\r\n
\r\n\r\n
\r\n
Concepto Ingreso
\r\n
Ingreso Inicial
\r\n \r\n
Ingreso Corregido
\r\n
\r\n
\r\n\r\n {productos.map((p, i) => {\r\n const { producto, importe, ingresoCorregido } = p;\r\n\r\n return (\r\n
\r\n
{producto ? producto : ''}
\r\n
\r\n
\r\n
\r\n );\r\n\r\n })}\r\n\r\n
\r\n );\r\n };\r\n\r\n generateProductosPagos = (productos, cajaid, ventaPacksBar) => {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n
\r\n
Concepto Cobro
\r\n
Cobro Input
\r\n \r\n
Cobro Corregido
\r\n
\r\n
\r\n\r\n {productos.map((p, i) => {\r\n const { producto, importe, cobroCorregido } = p;\r\n return (\r\n
\r\n
{producto ? producto : ''}
\r\n
\r\n
\r\n
\r\n );\r\n\r\n })}\r\n\r\n
\r\n );\r\n };\r\n\r\n\r\n renderResumen = () => {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {this.props.resumenCierreDiario.map((itemResume, i) => {\r\n\r\n let styleClass = classes.typoOK;\r\n if (itemResume.iError === 1) {\r\n styleClass = classes.typoError;\r\n }\r\n else if (itemResume.iError === 2) {\r\n styleClass = classes.typoDefault;\r\n }\r\n\r\n return (\r\n {itemResume.mensaje}\r\n )\r\n\r\n })}\r\n \r\n )\r\n }\r\n\r\n\r\n modifyValue = (v, producto) => {\r\n this.props.modifyDatosCierreDiario({ ...producto, importe: v });\r\n };\r\n\r\n cerrarDia = () => {\r\n\r\n this.setState({ ...this.state, showSpinner: true });\r\n\r\n this.props.cerrarDiaCierreDiario(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia, () => {\r\n\r\n // this.setState({ ...this.state, showSpinner: true });\r\n\r\n const win = window.open(process.env.PUBLIC_URL + '/loading_report.html', '_blank');\r\n\r\n let url = '';\r\n\r\n createReport(\r\n {\r\n reportDefinition: { id: 1 },\r\n values: {\r\n centroId: this.props.centroDiaSelected.centro.id,\r\n iniDate: this.props.centroDiaSelected.dia,\r\n page: -1\r\n }\r\n },\r\n \"PDF\",\r\n this.props.user, '')\r\n .then(response => {\r\n url = window.URL.createObjectURL(new Blob([response.data], { type: \"application/pdf\" }));\r\n win.location.href = url;\r\n }).catch(error => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR generating PDF'\r\n }, 'error-opem-report-pdf', false, false);\r\n }).then(() => {\r\n this.setState({ ...this.state, showSpinner: false });\r\n });\r\n\r\n });\r\n }\r\n\r\n // okDescuadre = (observaciones) => {\r\n\r\n // let obs_url = 'DEArqueos/ObservacionesCajaGeneral?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia;\r\n\r\n // postData(obs_url,\r\n // () => {\r\n // this.cerrarDia();\r\n // },\r\n // () => {\r\n // this.props.openDialog('SimpleMessage', {\r\n // message: 'ERROR actualizando observaciones'\r\n // }, 'error-updating-observaciones', false, 'sm');\r\n // },\r\n // { \"obs\": observaciones },\r\n // this.props.user\r\n // );\r\n\r\n // }\r\n\r\n // entrarDescuadre = () => {\r\n\r\n // let obs = '';\r\n\r\n // let obs_url = 'DEArqueos/ArqueoIngresosBanco?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia;\r\n\r\n // getData(obs_url,\r\n // (response) => {\r\n // obs = response.data.observDescuadre;\r\n // this.props.openDialog('TextBoxDialog', {\r\n // okHandler: this.okDescuadre,\r\n // title: 'Descuadre',\r\n // label: 'Observaciones de descuadre',\r\n // obs: obs,\r\n // }, 'cierre-diario-observaciones-descuadre', false, 'xs');\r\n // },\r\n // (error) => {\r\n // this.props.openDialog('SimpleMessage', {\r\n // message: 'error obteniendo observaciones'\r\n // }, 'error-cierre-diario-resumen-arqueo-banco', false, 'sm');\r\n // },\r\n // this.props.user\r\n // );\r\n\r\n\r\n // }\r\n\r\n\r\n obtenerObservacionesPorDescuadre = () => {\r\n\r\n let obs = '';\r\n\r\n let obs_url = 'DEArqueos/ObservacionesArqueos?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia;\r\n\r\n getData(obs_url,\r\n (response) => {\r\n obs = response.data.arqueos;\r\n this.props.openDialog('CierreDiarioObservaciones', {\r\n okHandler: this.guardarObservacionesPorDescuadre,\r\n obs: obs,\r\n descuadreBar: this.state.descuadreBar,\r\n descuadreBolera: this.state.descuadreBolera,\r\n descuadreArcade: this.state.descuadreArcade,\r\n cajaBolera: this.state.cajaBolera,\r\n cajaBar: this.state.cajaBar,\r\n cajaArcade: this.state.cajaArcade,\r\n }, 'cierre-diario-observaciones-descuadre', false, 'xs');\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'error obteniendo observaciones'\r\n }, 'error-cierre-diario-resumen-arqueo-banco', false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n\r\n guardarObservacionesPorDescuadre = (observaciones) => {\r\n\r\n let obs_url = 'DEArqueos/ObservacionesArqueos?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia;\r\n\r\n postData(obs_url,\r\n () => {\r\n this.cerrarDia();\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR actualizando observaciones'\r\n }, 'error-updating-observaciones', false, 'sm');\r\n },\r\n observaciones,\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n\r\n hanldeOKClick = () => {\r\n if (!this.props.isDiaCerrado) {\r\n //this.props.cerrarDiaCierreDiario(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia, () => {\r\n if (Math.abs(this.state.descuadreBar) >= 5 || Math.abs(this.state.descuadreBolera) >= 5 || Math.abs(this.state.descuadreArcade) >= 5) {\r\n this.obtenerObservacionesPorDescuadre();\r\n }\r\n else {\r\n this.cerrarDia();\r\n }\r\n //});\r\n }\r\n else {\r\n this.props.unlockCierreDiario(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia);\r\n this.props.nextStep();\r\n }\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n if (!this.state.showSpinner) {\r\n return (\r\n
\r\n {this.renderResumen()}\r\n {this.generateCierreDiarioControls()}\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nCierreDiarioResumen.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isDiaCerrado: PropTypes.bool.isRequired,\r\n datosCierreDiario: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n\r\n\r\n //dispatch\r\n getResumenCierreDiario: PropTypes.func.isRequired,\r\n getDatosCierreDiario: PropTypes.func.isRequired,\r\n modifyDatosCierreDiario: PropTypes.func.isRequired,\r\n cerrarDiaCierreDiario: PropTypes.func.isRequired,\r\n unlockCierreDiario: PropTypes.func.isRequired,\r\n prevStep: PropTypes.func.isRequired,\r\n\r\n //parameters\r\n\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected,\r\n datosCierreDiario: state.datosCierreDiario.datos,\r\n resumenCierreDiario: state.resumenCierreDiario.resumen,\r\n isLoading: state.resumenCierreDiario.isLoading,\r\n isDiaCerrado: state.centroDiaSelected.isDiaCerrado,\r\n userProfile: state.userProfile,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n getResumenCierreDiario,\r\n cerrarDiaCierreDiario,\r\n unlockCierreDiario,\r\n openDialog,\r\n hideDialog\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(CierreDiarioResumen));\r\n","//el cierre diario se componde de 3 componentes:\r\n// - CierreDiarioDatos\r\n// - CierreDiarioOtrosDatos\r\n// - CierreDiarioResumen\r\n// Se muestra un componente Stepper de Material-ui que permite cambiuar de componente cuando el día está cerrado. \r\n// Si el día no está cerrado la navegación se hace mediante los botones de guartdar de cada uno de estos componentes.\r\n\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport StepButton from '@material-ui/core/StepButton';\r\n\r\n//actions:\r\nimport { navigate, openDialog } from '../../actions';\r\n\r\n//components:\r\nimport CierreDiarioDatos from './cierre_diario_datos';\r\nimport CierreDiarioOtrosDatos from './cierre_diario_otros_datos';\r\nimport CierreDiarioResumen from './cierre_diario_resumen';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n stepperContainer: {\r\n padding: '5px 25px'\r\n },\r\n backButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n alternativeLabel: {},\r\n labelContainer: {\r\n \"& $alternativeLabel\": {\r\n fontWeight: 600,\r\n }\r\n },\r\n icon: {\r\n color: 'silver',\r\n },\r\n textIcon: {\r\n color: 'white',\r\n fontWeight: 800\r\n }\r\n});\r\n\r\n// function getSteps() {\r\n// return ['Datos Cierre Diario', 'Otros Datos', 'Resumen y Cierre'];\r\n// }\r\n\r\n// function getStepContent(stepIndex) {\r\n// switch (stepIndex) {\r\n// case 0:\r\n// return ;\r\n// case 1:\r\n// return ;\r\n// case 2:\r\n// return ;\r\n// default:\r\n// return 'Unknown stepIndex';\r\n// }\r\n// }\r\n\r\nclass AccCierreDiario extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n activeStep: 0,\r\n first: true\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n };\r\n\r\n componentDidUpdate = (prevProps, prevState) => {\r\n\r\n if (prevProps.navigation !== this.props.navigation) {\r\n if (this.state.activeStep !== 0)\r\n this.setState({ ...this.state, activeStep: 0 }); //if the user clicks the left drawer option we return to the first step\r\n }\r\n\r\n }\r\n\r\n getSteps = () => {\r\n return ['Datos Cierre Diario', 'Otros Datos', 'Resumen y Cierre'];\r\n };\r\n\r\n getStepContent = (stepIndex) => {\r\n switch (stepIndex) {\r\n case 0:\r\n return ;\r\n case 1:\r\n return ;\r\n case 2:\r\n return ;\r\n default:\r\n return 'Unknown stepIndex';\r\n };\r\n };\r\n\r\n\r\n handleNext = () => {\r\n if (this.state.activeStep + 1 === this.getSteps().length) {\r\n this.setState(state => ({\r\n activeStep: 0,\r\n first: false\r\n }));\r\n }\r\n else {\r\n this.setState(state => ({\r\n activeStep: state.activeStep + 1,\r\n first: false\r\n }));\r\n }\r\n };\r\n\r\n handleStep = step => () => {\r\n this.setState({\r\n activeStep: step,\r\n first: false\r\n });\r\n };\r\n\r\n handleBack = () => {\r\n this.setState(state => ({\r\n activeStep: state.activeStep - 1,\r\n first: false\r\n }));\r\n };\r\n\r\n handleReset = () => {\r\n this.setState({\r\n activeStep: 0,\r\n first: false\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const steps = this.getSteps();\r\n const { activeStep } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {steps.map((label, index) => (\r\n \r\n {this.props.centroDiaSelected.isDiaCerrado ?\r\n \r\n {label}\r\n \r\n :\r\n {label}\r\n }\r\n \r\n ))}\r\n \r\n
\r\n {this.state.activeStep === steps.length ? (\r\n
\r\n All steps completed\r\n \r\n
\r\n ) : (\r\n
\r\n {this.getStepContent(activeStep)}\r\n {/*
\r\n Back\r\n \r\n
*/}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nAccCierreDiario.propTypes = {\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected,\r\n navigation: state.navigation\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate, openDialog\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(AccCierreDiario));\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\n// import update from 'immutability-helper';\r\nimport uuidv4 from 'uuid';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { FormControl, Select, InputLabel } from '@material-ui/core';\r\nimport Icon from '@material-ui/core/Icon';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Fade from '@material-ui/core/Fade';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport DatePicker from '../../components/utils/DatePicker';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog } from '../../actions';\r\nimport {\r\n getMaquinasCentroOrigen,\r\n getMaquinasCentroDestino,\r\n moveMaquinaToCentroDestino,\r\n} from '../../actions/maquina_detalle_actions';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n container: {\r\n margin: '145px auto 30px',\r\n height: 450,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n items: {\r\n display: 'flex',\r\n justifyContent: 'space-around',\r\n },\r\n select: {\r\n minWidth: 135,\r\n margin: '0 auto 15px',\r\n },\r\n centreButton: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n button: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n label: {\r\n marginTop: 15,\r\n cursor: 'pointer',\r\n },\r\n gridContainer: {\r\n marginTop: 15,\r\n width: '44%',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: 'white',\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass MoverMaquina extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n IdSelectedCentroOrigen: 1,\r\n IdSelectedCentroDestino: 1,\r\n fchaCambio: this.props.dia,\r\n rowsSelected: [],\r\n // disabledButton: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(''); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getMaquinasCentroOrigen(this.state.IdSelectedCentroOrigen);\r\n this.props.getMaquinasCentroDestino(this.state.IdSelectedCentroDestino);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (\r\n prevState.IdSelectedCentroOrigen !==\r\n this.state.IdSelectedCentroOrigen ||\r\n this.props.refreshOrigen\r\n )\r\n this.props.getMaquinasCentroOrigen(\r\n this.state.IdSelectedCentroOrigen,\r\n );\r\n else if (\r\n prevState.IdSelectedCentroDestino !==\r\n this.state.IdSelectedCentroDestino ||\r\n this.props.refreshDestino\r\n ) {\r\n this.props.getMaquinasCentroDestino(\r\n this.state.IdSelectedCentroDestino,\r\n );\r\n\r\n if (this.props.moveSuccess) {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message:\r\n 'Máquinas movidas con éxito al centro ' +\r\n this.props.centros.find(\r\n c =>\r\n c.id ===\r\n parseInt(prevState.IdSelectedCentroDestino),\r\n ).centro,\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n }\r\n }\r\n }\r\n\r\n handleChange = (event, field) => {\r\n this.setState({\r\n ...this.state,\r\n [field]: event.target.value ? event.target.value : 1,\r\n });\r\n };\r\n handleChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n compareCentros = (a, b) => {\r\n if (a.centro < b.centro) return -1;\r\n if (a.centro > b.centro) return 1;\r\n return 0;\r\n };\r\n\r\n centroSelectList = () => {\r\n return [\r\n ...this.props.centros.filter(\r\n c => c.isGroup === false && c.activo === 1,\r\n ),\r\n ]\r\n .sort(this.compareCentros)\r\n .map(centro => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n handleSelection = rows => {\r\n this.setState({ rowsSelected: rows });\r\n };\r\n\r\n onclickButton = () => {\r\n if (this.disableButton()) {\r\n return true;\r\n } else {\r\n this.props.openDialog(\r\n 'ConfirmationDialog',\r\n {\r\n message:\r\n '¿Desea mover las máquinas seleccionadas del centro ' +\r\n this.props.centros.find(\r\n c =>\r\n c.id ===\r\n parseInt(this.state.IdSelectedCentroOrigen),\r\n ).centro +\r\n ' al centro ' +\r\n this.props.centros.find(\r\n c =>\r\n c.id ===\r\n parseInt(this.state.IdSelectedCentroDestino),\r\n ).centro +\r\n '?',\r\n acceptHandler: () => {\r\n const maquinasIds = this.state.rowsSelected\r\n ? this.state.rowsSelected.map(\r\n index => this.props.maquinasOrigen[index].id,\r\n )\r\n : [];\r\n\r\n if (maquinasIds)\r\n this.props.moveMaquinaToCentroDestino(\r\n maquinasIds,\r\n this.state.IdSelectedCentroOrigen,\r\n this.state.IdSelectedCentroDestino,\r\n this.state.fchaCambio,\r\n );\r\n\r\n this.setState({ maquinasIds: [], rowsSelected: [] });\r\n },\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n }\r\n };\r\n\r\n disableButton = () => {\r\n if (\r\n this.state.IdSelectedCentroOrigen !==\r\n this.state.IdSelectedCentroDestino &&\r\n this.state.rowsSelected.length &&\r\n this.state.fchaCambio !== undefined &&\r\n this.state.fchaCambio !== ''\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n {/* upper selects and date: */}\r\n
\r\n \r\n CENTRO ORIGEN\r\n\r\n \r\n this.handleChange(\r\n event,\r\n 'IdSelectedCentroOrigen',\r\n )\r\n }\r\n >\r\n {this.centroSelectList()}\r\n \r\n \r\n \r\n \r\n {/* this.handleChange(event, 'fchaCambio')}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleChangeDate(\r\n d.toISOString().slice(0, 10),\r\n 'fchaCambio',\r\n )\r\n }\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n CENTRO DESTINO\r\n\r\n \r\n this.handleChange(\r\n event,\r\n 'IdSelectedCentroDestino',\r\n )\r\n }\r\n >\r\n {this.centroSelectList()}\r\n \r\n \r\n
\r\n\r\n {/* grids and middlebutton: */}\r\n
\r\n
\r\n {this.props.maquinasOrigen &&\r\n !this.props.isLoadingOrigen ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n\r\n {/* middle button: */}\r\n
\r\n \r\n {\r\n this.onclickButton();\r\n }}\r\n >\r\n \r\n \r\n label_important\r\n \r\n \r\n \r\n MOVER\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n {this.props.maquinasDestino &&\r\n !this.props.isLoadingDestino ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nMoverMaquina.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n maquinasOrigen: PropTypes.array.isRequired,\r\n dia: PropTypes.string.isRequired,\r\n refreshOrigen: PropTypes.bool.isRequired,\r\n isLoadingOrigen: PropTypes.bool.isRequired,\r\n maquinasDestino: PropTypes.array.isRequired,\r\n refreshDestino: PropTypes.bool.isRequired,\r\n isLoadingDestino: PropTypes.bool.isRequired,\r\n moveSuccess: PropTypes.bool,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getMaquinasCentroOrigen: PropTypes.func.isRequired,\r\n getMaquinasCentroDestino: PropTypes.func.isRequired,\r\n moveMaquinaToCentroDestino: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n //maquinasOrigen:\r\n maquinasOrigen: state.moverMaquinasOrigen.maquinas,\r\n dia: state.centroDiaSelected.dia,\r\n refreshOrigen: state.moverMaquinasOrigen.refresh,\r\n isLoadingOrigen: state.moverMaquinasOrigen.isLoading,\r\n //maquinasDestino:\r\n maquinasDestino: state.moverMaquinasDestino.maquinas,\r\n refreshDestino: state.moverMaquinasDestino.refresh,\r\n isLoadingDestino: state.moverMaquinasDestino.isLoading,\r\n moveSuccess: state.moverMaquinasDestino.moveSuccess,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n navigate,\r\n openDialog,\r\n hideDialog,\r\n getMaquinasCentroOrigen,\r\n getMaquinasCentroDestino,\r\n moveMaquinaToCentroDestino,\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps,\r\n)(withStyles(styles, { withTheme: true })(MoverMaquina));\r\n","//muestra una tabla con el total de lecturas de Euros, tokens y tickets de todas las máquinas para cada fecha dentro de la semana \r\n// (normalemte solo habrá una fila para el día de cierre semanal, que es cuando se introducen las lecturas de las máquinas)\r\n// cada una de las filas de esta tabla tiene un botón de editar que muestra el componente CierreSemanalLecturasArcade en una ventana modal\r\n// con la lista de máquinas y sus valores\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//import { modifyDatosCierreDiario, getArtGastosCentro, getTipogastosCierre } from '../../actions/cierreDiarioActions';\r\nimport { openDialog } from '../../actions/index';\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport grey from '@material-ui/core/colors/grey';\r\nimport { Typography } from '@material-ui/core';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n marginTop: theme.spacing(1),\r\n width: 550\r\n },\r\n button: {\r\n margin: theme.spacing(1),\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: 200,\r\n },\r\n typography: {\r\n color: theme.palette.secondary.main,\r\n margin: theme.spacing(1)\r\n }\r\n});\r\n\r\nconst CierreSemanalMaqArcade = props => {\r\n\r\n const showMaquinas = (row) => {\r\n props.openDialog('CierreSemanalLecturasArcade', { fecha: row.fecha }, uuidv4(), true, \"md\");\r\n };\r\n\r\n const { classes } = props;\r\n\r\n\r\n return (\r\n props.datosCierreSemanal.cajaIDgeneral === undefined ?\r\n '' :\r\n
\r\n {props.datosCierreSemanal.arcade ?\r\n
\r\n {'Lecturas arcade'}\r\n \r\n
\r\n : ''}\r\n
\r\n );\r\n};\r\n\r\n\r\nCierreSemanalMaqArcade.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isSemanaCerrada: PropTypes.bool.isRequired,\r\n datosCierreSemanal: PropTypes.object.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isSemanaCerrada: state.centroDiaSelected.isSemanaCerrada,\r\n datosCierreSemanal: state.datosCierreSemanal.datos,\r\n user: state.oidc.user\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog\r\n }, dispatch);\r\n}\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalMaqArcade));","// Total máquinas: Suma de las lecturas de máquinas (incluyendo billares).\r\n// Billares semana: Suma billares del cierre diario de toda la semana (MovEc).\r\n// Arcade semana: Total máquinas – Billares Semana.\r\n// Maq. Cambios: Total ingresos de máquinas de cambio (por lecturas).\r\n// Ingresos Arcade: Arqueo total de las máquinas de arcade\r\n// Ingresos Arcade 2: Arqueo operadora\r\n//\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport { modifyArqueo, modifyBanco2 } from '../../actions/cierre_semanal_actions';\r\nimport { openDialog } from '../../actions/index';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Paper, Typography, } from '@material-ui/core';\r\n//import { Tooltip, Fade } from '@material-ui/core';\r\n\r\nimport { postData } from '../../dataLib';\r\n\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: '8px 0',\r\n width: '280',\r\n },\r\n paperConcepto: {\r\n padding: 0,\r\n margin: 8,\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n },\r\n titleIngresos: {\r\n fontSize: '15px',\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: 'black',\r\n padding: '4px 2px 4px 12px',\r\n },\r\n paperItem: {\r\n margin: '0 auto',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n padding: '8px 25px',\r\n boxShadow: 'none',\r\n },\r\n containeritems: {\r\n width: '100%',\r\n margin: '8px auto',\r\n },\r\n label: {\r\n maxWidth: '50%',\r\n fontSize: 13\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 11,\r\n },\r\n input: {\r\n width: 75,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n banco: {\r\n margin: '0 5px',\r\n maxWidth: 70,\r\n },\r\n button: {\r\n padding: '0 5px',\r\n backgroundColor: theme.palette.secondary.light,\r\n color: 'inherit',\r\n borderRadius: 0,\r\n fontSize: 12,\r\n width: '35%',\r\n minWidth: 45,\r\n height: 40,\r\n '&:hover': {\r\n backgroundColor: '#cc8ebf'\r\n },\r\n boxShadow: '1px 1px 1px darkgrey',\r\n overflow: 'hidden'\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass CierreSemanalArcade extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n banco2: 0.0,\r\n updating: false\r\n };\r\n };\r\n\r\n handleImporteChange = (event) => {\r\n this.setState({ ...this.state, importe: event.target.value });\r\n };\r\n\r\n onValueChange = (value) => {\r\n this.props.modifyDatosCierreSemanal({ ...this.props.producto, importe: value });\r\n };\r\n\r\n // numberWithCommas = num => {\r\n // if(!num) return '0.00'\r\n // const numDecimals = num.toFixed(2);\r\n // return numDecimals.toString().replace(/\\./g, ',').replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\r\n // };\r\n\r\n componentDidMount() {\r\n this.setState({ ...this.state, banco2: this.props.datosCierreSemanal.bancoArcade2 });\r\n }\r\n\r\n renderItem = (label, value) => {\r\n const { classes } = this.props;\r\n return [\r\n
\r\n \r\n\r\n \r\n {label}\r\n \r\n\r\n\r\n \r\n\r\n \r\n
\r\n ];\r\n };\r\n\r\n handleBanco2Change = (event) => {\r\n this.setState({ ...this.state, banco2: event.target.value })\r\n }\r\n\r\n onValueBanco2Change = () => {\r\n this.props.modifyBanco2(this.state.banco2);\r\n }\r\n\r\n updateBanco2DB = () => {\r\n\r\n if(this.state.updating === true) return;\r\n\r\n this.setState({ ...this.state, updating: true }, () => {\r\n\r\n var url = 'CierreSemanalDatos/banco2?centro_id=' + this.props.centroDiaSelected.centro.id;\r\n url += '&date=' + this.props.centroDiaSelected.dia;\r\n url += '&importe=' + this.state.banco2;\r\n postData(\r\n url,\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'banco actualizado'\r\n }, 'banco2_actualizado', false, 'sm');\r\n this.setState({ ...this.state, updating: false });\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'error actualizando banco'\r\n }, 'banco2_actualizado_error', false, 'sm');\r\n this.setState({ ...this.state, updating: false });\r\n },\r\n {},\r\n this.props.user\r\n );\r\n });\r\n }\r\n\r\n renderBanco = () => {\r\n const { classes } = this.props;\r\n return [\r\n
\r\n \r\n\r\n Ingresos Arcade\r\n\r\n \r\n\r\n this.props.openDialog('Arqueo', {\r\n cajaId: this.props.datosCierreSemanal.cajaIDcambio,\r\n //cajaId: this.props.datosCierreSemanal.cajaIDarcade,\r\n okHandler: (total) => {\r\n this.props.modifyArqueo(total);\r\n },\r\n disabled: this.props.datosCierreSemanal.isSemanaCerrada\r\n }, uuidv4(), true, \"xs\")}\r\n >Arqueo\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n ]\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (!this.props.datosCierreSemanal.cajaIDgeneral === undefined) {\r\n return (
);\r\n }\r\n\r\n const totalMaquinas = this.props.centroDiaSelected.isSemanaCerrada ? this.props.datosCierreSemanal.totalEurosMaq : this.props.datosCierreSemanal.totalEurosMaqSinMult\r\n\r\n return (\r\n
\r\n \r\n Arcade\r\n
\r\n {this.renderItem(\"Total maquinas\", totalMaquinas)}\r\n {this.renderItem(\"Billares semana\", this.props.datosCierreSemanal.totalBillares)}\r\n {this.renderItem(\"Arcade semana\", totalMaquinas - this.props.datosCierreSemanal.totalBillares)}\r\n {this.renderItem(\"Maq. cambios\", this.props.datosCierreSemanal.totalCambio)}\r\n {this.renderItem(\"Maq. cambios compl.\", this.props.datosCierreSemanal.totalEurosMaq - this.props.datosCierreSemanal.totalBillares - this.props.datosCierreSemanal.totalCambio)}\r\n {this.renderBanco()}\r\n
\r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierreSemanalArcade.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //isSemanaCerrada: PropTypes.bool.isRequired,\r\n datosCierreSemanal: PropTypes.object.isRequired,\r\n //dispatch\r\n modifyArqueo: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n //parameters\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n //isSemanaCerrada: state.datosCierreSemanal.semanaCerrada,\r\n datosCierreSemanal: state.datosCierreSemanal.datos,\r\n user: state.oidc.user\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyArqueo,\r\n openDialog,\r\n modifyBanco2\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalArcade));","//modificar fondo final de tokens del fondo¿? para esta semana (sea lo que sea)\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { modifyVariacionTokens } from '../../actions/cierre_semanal_actions';\r\n\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Paper, Typography } from '@material-ui/core';\r\nimport grey from '@material-ui/core/colors/grey';\r\n\r\nimport IntNumberFormatInput from '../../components/int_number_input_formatter';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: '8px 0',\r\n width: '35%'\r\n },\r\n paperConcepto: {\r\n padding: 0,\r\n margin: 8,\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n },\r\n titleIngresos: {\r\n fontSize: '15px',\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: grey[600],\r\n padding: '4px 2px 4px 12px',\r\n },\r\n paperItem: {\r\n margin: '0 auto',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n padding: '8px 25px',\r\n boxShadow: 'none',\r\n },\r\n containeritems: {\r\n width: '100%',\r\n margin: '8px auto',\r\n },\r\n label: {\r\n maxWidth: '50%',\r\n fontSize: 13\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 11,\r\n height: 19\r\n },\r\n input: {\r\n width: 75,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important',\r\n },\r\n },\r\n // editableInput: {\r\n // minWidth: 65,\r\n // width: '35%',\r\n // height: 35,\r\n // [`& fieldset`]: {\r\n // borderRadius: 0,\r\n // borderColor: '#8dbb35 !important',\r\n // },\r\n // },\r\n});\r\n\r\nclass CierreSemanalTokensFondo extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n fondoInicial: this.props.datosCierreSemanal.fondoTokensIni,\r\n fondoFinal: this.props.datosCierreSemanal.fondoTokensEnd,\r\n variacion: this.props.datosCierreSemanal.fondoTokensEnd - this.props.datosCierreSemanal.fondoTokensIni,\r\n lastCentroDia: this.props.centroDiaSelected.centro.id + '_' + this.props.centroDiaSelected.dia\r\n };\r\n\r\n };\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n\r\n if (prevState.lastCentroDia !== nextProps.centroDiaSelected.centro.id + '_' + nextProps.centroDiaSelected.dia) {\r\n return {\r\n fondoInicial: nextProps.datosCierreSemanal.fondoTokensIni,\r\n fondoFinal: nextProps.datosCierreSemanal.fondoTokensEnd,\r\n variacion: nextProps.datosCierreSemanal.fondoTokensEnd - nextProps.datosCierreSemanal.fondoTokensIni,\r\n lastCentroDia: nextProps.centroDiaSelected.centro.id + '_' + nextProps.centroDiaSelected.dia\r\n };\r\n }\r\n else {\r\n return null;\r\n };\r\n\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (this.state.fondoFinal !== this.props.datosCierreSemanal.fondoTokensEnd) {\r\n this.setState({ ...this.state, fondoFinal: this.props.datosCierreSemanal.fondoTokensEnd, variacion: this.props.datosCierreSemanal.fondoTokensEnd - this.props.datosCierreSemanal.fondoTokensIni });\r\n };\r\n };\r\n\r\n renderItem = (label, value) => {\r\n const { classes } = this.props;\r\n return [\r\n
\r\n \r\n\r\n \r\n {label}\r\n \r\n\r\n \r\n \r\n
\r\n ]\r\n };\r\n\r\n handleVariacionChange = event => {\r\n this.setState({\r\n ...this.state,\r\n variacion: event.target.value,\r\n fondoFinal: parseFloat(this.state.fondoInicial) + parseFloat((event.target.value).replace(\",\", ''))\r\n });\r\n };\r\n\r\n onValueChange = value => {\r\n this.props.modifyVariacionTokens(this.state.fondoFinal);\r\n };\r\n\r\n renderVariacion = () => {\r\n const { classes } = this.props;\r\n return [\r\n
\r\n \r\n\r\n \r\n Variación Fondo\r\n \r\n\r\n this.handleVariacionChange(event)}\r\n onBlur={(event) => this.onValueChange(event.target.value)}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onValueChange(e.target.value) };\r\n }}\r\n disabled //no canviar!\r\n />\r\n \r\n
\r\n ]\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (!this.props.datosCierreSemanal.cajaIDgeneral === undefined || !this.props.datosCierreSemanal.tieneTokens) {\r\n return (
);\r\n };\r\n\r\n return (\r\n
\r\n \r\n Tokens fondo\r\n
\r\n {this.renderItem(\"Fondo inicial\", this.props.datosCierreSemanal.fondoTokensIni)}\r\n {this.renderVariacion()}\r\n {this.renderItem(\"Fondo final\", this.state.fondoFinal)}\r\n {this.renderItem(\"Entregados\", this.props.datosCierreSemanal.totalEntregado)}\r\n {this.renderItem(\"Recuperados\", this.props.datosCierreSemanal.totalTokensMaq)}\r\n
\r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierreSemanalTokensFondo.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isSemanaCerrada: PropTypes.bool.isRequired,\r\n datosCierreSemanal: PropTypes.object.isRequired,\r\n //dispatch\r\n modifyVariacionTokens: PropTypes.func.isRequired\r\n //parameters\r\n\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isSemanaCerrada: state.datosCierreSemanal.semanaCerrada,\r\n datosCierreSemanal: state.datosCierreSemanal.datos,\r\n user: state.oidc.user\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyVariacionTokens\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalTokensFondo));","//modificar fondo final de tokens del centro para esta semana\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { modifyVariacionEuros, modifyVariacionTokensCentro } from '../../actions/cierre_semanal_actions';\r\n\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Paper, Typography } from '@material-ui/core';\r\nimport grey from '@material-ui/core/colors/grey';\r\n\r\nimport IntNumberFormatInput from '../../components/int_number_input_formatter';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: '8px 0',\r\n width: '35%'\r\n },\r\n paperConcepto: {\r\n padding: 0,\r\n margin: 8,\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n },\r\n titleIngresos: {\r\n fontSize: '15px',\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: grey[600],\r\n padding: '4px 2px 4px 12px',\r\n },\r\n paperItem: {\r\n margin: '0 auto',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n padding: '8px 25px',\r\n boxShadow: 'none',\r\n },\r\n containeritems: {\r\n width: '100%',\r\n margin: '8px auto',\r\n },\r\n label: {\r\n maxWidth: '50%',\r\n fontSize: 13\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 11,\r\n height: 19\r\n },\r\n input: {\r\n width: 75,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important',\r\n },\r\n },\r\n editableInput: {\r\n width: 75,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: '#8dbb35 !important',\r\n },\r\n },\r\n});\r\n\r\nclass CierreSemanalTokensCentro extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n fondoInicial: this.props.datosCierreSemanal.fondoTokensCentroIni,\r\n fondoFinal: this.props.datosCierreSemanal.fondoTokensCentroEnd,\r\n variacion: this.props.datosCierreSemanal.fondoTokensCentroEnd - this.props.datosCierreSemanal.fondoTokensCentroIni,\r\n lastCentroDia: this.props.centroDiaSelected.centro.id + '_' + this.props.centroDiaSelected.dia\r\n };\r\n };\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n\r\n if (prevState.lastCentroDia !== nextProps.centroDiaSelected.centro.id + '_' + nextProps.centroDiaSelected.dia) {\r\n return {\r\n fondoInicial: nextProps.datosCierreSemanal.fondoTokensCentroIni,\r\n fondoFinal: nextProps.datosCierreSemanal.fondoTokensCentroEnd,\r\n variacion: nextProps.datosCierreSemanal.fondoTokensCentroEnd - nextProps.datosCierreSemanal.fondoTokensCentroIni,\r\n lastCentroDia: nextProps.centroDiaSelected.centro.id + '_' + nextProps.centroDiaSelected.dia\r\n };\r\n }\r\n else {\r\n return null;\r\n };\r\n\r\n };\r\n\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (this.state.fondoFinal !== this.props.datosCierreSemanal.fondoTokensCentroEnd) {\r\n this.setState({ ...this.state, fondoFinal: this.props.datosCierreSemanal.fondoTokensCentroEnd, variacion: this.props.datosCierreSemanal.fondoTokensCentroEnd - this.props.datosCierreSemanal.fondoTokensCentroIni });\r\n }\r\n }\r\n\r\n renderItem = (label, value) => {\r\n const { classes } = this.props;\r\n return [\r\n
\r\n \r\n\r\n \r\n {label}\r\n \r\n\r\n \r\n \r\n
\r\n ]\r\n };\r\n\r\n handleVariacionChange = event => {\r\n this.setState({\r\n ...this.state,\r\n variacion: event.target.value ? event.target.value : 0,\r\n //fondoFinal: parseFloat(this.state.fondoInicial) + parseFloat(event.target.value)\r\n });\r\n };\r\n\r\n onValueChange = value => {\r\n this.props.modifyVariacionTokensCentro(parseFloat(this.state.variacion));\r\n };\r\n\r\n renderVariacion = () => {\r\n const { classes } = this.props;\r\n return [\r\n
\r\n \r\n\r\n \r\n Variación Fondo\r\n \r\n\r\n this.handleVariacionChange(event)}\r\n onBlur={(event) => this.onValueChange(event.target.value)}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onValueChange(e.target.value) };\r\n }}\r\n disabled={this.props.isSemanaCerrada}\r\n />\r\n \r\n
\r\n ]\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (!this.props.datosCierreSemanal.cajaIDgeneral === undefined || !this.props.datosCierreSemanal.tieneTokens) {\r\n return (
);\r\n };\r\n\r\n return (\r\n
\r\n \r\n Tokens centro\r\n
\r\n {this.renderItem(\"Fondo inicial\", this.props.datosCierreSemanal.fondoTokensCentroIni)}\r\n {this.renderVariacion()}\r\n {this.renderItem(\"Fondo final\", this.state.fondoFinal)}\r\n
\r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierreSemanalTokensCentro.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isSemanaCerrada: PropTypes.bool.isRequired,\r\n datosCierreSemanal: PropTypes.object.isRequired,\r\n //dispatch\r\n modifyVariacionEuros: PropTypes.func.isRequired,\r\n modifyVariacionTokensCentro: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isSemanaCerrada: state.datosCierreSemanal.semanaCerrada,\r\n datosCierreSemanal: state.datosCierreSemanal.datos,\r\n user: state.oidc.user\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyVariacionEuros,\r\n modifyVariacionTokensCentro\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalTokensCentro));","//modificar fondo final de euros del centro para esta semana\r\n//\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { modifyVariacionEuros } from '../../actions/cierre_semanal_actions';\r\n\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Paper, Typography, } from '@material-ui/core';\r\nimport grey from '@material-ui/core/colors/grey';\r\n\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: '8px 0',\r\n width: '245'\r\n },\r\n paperConcepto: {\r\n padding: 0,\r\n margin: 8,\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n },\r\n titleIngresos: {\r\n fontSize: '15px',\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: grey[600],\r\n padding: '4px 2px 4px 12px',\r\n },\r\n paperItem: {\r\n margin: '0 auto',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n padding: '8px 25px',\r\n boxShadow: 'none',\r\n },\r\n containeritems: {\r\n width: '100%',\r\n margin: '8px auto',\r\n },\r\n label: {\r\n maxWidth: '50%',\r\n fontSize: 13\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: 8,\r\n padding: 0,\r\n fontSize: 11,\r\n height: 19\r\n },\r\n input: {\r\n width: 75,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important',\r\n },\r\n },\r\n editableInput: {\r\n width: 75,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: '#8dbb35 !important',\r\n },\r\n },\r\n});\r\n\r\nclass CierreSemanalEuros extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n fondoInicial: this.props.datosCierreSemanal.fondoEurosIni,\r\n fondoFinal: this.props.datosCierreSemanal.fondoEurosEnd,\r\n variacion: this.props.datosCierreSemanal.fondoEurosEnd - this.props.datosCierreSemanal.fondoEurosIni,\r\n lastCentroDia: this.props.centroDiaSelected.centro.id + '_' + this.props.centroDiaSelected.dia\r\n };\r\n };\r\n\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n\r\n if (prevState.lastCentroDia !== nextProps.centroDiaSelected.centro.id + '_' + nextProps.centroDiaSelected.dia) {\r\n return {\r\n fondoInicial: nextProps.datosCierreSemanal.fondoEurosIni,\r\n fondoFinal: nextProps.datosCierreSemanal.fondoEurosEnd,\r\n variacion: nextProps.datosCierreSemanal.fondoEurosEnd - nextProps.datosCierreSemanal.fondoEurosIni,\r\n lastCentroDia: nextProps.centroDiaSelected.centro.id + '_' + nextProps.centroDiaSelected.dia\r\n };\r\n }\r\n else {\r\n return null;\r\n };\r\n\r\n };\r\n\r\n renderItem = (label, value) => {\r\n const { classes } = this.props;\r\n return [\r\n
\r\n \r\n\r\n \r\n {label}\r\n \r\n\r\n \r\n \r\n
\r\n ]\r\n };\r\n\r\n handleVariacionChange = event => {\r\n this.setState({\r\n ...this.state,\r\n variacion: event.target.value,\r\n fondoFinal: parseFloat(this.state.fondoInicial) + parseFloat(event.target.value)\r\n });\r\n };\r\n\r\n onValueChange = value => {\r\n this.props.modifyVariacionEuros(this.state.fondoFinal);\r\n };\r\n\r\n renderVariacion = () => {\r\n const { classes } = this.props;\r\n return [\r\n
\r\n \r\n\r\n \r\n Variación Fondo\r\n \r\n\r\n this.handleVariacionChange(event)}\r\n onBlur={(event) => this.onValueChange(event.target.value)}\r\n onKeyPress={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); this.onValueChange(e.target.value) };\r\n }}\r\n disabled={this.props.isSemanaCerrada}\r\n />\r\n \r\n
\r\n ]\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (!this.props.datosCierreSemanal.cajaIDgeneral === undefined) {\r\n return (
);\r\n };\r\n\r\n return (\r\n
\r\n \r\n Euros\r\n
\r\n {this.renderItem(\"Fondo inicial\", this.props.datosCierreSemanal.fondoEurosIni)}\r\n {this.renderVariacion()}\r\n {this.renderItem(\"Fondo final\", this.state.fondoFinal)}\r\n
\r\n
\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCierreSemanalEuros.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isSemanaCerrada: PropTypes.bool.isRequired,\r\n datosCierreSemanal: PropTypes.object.isRequired,\r\n //dispatch\r\n modifyVariacionEuros: PropTypes.func.isRequired\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isSemanaCerrada: state.datosCierreSemanal.semanaCerrada,\r\n datosCierreSemanal: state.datosCierreSemanal.datos,\r\n user: state.oidc.user\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyVariacionEuros\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalEuros));","//En este componente se muestra:\r\n// CalendarioSemanal - Tabla resumen de los valores de cada dia de la semana para cada zona (arcade, bolera, etc...)\r\n// CierreSemanalMaqArcade - Lecturas de las máquinas de arcade de la semana (input)\r\n// CierreSemanalArcade - Totales de arcade de la semana (input)\r\n// CierreSemanalTokensFondo - Variación de fondo de los tokens ¿? viene así del TCW, mirar a que se refiere exactamente (input)\r\n// CierreSemanalTokensCentro - Variación de fondo de los tokens del centro (input)\r\n// CierreSemanalEuros - Variación de fondo de Euros del centro (input)\r\n//\r\n// Contiene un componente CentroDia que permite seleccionar el centro y la fecha de cierre ( el centro solamente si el usuario tiene permisos ). \r\n// El centro y el día están guardados en el store de la aplicación.\r\n// Se obtienen los datos mediante la acción getDatosCierreSemanal una vez hay un centro y un dia seleccionados. \r\n// La primera vez que se entra, se llama a la acción setCentroDia para obtener el ultimo día abierto para el centro seleccionado.\r\n//\r\n// Cuando se obtienen los datos de un día concreto, se llama a updateCierreSemanalBillaresDB que actualiza la información de las máquinas de billares, \r\n// dividiendo la suma del total de billares introducido en esta semana (cierre diario de cada día) entre todas las máquinas de billares\r\n// ÚNICAMENTE si las máquinas de billares tienen los ingresos a 0\r\n//\r\n//El botón de guardar llama a la acción updateCierreSemanalDatosDB y hace un nextStep del Stepper de AccCierreSemanal para que se muestre el componente CierreSemanalOtrosDatos.\r\n\r\n\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n//actions:\r\nimport { getDatosCierreSemanal, updateCierreSemanalDatosDB, resetDatosCierreSemanal, updateCierreSemanalBillaresDB } from '../../actions/cierre_semanal_actions';\r\nimport { setCentroDia } from '../../actions/centro_dia_actions';\r\nimport { openDialog } from '../../actions/index';\r\n\r\n//components:\r\nimport CentroDia from '../centro_dia';\r\nimport CierreSemanalMaqArcade from './cierre_semanal_maq_arcade';\r\nimport CierreSemanalArcade from './cierre_semanal_arcade';\r\nimport CierreSemanalTokensFondo from './cierre_semanal_tokens_fondo';\r\nimport CierreSemanalTokensCentro from './cierre_semanal_tokens_centro';\r\nimport CierreSemanalEuros from './cierre_semanal_euros';\r\nimport CalendarioSemanal from '../../components/dialogs/cierre_semanal_calendario';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: '8px 24px',\r\n margin: theme.spacing(1),\r\n flexGrow: 1,\r\n },\r\n paperCaja: {\r\n display: 'inline-flex',\r\n backgroundColor: '#E8F1D7',\r\n boxShadow: 'none',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n margin: '20px 0',\r\n padding: 10,\r\n },\r\n paperResumen: {\r\n backgroundColor: theme.palette.primary.light,\r\n boxShadow: 'none',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n margin: theme.spacing(1),\r\n marginTop: theme.spacing(2),\r\n padding: 10,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n maxWidth: 1022\r\n },\r\n paperConcepto: {\r\n padding: 0,\r\n margin: theme.spacing(1),\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n },\r\n paperZona: {\r\n padding: 0,\r\n margin: 0,\r\n borderRadius: '0px',\r\n marginBottom: 28,\r\n },\r\n titleIngresos: {\r\n fontSize: '15px',\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: theme.palette.primary.main,\r\n padding: '4px 2px 4px 12px',\r\n },\r\n titlePagos: {\r\n fontSize: '15px',\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: theme.palette.secondary.main,\r\n padding: '4px 2px 4px 12px',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n buttonCalendario: {\r\n marginTop: 'auto',\r\n marginBottom: 'auto',\r\n marginLeft: 120,\r\n //padding: '10px 4%',\r\n height: 50,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n divData: {\r\n position: 'relative'\r\n },\r\n divLecturas: {\r\n display: 'flex'\r\n },\r\n cover: {\r\n position: 'absolute',\r\n height: '100%',\r\n width: '100%',\r\n zIndex: 1,\r\n backgroundColor: '#ddd',\r\n opacity: 0.3,\r\n },\r\n});\r\n\r\nclass CierreSemanalDatos extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showSpinner: false\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n if (this.props.first) {\r\n if (this.props.centroDiaSelected.centro.id !== undefined && this.props.centroDiaSelected.dia !== '' && !this.props.centroDiaSelected.centro.isGroup) {\r\n\r\n this.props.setCentroDia(this.props.centroDiaSelected.centro.id, undefined, true);\r\n };\r\n }\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n\r\n var dt = new Date(this.props.centroDiaSelected.dia);\r\n\r\n if (prevProps.centroDiaSelected.centro !== this.props.centroDiaSelected.centro ||\r\n prevProps.centroDiaSelected.dia !== this.props.centroDiaSelected.dia) {\r\n //if (this.props.centroDiaSelected.existeCierreSemanal) {\r\n if(dt.getDay() === this.props.centroDiaSelected.centro.iDiaCierre) this.props.getDatosCierreSemanal(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia);\r\n // }\r\n // else {\r\n // this.props.openDialog('SimpleMessage', {\r\n // message: 'No es posible entrar datos si no están cerrados todos los días de la semana'\r\n // });\r\n // }\r\n };\r\n\r\n if (prevProps.isLoading === true) {\r\n if (!this.props.isLoading) this.props.updateCierreSemanalBillaresDB(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia, this.props.datosCierreSemanal.totalBillares);\r\n }\r\n\r\n if (prevProps.isLoading !== this.props.isLoading) this.setState({ showSpinner: this.props.isLoading });\r\n\r\n };\r\n\r\n hanldeOKClick = () => {\r\n\r\n if (!this.props.isSemanaCerrada) {\r\n //update cierre diario datos data\r\n this.props.updateCierreSemanalDatosDB(\r\n this.props.datosCierreSemanal,\r\n this.props.centroDiaSelected.centro.id,\r\n this.props.centroDiaSelected.dia,\r\n this.props.nextStep\r\n );\r\n }\r\n else {\r\n this.props.nextStep();\r\n }\r\n\r\n };\r\n\r\n\r\n handleCalendario = () => {\r\n\r\n this.props.openDialog('CalendarioSemanal', {\r\n centro: this.props.centroDiaSelected.centro.id,\r\n fecha: this.props.centroDiaSelected.dia,\r\n user: this.props.user\r\n }, 'dialog-calendario', true, 'lg');\r\n\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const mult_reopa = (this.props.centroDiaSelected.centro.reopa - 31162) / 100;\r\n\r\n if (this.props.datosCierreSemanal.cajaIDgeneral === undefined && !this.state.showSpinner) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n else if (this.state.showSpinner) {\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nCierreSemanalDatos.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isSemanaCerrada: PropTypes.bool.isRequired,\r\n datosCierreSemanal: PropTypes.object.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n //dispatch\r\n getDatosCierreSemanal: PropTypes.func.isRequired,\r\n updateCierreSemanalDatosDB: PropTypes.func.isRequired,\r\n //parameters\r\n\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected,\r\n datosCierreSemanal: state.datosCierreSemanal.datos,\r\n isLoading: state.datosCierreSemanal.isLoading,\r\n isSemanaCerrada: state.centroDiaSelected.isSemanaCerrada,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n getDatosCierreSemanal,\r\n updateCierreSemanalDatosDB,\r\n resetDatosCierreSemanal,\r\n updateCierreSemanalBillaresDB,\r\n setCentroDia,\r\n openDialog\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalDatos));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components\r\nimport FloatNumberFormatText from '../../../components/float_number_text_formatter';\r\nimport NeuriteGrid from '../../../components/neurite_grid';\r\n\r\n//material:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport grey from '@material-ui/core/colors/grey';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n display: 'flex',\r\n justifyContent: 'space-between'\r\n },\r\n bigTable: {\r\n margin: 0,\r\n padding: 0,\r\n height: 185,\r\n width: 810,\r\n overflow: 'hidden'\r\n },\r\n containerRightTable: {\r\n marginTop: 8,\r\n display: 'flex',\r\n fontSize: 10,\r\n border: `1px solid #dddddd`,\r\n },\r\n columnLeft: {\r\n width: 95,\r\n },\r\n columnRight: {\r\n width: 85,\r\n },\r\n gridCells: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n height: 35,\r\n width: 'inherit',\r\n padding: '0 8px',\r\n '&:nth-child(odd)': {\r\n backgroundColor: '#e8f1d7',\r\n },\r\n borderLeft: `1px solid #dddddd`,\r\n borderBottom: `1px solid #dddddd`,\r\n },\r\n gridCellsNumbers: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n fontWeight: 800,\r\n textAlign: 'right',\r\n height: 35,\r\n width: 'inherit',\r\n padding: '0 12px',\r\n '&:nth-child(odd)': {\r\n backgroundColor: '#e8f1d7',\r\n },\r\n borderLeft: `1px solid #dddddd`,\r\n borderBottom: `1px solid #dddddd`,\r\n borderRight: `1px solid #dddddd`,\r\n },\r\n gridCellsNumbersGreen: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n fontWeight: 800,\r\n textAlign: 'right',\r\n height: 35,\r\n width: 'inherit',\r\n padding: '0 12px',\r\n backgroundColor: 'green',\r\n color: 'white',\r\n borderLeft: `1px solid #dddddd`,\r\n borderBottom: `1px solid #dddddd`,\r\n borderRight: `1px solid #dddddd`,\r\n },\r\n gridCellsNumbersRed: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n fontWeight: 800,\r\n textAlign: 'right',\r\n height: 35,\r\n width: 'inherit',\r\n padding: '0 12px',\r\n backgroundColor: 'red',\r\n color: 'white',\r\n borderLeft: `1px solid #dddddd`,\r\n borderBottom: `1px solid #dddddd`,\r\n borderRight: `1px solid #dddddd`,\r\n },\r\n headerCell: {\r\n background: '#f9f9f9',\r\n fontSize: 10,\r\n fontWeight: 800,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n height: 35,\r\n width: 'inherit',\r\n padding: '0 8px',\r\n borderBottom: `1px solid #dddddd`,\r\n borderLeft: `1px solid #dddddd`,\r\n },\r\n});\r\n\r\n\r\nclass TopSection extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n repCierraDia: !this.props.otrosDatosCierreSemanal.repCierraDia ? [] : this.props.otrosDatosCierreSemanal.repCierraDia,\r\n cambioCompl: !this.props.datosCierreSemanal ? 0.0 : this.props.datosCierreSemanal.totalEurosMaq - this.props.datosCierreSemanal.totalBillares - this.props.datosCierreSemanal.totalCambio\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreSemanal !== this.props.otrosDatosCierreSemanal) {\r\n\r\n this.setState({\r\n repCierraDia: !this.props.otrosDatosCierreSemanal.repCierraDia ? [] : this.props.otrosDatosCierreSemanal.repCierraDia,\r\n cambioCompl: !this.props.datosCierreSemanal ? 0.0 : this.props.datosCierreSemanal.totalEurosMaq - this.props.datosCierreSemanal.totalBillares - this.props.datosCierreSemanal.totalCambio\r\n });\r\n };\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n /* const rows = this.props.otrosDatosCierreSemanal.repCierraDia.map((r, i) => {\r\n if (i == 0) return { ...r, arcade: r.arcade + this.state.cambioCompl };\r\n else return r;\r\n }); */\r\n\r\n return (\r\n
\r\n
\r\n {this.props.otrosDatosCierreSemanal.repCierraDia ?\r\n \r\n : ''}\r\n
\r\n\r\n {this.props.otrosDatosCierreSemanal.repCierraDia ?\r\n
\r\n
\r\n {/* first column */}\r\n
Diferencias
\r\n {this.props.otrosDatosCierreSemanal.repCierraDia.map((row, i) => (
{row.diario}
))}\r\n
\r\n\r\n
\r\n {/* second column */}\r\n
Diferencia
\r\n
\r\n\r\n
0 ?\r\n classes.gridCellsNumbersGreen : classes.gridCellsNumbersRed}>\r\n \r\n
\r\n
0 ?\r\n classes.gridCellsNumbersGreen : classes.gridCellsNumbersRed}>\r\n \r\n
\r\n {this.props.otrosDatosCierreSemanal.repCierraDia[3] ?\r\n
0 ?\r\n classes.gridCellsNumbersGreen : classes.gridCellsNumbersRed}>\r\n \r\n
\r\n :\r\n
\r\n }\r\n
\r\n
\r\n : ''\r\n }\r\n
\r\n\r\n );\r\n };\r\n};\r\n\r\n\r\nTopSection.propTypes = {\r\n otrosDatosCierreSemanal: PropTypes.object.isRequired,\r\n datosCierreSemanal: PropTypes.object.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n otrosDatosCierreSemanal: state.otrosDatosCierreSemanal.otrosdatos,\r\n datosCierreSemanal: state.datosCierreSemanal.datos,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(withStyles(styles, { withTheme: true })(TopSection));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n//material ui components:\r\nimport { TextField } from '@material-ui/core';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport grey from '@material-ui/core/colors/grey';\r\n\r\n//actions:\r\nimport { modifyFieldOtrosDatosSemanal } from '../../../actions/cierre_semanal_actions';\r\n\r\n//components IntNumberFormatInput\r\nimport FloatNumberFormatInput from '../../../components/float_number_input_formatter';\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: 700,\r\n },\r\n paperFull: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '100%',\r\n marginBottom: 10,\r\n height: 105,\r\n borderBottom: `2px solid ${grey[500]}`,\r\n borderRight: `2px solid ${grey[500]}`,\r\n backgroundColor: 'white',\r\n },\r\n title: {\r\n fontSize: 14,\r\n fontWeight: '500',\r\n color: 'white',\r\n padding: '4px 2px 4px 12px',\r\n backgroundColor: grey[600],\r\n margin: 0,\r\n },\r\n containerThirdRow: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n marginBottom: 10,\r\n },\r\n thirRowElement: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: 'white',\r\n // width: '38%',\r\n height: 220,\r\n borderBottom: `2px solid ${grey[500]}`,\r\n borderRight: `2px solid ${grey[500]}`,\r\n },\r\n thirdRowCenter: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n width: '20%',\r\n },\r\n halfPaperInsidePanel: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: 'white',\r\n height: 95,\r\n borderBottom: `2px solid ${grey[500]}`,\r\n borderRight: `2px solid ${grey[500]}`,\r\n '&:first-child': {\r\n marginBottom: 10,\r\n }\r\n },\r\n halfPaper: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: 'white',\r\n height: 105,\r\n borderBottom: `2px solid ${grey[500]}`,\r\n borderRight: `2px solid ${grey[500]}`,\r\n '&:first-child': {\r\n marginBottom: 10,\r\n }\r\n },\r\n textfieldHalf: {\r\n height: 70,\r\n margin: '0 auto',\r\n width: '85%',\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n } \r\n },\r\n inputpropHalf: {\r\n margin: 'auto 0',\r\n padding: '8px 0',\r\n fontSize: 11,\r\n height: '50%',\r\n },\r\n textfieldthirdRowSide: {\r\n display: 'flex',\r\n height: '100%',\r\n margin: '0 auto',\r\n padding: '0 8px',\r\n width: '98%',\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n \r\n },\r\n inputthirdRowSide: {\r\n display: 'flex',\r\n alignItems: 'start',\r\n margin: '15px 0',\r\n padding: '5px 8px',\r\n fontSize: 11,\r\n height: '90%',\r\n },\r\n textField: {\r\n display: 'flex',\r\n height: '100%',\r\n margin: '0 auto',\r\n width: '97%',\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n inputprop: {\r\n display: 'flex',\r\n alignItems: 'start',\r\n margin: '15px 0',\r\n padding: '5px 8px',\r\n fontSize: 11,\r\n height: 45,\r\n },\r\n greenTitle: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n purpleTitle: {\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n blackTitle: {\r\n backgroundColor: 'black',\r\n },\r\n lastRow: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n paperlast: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '49%',\r\n marginBottom: 10,\r\n height: 105,\r\n borderBottom: `2px solid ${grey[500]}`,\r\n borderRight: `2px solid ${grey[500]}`,\r\n backgroundColor: 'white',\r\n },\r\n textfieldLast: {\r\n width: '93%',\r\n },\r\n righText:{\r\n textAlign: 'right'\r\n }\r\n\r\n});\r\n\r\n\r\nclass CentreSection extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n obsResumenGeneral: !this.props.otrosDatosCierreSemanal.obsResumenGeneral ? '' : this.props.otrosDatosCierreSemanal.obsResumenGeneral,\r\n obsResumenBolera: !this.props.otrosDatosCierreSemanal.obsResumenBolera ? '' : this.props.otrosDatosCierreSemanal.obsResumenBolera,\r\n obsResumenBar: !this.props.otrosDatosCierreSemanal.obsResumenBar ? '' : this.props.otrosDatosCierreSemanal.obsResumenBar,\r\n hojasReclamacion: !this.props.otrosDatosCierreSemanal.hojasReclamacion ? '' : this.props.otrosDatosCierreSemanal.hojasReclamacion,\r\n obsResumenAniversarios: !this.props.otrosDatosCierreSemanal.obsResumenAniversarios ? '' : this.props.otrosDatosCierreSemanal.obsResumenAniversarios,\r\n obsResumenArcade: !this.props.otrosDatosCierreSemanal.obsResumenArcade ? '' : this.props.otrosDatosCierreSemanal.obsResumenArcade,\r\n obsResumenRRHH: !this.props.otrosDatosCierreSemanal.obsResumenRRHH ? '' : this.props.otrosDatosCierreSemanal.obsResumenRRHH,\r\n obsResumenInstalaciones: !this.props.otrosDatosCierreSemanal.obsResumenInstalaciones ? '' : this.props.otrosDatosCierreSemanal.obsResumenInstalaciones,\r\n ventaNormalBar: !this.props.otrosDatosCierreSemanal.ventaNormalBar ? 0 : this.props.otrosDatosCierreSemanal.ventaNormalBar,\r\n entrKids: !this.props.otrosDatosCierreSemanal.entrKids ? 0 : this.props.otrosDatosCierreSemanal.entrKids,\r\n resenyas123: !this.props.otrosDatosCierreSemanal.resenyas123 ? 0 : this.props.otrosDatosCierreSemanal.resenyas123,\r\n resenyas45: !this.props.otrosDatosCierreSemanal.resenyas45 ? 0 : this.props.otrosDatosCierreSemanal.resenyas45,\r\n cumplesOnline: !this.props.otrosDatosCierreSemanal.cumplesOnline ? 0 : this.props.otrosDatosCierreSemanal.cumplesOnline,\r\n altasPersonal: !this.props.otrosDatosCierreSemanal.altasPersonal ? 0 : this.props.otrosDatosCierreSemanal.altasPersonal,\r\n bajasPersonal: !this.props.otrosDatosCierreSemanal.bajasPersonal ? 0 : this.props.otrosDatosCierreSemanal.bajasPersonal,\r\n amonestaciones: !this.props.otrosDatosCierreSemanal.amonestaciones ? 0 : this.props.otrosDatosCierreSemanal.amonestaciones,\r\n\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreSemanal !== this.props.otrosDatosCierreSemanal) {\r\n this.setState({\r\n obsResumenGeneral: !this.props.otrosDatosCierreSemanal.obsResumenGeneral ? '' : this.props.otrosDatosCierreSemanal.obsResumenGeneral,\r\n obsResumenBolera: !this.props.otrosDatosCierreSemanal.obsResumenBolera ? '' : this.props.otrosDatosCierreSemanal.obsResumenBolera,\r\n obsResumenBar: !this.props.otrosDatosCierreSemanal.obsResumenBar ? '' : this.props.otrosDatosCierreSemanal.obsResumenBar,\r\n hojasReclamacion: !this.props.otrosDatosCierreSemanal.hojasReclamacion ? '' : this.props.otrosDatosCierreSemanal.hojasReclamacion,\r\n obsResumenAniversarios: !this.props.otrosDatosCierreSemanal.obsResumenAniversarios ? '' : this.props.otrosDatosCierreSemanal.obsResumenAniversarios,\r\n obsResumenArcade: !this.props.otrosDatosCierreSemanal.obsResumenArcade ? '' : this.props.otrosDatosCierreSemanal.obsResumenArcade,\r\n obsResumenRRHH: !this.props.otrosDatosCierreSemanal.obsResumenRRHH ? '' : this.props.otrosDatosCierreSemanal.obsResumenRRHH,\r\n obsResumenInstalaciones: !this.props.otrosDatosCierreSemanal.obsResumenInstalaciones ? '' : this.props.otrosDatosCierreSemanal.obsResumenInstalaciones,\r\n ventaNormalBar: !this.props.otrosDatosCierreSemanal.ventaNormalBar ? 0 : this.props.otrosDatosCierreSemanal.ventaNormalBar,\r\n entrKids: !this.props.otrosDatosCierreSemanal.entrKids ? 0 : this.props.otrosDatosCierreSemanal.entrKids,\r\n resenyas123: !this.props.otrosDatosCierreSemanal.entrKids ? 0 : this.props.otrosDatosCierreSemanal.resenyas123,\r\n resenyas45: !this.props.otrosDatosCierreSemanal.entrKids ? 0 : this.props.otrosDatosCierreSemanal.resenyas45,\r\n cumplesOnline: !this.props.otrosDatosCierreSemanal.entrKids ? 0 : this.props.otrosDatosCierreSemanal.cumplesOnline,\r\n altasPersonal: !this.props.otrosDatosCierreSemanal.entrKids ? 0 : this.props.otrosDatosCierreSemanal.altasPersonal,\r\n bajasPersonal: !this.props.otrosDatosCierreSemanal.entrKids ? 0 : this.props.otrosDatosCierreSemanal.bajasPersonal,\r\n amonestaciones: !this.props.otrosDatosCierreSemanal.entrKids ? 0 : this.props.otrosDatosCierreSemanal.amonestaciones,\r\n\r\n });\r\n };\r\n };\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n\r\n onBlur = (event, field) => {\r\n\r\n this.props.modifyFieldOtrosDatosSemanal(field, event.target.value, this.props.otrosDatosCierreSemanal);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n\r\n {/* first row */}\r\n
\r\n

Resumen General

\r\n this.handleValueChange(e, 'obsResumenGeneral')}\r\n onBlur={e => this.onBlur(e, 'obsResumenGeneral')}\r\n />\r\n
\r\n\r\n {/* second row */}\r\n
\r\n

Resumen Cumpleaños

\r\n this.handleValueChange(e, 'obsResumenAniversarios')}\r\n onBlur={e => this.onBlur(e, 'obsResumenAniversarios')}\r\n />\r\n
\r\n\r\n
\r\n {/* third row */}\r\n
\r\n {/* left */}\r\n

Google Review

\r\n {/* up */}\r\n
\r\n

Nº Reseñas 4-5*

\r\n this.handleValueChange(e, 'resenyas45')}\r\n onBlur={e => this.onBlur(e, 'resenyas45')}\r\n />\r\n
\r\n {/* down */}\r\n
\r\n

Nº Reseñas 1-2-3*

\r\n this.handleValueChange(e, 'resenyas123')}\r\n onBlur={e => this.onBlur(e, 'resenyas123')}\r\n />\r\n
\r\n
\r\n\r\n
\r\n {/* center */}\r\n {/* up */}\r\n
\r\n

Hoja Reclamación

\r\n this.handleValueChange(e, 'hojasReclamacion')}\r\n onBlur={e => this.onBlur(e, 'hojasReclamacion')}\r\n />\r\n
\r\n\r\n {/* down */}\r\n
\r\n

Vta. Normal Bar %

\r\n \r\n
\r\n
\r\n\r\n
\r\n {/* center */}\r\n {/* up */}\r\n
\r\n

Nº nuevas altas

\r\n this.handleValueChange(e, 'altasPersonal')}\r\n onBlur={e => this.onBlur(e, 'altasPersonal')}\r\n />\r\n
\r\n\r\n {/* down */}\r\n
\r\n

Nº nuevas bajas

\r\n this.handleValueChange(e, 'bajasPersonal')}\r\n onBlur={e => this.onBlur(e, 'bajasPersonal')}\r\n />\r\n
\r\n
\r\n\r\n
\r\n {/* center */}\r\n {/* up */}\r\n
\r\n

Amonestaciones

\r\n this.handleValueChange(e, 'amonestaciones')}\r\n onBlur={e => this.onBlur(e, 'amonestaciones')}\r\n />\r\n
\r\n
\r\n\r\n
\r\n {/* center */}\r\n {/* up */}\r\n
\r\n

Cumples on-line

\r\n this.handleValueChange(e, 'cumplesOnline')}\r\n onBlur={e => this.onBlur(e, 'cumplesOnline')}\r\n />\r\n
\r\n\r\n {/* down */}\r\n
\r\n

Entr. Kids

\r\n this.handleValueChange(e, 'entrKids')}\r\n onBlur={e => this.onBlur(e, 'entrKids')}\r\n />\r\n
\r\n
\r\n
\r\n\r\n
\r\n {/* left */}\r\n
\r\n

Resumen RRHH

\r\n this.handleValueChange(e, 'obsResumenRRHH')}\r\n onBlur={e => this.onBlur(e, 'obsResumenRRHH')}\r\n />\r\n
\r\n\r\n {/* left */}\r\n
\r\n

Resumen Instalaciones

\r\n this.handleValueChange(e, 'obsResumenInstalaciones')}\r\n onBlur={e => this.onBlur(e, 'obsResumenInstalaciones')}\r\n />\r\n
\r\n
\r\n\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nCentreSection.propTypes = {\r\n otrosDatosCierreSemanal: PropTypes.object.isRequired,\r\n isSemanaCerrada: PropTypes.bool.isRequired,\r\n modifyFieldOtrosDatosSemanal: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n otrosDatosCierreSemanal: state.otrosDatosCierreSemanal.otrosdatos,\r\n isSemanaCerrada: state.datosCierreSemanal.semanaCerrada,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n modifyFieldOtrosDatosSemanal,\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(mapStateToProps, mapDispathToProps)(withStyles(styles, { withTheme: true })(CentreSection));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui components:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { TextField } from '@material-ui/core';\r\nimport grey from '@material-ui/core/colors/grey';\r\n\r\n//components\r\nimport FloatNumberFormatInput from '../../../components/float_number_input_formatter';\r\nimport IntNumberFormatInput from '../../../components/int_number_input_formatter';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: 290,\r\n },\r\n paper: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: 'white',\r\n width: 141,\r\n marginBottom: 10,\r\n height: 105,\r\n borderBottom: `2px solid ${grey[500]}`,\r\n borderRight: `2px solid ${grey[500]}`,\r\n },\r\n pairContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n titlePaper: {\r\n fontSize: 13,\r\n fontWeight: '500',\r\n color: 'white',\r\n padding: '4px 2px 4px 12px',\r\n backgroundColor: grey[600],\r\n margin: 0,\r\n },\r\n textfield: {\r\n height: 100,\r\n margin: '0 auto',\r\n width: '85%',\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n }\r\n },\r\n inputprop: {\r\n margin: 'auto 0',\r\n padding: '8px 0',\r\n fontSize: 11,\r\n height: '50%',\r\n },\r\n righText:{\r\n textAlign: 'right'\r\n }\r\n});\r\n\r\nclass RightSection extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n porcPartidasPack: !this.props.otrosDatosCierreSemanal.porcPartidasPack ? 0 : this.props.otrosDatosCierreSemanal.porcPartidasPack,\r\n pack2Partidas: !this.props.otrosDatosCierreSemanal.pack2Partidas ? 0 : this.props.otrosDatosCierreSemanal.pack2Partidas,\r\n conteoPersonas: !this.props.otrosDatosCierreSemanal.conteoPersonas ? 0 : this.props.otrosDatosCierreSemanal.conteoPersonas,\r\n aniversarios: !this.props.otrosDatosCierreSemanal.aniversarios ? 0 : this.props.otrosDatosCierreSemanal.aniversarios,\r\n ticketsEuros: !this.props.otrosDatosCierreSemanal.ticketsEuros ? 0 : this.props.otrosDatosCierreSemanal.ticketsEuros,\r\n promedioEuroMaq: !this.props.otrosDatosCierreSemanal.promedioEuroMaq ? 0 : this.props.otrosDatosCierreSemanal.promedioEuroMaq,\r\n averias: !this.props.otrosDatosCierreSemanal.averias ? 0 : this.props.otrosDatosCierreSemanal.averias,\r\n kids: !this.props.otrosDatosCierreSemanal.kids ? 0 : this.props.otrosDatosCierreSemanal.kids,\r\n kidsAniv: !this.props.otrosDatosCierreSemanal.kidsAniv ? 0 : this.props.otrosDatosCierreSemanal.kidsAniv,\r\n eurosKid: !this.props.otrosDatosCierreSemanal.eurosKid ? 0 : this.props.otrosDatosCierreSemanal.eurosKid,\r\n\r\n };\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreSemanal !== this.props.otrosDatosCierreSemanal) {\r\n this.setState({\r\n porcPartidasPack: !this.props.otrosDatosCierreSemanal.porcPartidasPack ? 0 : this.props.otrosDatosCierreSemanal.porcPartidasPack,\r\n pack2Partidas: !this.props.otrosDatosCierreSemanal.pack2Partidas ? 0 : this.props.otrosDatosCierreSemanal.pack2Partidas,\r\n conteoPersonas: !this.props.otrosDatosCierreSemanal.conteoPersonas ? 0 : this.props.otrosDatosCierreSemanal.conteoPersonas,\r\n aniversarios: !this.props.otrosDatosCierreSemanal.aniversarios ? 0 : this.props.otrosDatosCierreSemanal.aniversarios,\r\n ticketsEuros: !this.props.otrosDatosCierreSemanal.ticketsEuros ? 0 : this.props.otrosDatosCierreSemanal.ticketsEuros,\r\n promedioEuroMaq: !this.props.otrosDatosCierreSemanal.promedioEuroMaq ? 0 : this.props.otrosDatosCierreSemanal.promedioEuroMaq,\r\n averias: !this.props.otrosDatosCierreSemanal.averias ? 0 : this.props.otrosDatosCierreSemanal.averias,\r\n kids: !this.props.otrosDatosCierreSemanal.kids ? 0 : this.props.otrosDatosCierreSemanal.kids,\r\n kidsAniv: !this.props.otrosDatosCierreSemanal.kidsAniv ? 0 : this.props.otrosDatosCierreSemanal.kidsAniv,\r\n eurosKid: !this.props.otrosDatosCierreSemanal.eurosKid ? 0 : this.props.otrosDatosCierreSemanal.eurosKid,\r\n\r\n });\r\n };\r\n };\r\n\r\n\r\n handleValueChange = (event, field) => {\r\n\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n\r\n onBlur = (event, field) => {\r\n\r\n const value = !event.target.value ? 0 : parseInt(event.target.value);\r\n\r\n this.props.modifyFieldOtrosDatos(field, value);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

% Partidas Pack

\r\n \r\n
\r\n
\r\n

Pack 2 partidas

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

Conteo Personas

\r\n \r\n
\r\n\r\n
\r\n

Niños X Cumpleaños

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

Euros x Niño

\r\n \r\n
\r\n\r\n
\r\n

Tickets x Euros

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

Promedio € x Maq.

\r\n \r\n
\r\n\r\n
\r\n

Averías

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

Cumpleaños

\r\n \r\n
\r\n\r\n
\r\n

Niños

\r\n \r\n
\r\n
\r\n
\r\n\r\n );\r\n };\r\n};\r\n\r\n\r\nRightSection.propTypes = {\r\n otrosDatosCierreSemanal: PropTypes.object.isRequired,\r\n modifyFieldOtrosDatos: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n otrosDatosCierreSemanal: state.otrosDatosCierreSemanal.otrosdatos,\r\n };\r\n};\r\n\r\n\r\nexport default connect(mapStateToProps)(withStyles(styles, { withTheme: true })(RightSection));","//modificación de otros datos relacionados con el cierre semanal\r\n// contiene los componentes TopSection, RightSection y CenterSection para mostrar los datos con el mismo formato que en el TCW\r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Button } from '@material-ui/core/';\r\n\r\n//components:\r\nimport TopSection from './cierre_semanal_otrosdatos_components/TopSection';\r\nimport CentreSection from './cierre_semanal_otrosdatos_components/CentreSection';\r\nimport RightSection from './cierre_semanal_otrosdatos_components/RightSection';\r\n\r\n//actions:\r\nimport { getOtrosDatosCierreSemanal, updateCierreSemanalOtrosDatosDB } from '../../actions/cierre_semanal_actions';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: '8px 24px',\r\n margin: theme.spacing(1),\r\n flexGrow: 1,\r\n },\r\n container: {\r\n width: 1022,\r\n margin: 0,\r\n padding: 0\r\n },\r\n paper: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n backgroundColor: theme.palette.primary.light,\r\n boxShadow: 'none',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n margin: '25px 0',\r\n padding: 10,\r\n },\r\n numberTextfield: {\r\n margin: 0,\r\n padding: 0,\r\n backgroundColor: 'white',\r\n borderRadius: 4,\r\n width: '55%',\r\n height: 30,\r\n },\r\n numberTextfieldRightSide: {\r\n margin: 0,\r\n padding: 0,\r\n backgroundColor: 'white',\r\n borderRadius: 4,\r\n width: '55%',\r\n height: 30,\r\n marginTop: -10,\r\n },\r\n textArea: {\r\n display: 'flex',\r\n alignItems: 'start',\r\n padding: '5px 5px 5px 5px',\r\n height: '46px',\r\n fontSize: 11,\r\n backgroundColor: 'white',\r\n borderRadius: 4,\r\n },\r\n textAreaCenter: {\r\n display: 'flex',\r\n alignItems: 'start',\r\n padding: '5px 5px 5px 5px',\r\n height: 75,\r\n fontSize: 11,\r\n backgroundColor: 'white',\r\n borderRadius: 4,\r\n },\r\n resize: {\r\n fontSize: 11,\r\n fontWeight: 800,\r\n padding: 0,\r\n height: 30,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass CierreSemanalOtrosDatos extends React.Component {\r\n\r\n componentDidMount() {\r\n this.props.getOtrosDatosCierreSemanal(this.props.centroId, this.props.dia);\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showAll: false,\r\n showSpinner: true,\r\n };\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //once we get the data:\r\n if (prevProps.otrosDatosCierreSemanal !== this.props.otrosDatosCierreSemanal) {\r\n this.setState({\r\n showAll: true,\r\n });\r\n };\r\n\r\n if (prevProps.isLoading !== this.props.isLoading && this.props.isLoading) this.setState({ showSpinner: true });\r\n if (prevProps.isLoading !== this.props.isLoading && !this.props.isLoading) this.setState({ showSpinner: false });\r\n };\r\n\r\n\r\n hanldeOKClick = () => {\r\n\r\n const otrosDatos = this.props.otrosDatosCierreSemanal;\r\n\r\n if (!this.props.isSemanaCerrada) {\r\n this.props.updateCierreSemanalOtrosDatosDB(otrosDatos, this.props.centroId, this.props.dia, this.props.nextStep);\r\n }\r\n else{\r\n this.props.nextStep();\r\n }\r\n };\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n if (this.state.showAll && !this.state.showSpinner) {\r\n return (\r\n
\r\n\r\n
\r\n {/* container de todo */}\r\n\r\n {/* parte superior */}\r\n \r\n\r\n
\r\n {/* parte inferior */}\r\n \r\n\r\n {/* right side */}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nCierreSemanalOtrosDatos.propTypes = {\r\n isLoading: PropTypes.bool.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n dia: PropTypes.string.isRequired,\r\n isSemanaCerrada: PropTypes.bool.isRequired,\r\n otrosDatosCierreSemanal: PropTypes.object.isRequired,\r\n prevStep: PropTypes.func.isRequired,\r\n getOtrosDatosCierreSemanal: PropTypes.func.isRequired,\r\n updateCierreSemanalOtrosDatosDB: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n otrosDatosCierreSemanal: state.otrosDatosCierreSemanal.otrosdatos,\r\n isLoading: state.otrosDatosCierreSemanal.isLoading,\r\n centroId: state.centroDiaSelected.centro.id,\r\n dia: state.centroDiaSelected.dia,\r\n isSemanaCerrada: state.centroDiaSelected.isSemanaCerrada,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n getOtrosDatosCierreSemanal,\r\n updateCierreSemanalOtrosDatosDB\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalOtrosDatos));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//actions:\r\nimport { openDialog } from '../../actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n//components\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\n\r\nconst styles = theme => ({\r\n paperContainer: {\r\n width: '100%',\r\n },\r\n paperItem: {\r\n margin: '0 auto',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignContent: 'center',\r\n padding: '5px 20px 5px 35px',\r\n boxShadow: 'none',\r\n border: 0,\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: theme.spacing(1),\r\n padding: 0,\r\n fontSize: 11,\r\n },\r\n leftSide: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: '50%',\r\n maxWidth: 190,\r\n },\r\n label: {\r\n textAlign: 'left',\r\n marginRight: 5,\r\n fontSize: 13,\r\n },\r\n input: {\r\n width: 75,\r\n height: 35,\r\n [`& fieldset`]: {\r\n borderRadius: 0,\r\n borderColor: 'black !important'\r\n },\r\n },\r\n buttonContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n width: '50%',\r\n alignItems: 'center',\r\n },\r\n button: {\r\n padding: '0 5px',\r\n marginLeft: 10,\r\n backgroundColor: theme.palette.secondary.light,\r\n borderRadius: 0,\r\n fontSize: 12,\r\n // minWidth: 40,\r\n width: '46%',\r\n minWidth: 45,\r\n height: 20,\r\n '&:hover': {\r\n backgroundColor: '#cc8ebf'\r\n },\r\n boxShadow: '1px 1px 1px darkgrey',\r\n overflow: 'hidden'\r\n },\r\n});\r\n\r\nclass CierreSemanalResumenItem extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n\r\n }\r\n }\r\n\r\n generateButton = () => {\r\n\r\n const { classes } = this.props;\r\n\r\n switch (this.props.item.orden) {\r\n case 2:\r\n return (\r\n
\r\n \r\n
\r\n );\r\n case 3:\r\n return (\r\n
\r\n \r\n
\r\n );\r\n case 5:\r\n return (\r\n
\r\n \r\n
\r\n );\r\n case 100:\r\n return (\r\n
\r\n \r\n
\r\n );\r\n default:\r\n return (
);\r\n }\r\n }\r\n\r\n\r\n renderLabel = () => {\r\n\r\n let label = '';\r\n\r\n switch (this.props.item.orden) {\r\n case 1:\r\n label = 'Total Ingresos';\r\n break;\r\n case 2:\r\n label = 'Visas';\r\n break;\r\n case 3:\r\n label = 'Gastos';\r\n break;\r\n case 4:\r\n label = 'Var. Fondo';\r\n break;\r\n case 5:\r\n label = 'MKT Pdte.';\r\n break;\r\n case 100:\r\n label = 'Bancos';\r\n break;\r\n case 101:\r\n label = 'Arcade';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return label;\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n\r\n
\r\n {this.renderLabel()}\r\n \r\n
\r\n\r\n
\r\n {this.generateButton()}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nCierreSemanalResumenItem.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n //parameters\r\n item: PropTypes.object.isRequired\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog\r\n }, dispatch);\r\n}\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalResumenItem));","//componente que muestra los siguientes componentes\r\n// Resumen de descuadres para la semana, obtenido de la base de datos (state.resumenCierreSemanal.resumen)\r\n// CalendarioSemanal - Tabla resumen de los valores de cada dia de la semana para cada zona (arcade, bolera, etc...)\r\n// Un CierreSemanalResumenItem por cada item del resumen del cierre obtenido del servidor (state.resumenCierreSemanal.items)\r\n// divididos en Ingresos y Bancos\r\n// \r\n//los datos se obtienen con la llamada getResumenCierreSemanal\r\n//\r\n//ITEMS:\r\n// Total Ingresos: Total arqueos de todas las zones excepto 9, 5, 11 (general, cambio y arcade) + ingresos lecturas de maquinas + gastos(D_A_Gasto) de zona 11\r\n// Visas: Suma de mMovEc de ikind=0 y isMovCaja=1\r\n// Abre componente CierreSemanalResumenVisas\r\n// Gastos: Suma de D_A_Gasto\r\n// Abre componente CierreSemanalResumenGastos\r\n// Var.Fondo: Variación de fondo de euros\r\n// MKT Pdte.: Suma de mMovEc de ikind=1 y isMovCaja=1\r\n// Abre componente CierreSemanalResumenMKT\r\n// Bancos: Suma de arqueos de zona 9 (general)\r\n// Abre componente CierreSemanalResumenBanco\r\n// Arcade: Arqueo de zona 5 (arcade)\r\n// \r\n\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Paper, Typography } from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Tooltip, Fade } from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\n//actions:\r\nimport { getResumenCierreSemanal, cerrarSemana, unlockCierreSemanal } from '../../actions/cierre_semanal_actions';\r\nimport CierreSemanalResumenItem from './cierre_semanal_resumen_item';\r\nimport { openDialog } from '../../actions';\r\n\r\n//components\r\nimport FloatNumberFormatText from '../../components/float_number_text_formatter';\r\nimport CalendarioSemanal from '../../components/dialogs/cierre_semanal_calendario';\r\n\r\nimport { createReport } from '../../dataLib';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: '8px 24px',\r\n margin: theme.spacing(1),\r\n flexGrow: 1,\r\n },\r\n container: {\r\n maxWidth: 1022,\r\n margin: 0,\r\n padding: 0\r\n },\r\n paperCaja: {\r\n backgroundColor: theme.palette.primary.light,\r\n boxShadow: 'none',\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: '0px',\r\n margin: '20px 0',\r\n padding: 10,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n boxesContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-evenly',\r\n },\r\n paperConcepto: {\r\n padding: 0,\r\n margin: 0,\r\n borderBottom: '3px solid #b8b8b8',\r\n borderRight: '3px solid #b8b8b8',\r\n borderRadius: 0,\r\n width: '47%',\r\n backgroundColor: 'white',\r\n height: 'fit-content',\r\n },\r\n conceptTitle: {\r\n fontSize: '15px',\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n containeritems: {\r\n width: '100%',\r\n margin: '8px auto',\r\n },\r\n cajaSection: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n margin: 0,\r\n padding: '0 0 10px',\r\n borderRadius: 0,\r\n background: theme.palette.primary.light,\r\n },\r\n cajaSectionLeft: {\r\n display: 'flex',\r\n padding: '0 10px 0 8px',\r\n width: '50%',\r\n justifyContent: 'flex-end',\r\n },\r\n cajaSectionRight: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n width: 135,\r\n },\r\n cajaSectionItem: {\r\n display: 'flex',\r\n justifyContent: 'space-evenly',\r\n width: '35%',\r\n },\r\n cajaSectionFont: {\r\n fontSize: 13,\r\n fontWeight: '700',\r\n },\r\n paperZona: {\r\n padding: 0,\r\n margin: 0,\r\n borderRadius: 0,\r\n marginBottom: 28,\r\n },\r\n conceptTitleContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n padding: '4px 12px',\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n paperResumenTable: {\r\n backgroundColor: '#efefef',\r\n padding: theme.spacing(1),\r\n elevation: 3,\r\n maxWidth: 1022,\r\n },\r\n typoError: {\r\n fontSize: 13,\r\n color: 'red'\r\n },\r\n typoDefault: {\r\n fontSize: 13,\r\n color: 'black'\r\n },\r\n typoOK: {\r\n fontSize: 13,\r\n color: 'green'\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: \"white\",\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n observTextField: {\r\n display: 'flex',\r\n height: 200,\r\n margin: 0,\r\n maxWidth: 1022,\r\n },\r\n inputObserv: {\r\n display: 'flex',\r\n alignItems: 'start',\r\n margin: '15px 0',\r\n padding: '5px 8px',\r\n fontSize: 12,\r\n height: '90%',\r\n },\r\n});\r\n\r\nclass CierreSemanalResumen extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n acumBancos: 0.0,\r\n acumIngresos: 0.0,\r\n acumFondos: 0.0,\r\n observDescuadre: '',\r\n showSpinner: true,\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n this.props.getResumenCierreSemanal(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia);\r\n };\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.itemsCierreSemanal !== this.props.itemsCierreSemanal) {\r\n\r\n let acumBancos = 0.0;\r\n let acumIngresos = 0.0;\r\n let acumFondos = 0.0;\r\n\r\n this.props.itemsCierreSemanal.forEach(item => {\r\n switch (item.orden) {\r\n case 1:\r\n acumIngresos += parseFloat(item.importe);\r\n break;\r\n case 4:\r\n acumFondos += parseFloat(item.importe);\r\n break;\r\n case 100:\r\n case 101:\r\n acumBancos += parseFloat(item.importe.toFixed(2));\r\n break;\r\n default:\r\n break;\r\n };\r\n });\r\n\r\n this.setState({\r\n acumBancos: acumBancos + this.props.gastosGeneral,\r\n acumIngresos: acumIngresos,\r\n acumFondos: acumFondos,\r\n observDescuadre: this.props.observDescuadre\r\n });\r\n }\r\n\r\n if (prevProps.isLoading !== this.props.isLoading && this.props.isLoading) this.setState({ showSpinner: true });\r\n if (prevProps.isLoading !== this.props.isLoading && !this.props.isLoading) this.setState({ showSpinner: false });\r\n };\r\n\r\n hanldeOKClick = () => {\r\n if (!this.props.isSemanaCerrada) {\r\n //update cierre diario datos data\r\n\r\n let descuadre = false;\r\n\r\n this.props.resumenCierreSemanal.forEach(item => descuadre = descuadre | item.iError === 1);\r\n\r\n if (descuadre && this.state.observDescuadre.trim() === '') {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'Debe introducir observaciones por descuadre'\r\n }, 'error-cierre-semanal-obsrvaciones-resumen', false, false);\r\n }\r\n else {\r\n\r\n this.setState({ ...this.state, showSpinner: true });\r\n\r\n this.props.cerrarSemana(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia, this.state.observDescuadre, () => {\r\n \r\n const win = window.open(process.env.PUBLIC_URL + '/loading_report.html', '_blank');\r\n\r\n let url = '';\r\n\r\n createReport(\r\n {\r\n reportDefinition: { id: 4 },\r\n values: {\r\n centroId: this.props.centroDiaSelected.centro.id,\r\n wIniDate: this.props.centroDiaSelected.dia,\r\n page: -1\r\n }\r\n },\r\n \"PDF\",\r\n this.props.user, '')\r\n .then(response => {\r\n url = window.URL.createObjectURL(new Blob([response.data], { type: \"application/pdf\" }));\r\n win.location.href = url;\r\n }).catch(error => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR generating PDF'\r\n }, 'error-opem-report-pdf', false, false);\r\n }).then(() => {\r\n this.setState({ ...this.state, showSpinner: false });\r\n });\r\n\r\n }, () => {\r\n this.setState({ ...this.state, showSpinner: false });\r\n });\r\n }\r\n }\r\n else {\r\n //\r\n this.props.unlockCierreSemanal(this.props.centroDiaSelected.centro.id, this.props.centroDiaSelected.dia);\r\n this.props.nextStep();\r\n }\r\n //this.props.nextStep();\r\n };\r\n\r\n\r\n renderIngresos = () => {\r\n\r\n const ingresos = this.props.itemsCierreSemanal.filter(i => i.orden < 100);\r\n\r\n return ingresos.map((b, i) => {\r\n\r\n return \r\n\r\n });\r\n\r\n };\r\n\r\n renderBancos = () => {\r\n const bancos = this.props.itemsCierreSemanal.filter(i => i.orden >= 100);\r\n\r\n return bancos.map((b, i) => {\r\n\r\n return \r\n\r\n });\r\n };\r\n\r\n renderResumen = () => {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {this.props.resumenCierreSemanal.map((itemResume, i) => {\r\n\r\n let styleClass = classes.typoOK;\r\n if (itemResume.iError === 1) {\r\n styleClass = classes.typoError;\r\n }\r\n else if (itemResume.iError === 2) {\r\n styleClass = classes.typoDefault;\r\n }\r\n\r\n return (\r\n {itemResume.mensaje}\r\n )\r\n\r\n })}\r\n \r\n )\r\n }\r\n\r\n handleObsChange = (event) => {\r\n this.setState({ ...this.state, observDescuadre: event.target.value });\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const mult_reopa = (this.props.centroDiaSelected.centro.reopa - 31162) / 100;\r\n\r\n let descuadre = this.state.acumBancos - this.state.acumIngresos + this.state.acumFondos;\r\n if (Math.abs(descuadre) < 0.0001) descuadre = 0.0;\r\n\r\n if (!this.state.showSpinner) {\r\n return (\r\n
\r\n {this.renderResumen()}\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n Ingresos\r\n
\r\n
{this.renderIngresos()}
\r\n
\r\n\r\n\r\n
\r\n
\r\n Bancos\r\n
\r\n Total: \r\n \r\n
\r\n
\r\n\r\n
{this.renderBancos()}
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n {'Observaciones por descuadre'}\r\n this.handleObsChange(event)}\r\n />\r\n\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n\r\n\r\n };\r\n\r\n};\r\n\r\nCierreSemanalResumen.propTypes = {\r\n //state:\r\n user: PropTypes.object.isRequired,\r\n itemsCierreSemanal: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch:\r\n prevStep: PropTypes.func.isRequired,\r\n getResumenCierreSemanal: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n itemsCierreSemanal: state.resumenCierreSemanal.items,\r\n resumenCierreSemanal: state.resumenCierreSemanal.resumen,\r\n gastosGeneral: state.resumenCierreSemanal.gastosGeneral,\r\n arcadeCompl: state.resumenCierreSemanal.arcadeCompl,\r\n observDescuadre: state.resumenCierreSemanal.observaciones,\r\n isLoading: state.resumenCierreSemanal.isLoading,\r\n centroDiaSelected: state.centroDiaSelected,\r\n isSemanaCerrada: state.centroDiaSelected.isSemanaCerrada\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n getResumenCierreSemanal,\r\n cerrarSemana,\r\n unlockCierreSemanal,\r\n openDialog\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles, { withTheme: true })(CierreSemanalResumen));","//el cierre semanal se compone de 3 componentes:\r\n// - CierreSemanalDatos\r\n// - CierreSemanalOtrosDatos\r\n// - CierreSemanalResumen\r\n// Se muestra un componente Stepper de Material-ui que permite cambiar de componente cuando la semana está cerrada. \r\n// Si la semana no está cerrada, la navegación se hace mediante los botones de guardar de cada uno de estos componentes.\r\n\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport StepButton from '@material-ui/core/StepButton';\r\n\r\nimport { navigate, openDialog } from '../../actions';\r\n\r\nimport CierreSemanalDatos from './cierre_semanal_datos';\r\nimport CierreSemanalOtrosDatos from './cierre_semanal_otros_datos';\r\nimport CierreSemanalResumen from './cierre_semanal_resumen';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n stepperContainer: {\r\n padding: '5px 25px'\r\n },\r\n backButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n alternativeLabel: {},\r\n labelContainer: {\r\n \"& $alternativeLabel\": {\r\n fontWeight: 600,\r\n }\r\n },\r\n icon: {\r\n color: 'silver',\r\n },\r\n textIcon: {\r\n color: 'white',\r\n fontWeight: 800\r\n }\r\n});\r\n\r\nclass AccCierreSemanal extends Component {\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n activeStep: 0,\r\n first: true\r\n };\r\n };\r\n\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n };\r\n\r\n\r\n getSteps = () => {\r\n return ['Datos Cierre Semanal', 'Otros Datos', 'Resumen y Cierre'];\r\n };\r\n\r\n getStepContent = (stepIndex) => {\r\n switch (stepIndex) {\r\n case 0:\r\n return ;\r\n case 1:\r\n return ;\r\n case 2:\r\n return ;\r\n default:\r\n return 'Unknown stepIndex';\r\n }\r\n };\r\n\r\n\r\n\r\n handleNext = () => {\r\n if (this.state.activeStep + 1 === this.getSteps().length) {\r\n this.setState(state => ({\r\n activeStep: 0,\r\n first: false\r\n }));\r\n }\r\n else {\r\n this.setState(state => ({\r\n activeStep: state.activeStep + 1,\r\n first: false\r\n }));\r\n }\r\n };\r\n\r\n handleStep = step => () => {\r\n this.setState({\r\n activeStep: step,\r\n first: false\r\n });\r\n };\r\n\r\n handleBack = () => {\r\n this.setState(state => ({\r\n activeStep: state.activeStep - 1,\r\n first: false\r\n }));\r\n };\r\n\r\n handleReset = () => {\r\n this.setState({\r\n activeStep: 0,\r\n first: false\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const steps = this.getSteps();\r\n const { activeStep } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {steps.map((label, index) => (\r\n \r\n {this.props.centroDiaSelected.isSemanaCerrada ?\r\n \r\n {label}\r\n \r\n :\r\n {label}\r\n }\r\n \r\n ))}\r\n \r\n\r\n {this.getStepContent(activeStep)}\r\n\r\n {/*
\r\n Back\r\n \r\n
*/}\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nAccCierreSemanal.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate, openDialog\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(AccCierreSemanal));\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport {\r\n FormControl,\r\n Select,\r\n InputLabel,\r\n Paper,\r\n Button,\r\n} from '@material-ui/core';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Fade from '@material-ui/core/Fade';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport DatePicker from '../../components/utils/DatePicker';\r\n\r\n//actions:\r\nimport { navigate, openDialog } from '../../actions';\r\n\r\n//helpers:\r\nimport { getData, getTextFile, postData } from '../../dataLib';\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n containerView: {\r\n width: '83vw',\r\n height: '83vh',\r\n marginTop: 135,\r\n },\r\n paperCentroDia: {\r\n paddingTop: 0,\r\n paddingBottom: theme.spacing(1) / 2,\r\n paddingLeft: theme.spacing(1) / 2,\r\n paddingRight: theme.spacing(1) / 2,\r\n margin: theme.spacing(1),\r\n },\r\n form: {\r\n maxWidth: 595,\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginBottom: 20,\r\n },\r\n formControl: {\r\n minWidth: 120,\r\n maxWidth: 310,\r\n margin: 0,\r\n padding: 0,\r\n },\r\n spinnerContainer: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '20px !important',\r\n height: '20px !important',\r\n },\r\n textField: {\r\n width: 145,\r\n margin: 0,\r\n padding: 0,\r\n },\r\n acceptContainer: {\r\n width: '19%',\r\n display: 'flex',\r\n },\r\n button: {\r\n borderRadius: 0,\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n color: 'white',\r\n textTransform: 'capitalize',\r\n boxShadow: 'none',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: 'white',\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass ExportarContabilidad extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n centro: this.props.centroDiaSelected.centro.id\r\n ? this.props.centroDiaSelected.centro.id\r\n : 1,\r\n iniDate: null,\r\n endDate: null,\r\n centroDiaCierre: 1,\r\n lastExportDate: null,\r\n pdfLoading: false,\r\n loaded: false,\r\n asientos: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(''); //go to home page\r\n return;\r\n }\r\n\r\n this.getLastExportDate(this.state.centro);\r\n }\r\n\r\n handleCentroChange = event => {\r\n const value = parseInt(event.target.value);\r\n\r\n var centroSelected = this.props.centros.find(c => c.id === value);\r\n if (centroSelected !== undefined) {\r\n this.getLastExportDate(centroSelected.id);\r\n this.setState({\r\n ...this.state,\r\n centro: centroSelected.id,\r\n centroDiaCierre: centroSelected.iDiaCierre,\r\n loaded: false,\r\n });\r\n }\r\n };\r\n\r\n centroSelectList = () => {\r\n // return this.props.centros.filter(c => c.isGroup === false && c.activo === 1).map(centro => {\r\n // return (\r\n // \r\n // );\r\n // });\r\n\r\n //return this.props.centros.filter(c => c.isGroup === false && c.activo === 1).map(centro => {\r\n return this.props.centros\r\n .filter(c => c.activo === 1)\r\n .map(centro => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n handleIniDateValueChange = event => {\r\n //var dt = new Date(event);\r\n //if (dt.getDay() !== this.state.centroDiaCierre + 1) return;\r\n\r\n this.setState({\r\n ...this.state,\r\n iniDate: event,\r\n loaded: false,\r\n });\r\n };\r\n\r\n handleEndDateValueChange = event => {\r\n //var dt = new Date(event);\r\n //if (dt.getDay() !== this.state.centroDiaCierre) return;\r\n\r\n this.setState({\r\n ...this.state,\r\n endDate: event,\r\n loaded: false,\r\n });\r\n };\r\n\r\n getLastExportDate = centro => {\r\n getData(\r\n 'Contabilidad/UltimaExportacion?centro_id=' + centro,\r\n response => {\r\n const dt = new Date(response.data.slice(0, 10));\r\n const iniDate = new Date(\r\n Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate() + 1),\r\n );\r\n const endDate = new Date(\r\n Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate() + 7),\r\n );\r\n\r\n this.setState({\r\n ...this.state,\r\n lastExportDate: dt.toISOString().slice(0, 10),\r\n iniDate: iniDate.toISOString().slice(0, 10),\r\n endDate: endDate.toISOString().slice(0, 10),\r\n });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching last export date',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n getContabilidad = () => {\r\n //let failed = false;\r\n\r\n const dtIni = new Date(this.state.iniDate);\r\n const dtEnd = new Date(this.state.endDate);\r\n const dtExp = new Date(this.lastExportDate);\r\n\r\n if (dtIni < dtExp) {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message:\r\n 'La fecha inicial tiene que ser posterior a la última fecha de exportación',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, pdfLoading: false });\r\n } else if (dtIni.getDay() !== this.state.centroDiaCierre + 1) {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message:\r\n 'La fecha inicial tiene que ser un día de inicio semanal',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, pdfLoading: false });\r\n } else if (dtEnd.getDay() !== this.state.centroDiaCierre) {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message:\r\n 'La fecha final tiene que ser un día de cierre semanal',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, pdfLoading: false });\r\n } else {\r\n getData(\r\n 'Contabilidad?centro_id=' +\r\n this.state.centro +\r\n '&date_ini=' +\r\n this.state.iniDate +\r\n '&date_end=' +\r\n this.state.endDate,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n pdfLoading: false,\r\n loaded: true,\r\n asientos: response.data,\r\n });\r\n },\r\n async error => {\r\n //failed = true;\r\n const message = await new Response(\r\n error.response.data,\r\n ).text();\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR: ' + message,\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n false,\r\n );\r\n }\r\n };\r\n\r\n downloadContabilidad = () => {\r\n let failed = false;\r\n\r\n // const dtIni = new Date(this.state.iniDate);\r\n // const dtEnd = new Date(this.state.endDate);\r\n // const dtExp = new Date(this.lastExportDate);\r\n\r\n // if (dtIni < dtExp) {\r\n // this.props.openDialog('SimpleMessage', {\r\n // message: 'La fecha inicial tiene que ser posterior a la última fecha de exportación'\r\n // }, uuidv4(), false, 'sm');\r\n // this.setState({ ...this.state, pdfLoading: false });\r\n // }\r\n // else if (dtIni.getDay() !== this.state.centroDiaCierre + 1) {\r\n // this.props.openDialog('SimpleMessage', {\r\n // message: 'La fecha inicial tiene que ser un día de inicio semanal'\r\n // }, uuidv4(), false, 'sm');\r\n // this.setState({ ...this.state, pdfLoading: false });\r\n // }\r\n // else if (dtEnd.getDay() !== this.state.centroDiaCierre) {\r\n // this.props.openDialog('SimpleMessage', {\r\n // message: 'La fecha final tiene que ser un día de cierre semanal'\r\n // }, uuidv4(), false, 'sm');\r\n // this.setState({ ...this.state, pdfLoading: false });\r\n // }\r\n // else {\r\n\r\n getTextFile(\r\n 'Contabilidad?centro_id=' +\r\n this.state.centro +\r\n '&date_ini=' +\r\n this.state.iniDate +\r\n '&date_end=' +\r\n this.state.endDate +\r\n '&text=true',\r\n undefined,\r\n async error => {\r\n failed = true;\r\n const message = await new Response(error.response.data).text();\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR: ' + message,\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n () => {\r\n this.setState({ ...this.state, pdfLoading: false });\r\n if (!failed) {\r\n this.props.openDialog(\r\n 'ConfirmationDialog',\r\n {\r\n message:\r\n 'Archivo descargado correctamente. Desea bloquear la exportación hasta esta fecha?',\r\n acceptHandler: () => {\r\n this.bloquearContabilidad(\r\n this.state.centro,\r\n this.state.endDate,\r\n );\r\n },\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n }\r\n },\r\n 'contabilidad_' +\r\n this.state.centro +\r\n '_' +\r\n this.state.iniDate +\r\n '_' +\r\n this.state.endDate +\r\n '.txt',\r\n this.props.user,\r\n );\r\n // }\r\n };\r\n\r\n bloquearContabilidad = (centro, date) => {\r\n postData(\r\n 'contabilidad/bloquearContabilidad?centro_id=' +\r\n centro +\r\n '&date=' +\r\n date,\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'Actualizada fecha de última exportación',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n //this.setState({...this.state, lastExportDate: date });\r\n const dt = new Date(date.slice(0, 10));\r\n const iniDate = new Date(\r\n Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate() + 1),\r\n );\r\n const endDate = new Date(\r\n Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate() + 7),\r\n );\r\n this.setState({\r\n ...this.state,\r\n lastExportDate: date,\r\n iniDate: iniDate.toISOString().slice(0, 10),\r\n endDate: endDate.toISOString().slice(0, 10),\r\n });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR cerrando contabilidad',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n {},\r\n this.props.user,\r\n );\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n //const centros = this.props.centros.filter(c => c.isGroup === false && c.activo === 1);\r\n const centros = this.props.centros.filter(c => c.activo === 1);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n Centro\r\n\r\n \r\n this.handleCentroChange(event)\r\n }\r\n >\r\n {centros.find(\r\n c => c.id === this.state.centro,\r\n ) === undefined ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n {this.centroSelectList()}\r\n \r\n \r\n\r\n {this.props.isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n ''\r\n )}\r\n {centros.find(c => c.id === this.state.centro) !==\r\n undefined ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n\r\n {centros.find(c => c.id === this.state.centro) !==\r\n undefined ? (\r\n
\r\n \r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleIniDateValueChange(d.toISOString().slice(0, 10))\r\n }\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleEndDateValueChange(d.toISOString().slice(0, 10))\r\n }\r\n }}\r\n />\r\n \r\n \r\n\r\n\r\n
\r\n {\r\n this.setState({\r\n ...this.state,\r\n pdfLoading: true,\r\n });\r\n this.getContabilidad();\r\n }}\r\n >\r\n Obtener contabilidad\r\n \r\n
\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n {this.state.pdfLoading ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n {this.state.loaded ? (\r\n
\r\n \r\n
\r\n {\r\n this.setState({\r\n ...this.state,\r\n pdfLoading: true,\r\n });\r\n this.downloadContabilidad();\r\n }}\r\n >\r\n Descargar archivo\r\n \r\n
\r\n
\r\n ) : (\r\n ''\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\n// getTextFile(url, thenHandler, errorHandler, filename, user)\r\nExportarContabilidad.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n isLoading: state.centros.isLoading,\r\n centroDiaSelected: state.centroDiaSelected,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n navigate,\r\n openDialog,\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps,\r\n)(withStyles(styles, { withTheme: true })(ExportarContabilidad));\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\n\r\n//compont ui:\r\nimport DatePicker from '../../components/utils/DatePicker';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport {\r\n FormControl,\r\n Select,\r\n InputLabel,\r\n Paper,\r\n Button,\r\n} from '@material-ui/core';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Fade from '@material-ui/core/Fade';\r\n\r\n//actions:\r\nimport { navigate, openDialog } from '../../actions';\r\n\r\n//helpers:\r\nimport { getData, postData } from '../../dataLib';\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n containerView: {\r\n width: '83vw',\r\n height: '83vh',\r\n marginTop: 135,\r\n },\r\n paperCentroDia: {\r\n paddingTop: 0,\r\n paddingBottom: theme.spacing(1) / 2,\r\n paddingLeft: theme.spacing(1) / 2,\r\n paddingRight: theme.spacing(1) / 2,\r\n margin: theme.spacing(1),\r\n },\r\n form: {\r\n maxWidth: 595,\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginBottom: 20,\r\n },\r\n formControl: {\r\n minWidth: 120,\r\n maxWidth: 310,\r\n margin: 0,\r\n padding: 0,\r\n },\r\n spinnerContainer: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '20px !important',\r\n height: '20px !important',\r\n },\r\n textField: {\r\n width: 145,\r\n margin: 0,\r\n padding: 0,\r\n },\r\n acceptContainer: {\r\n width: '19%',\r\n display: 'flex',\r\n },\r\n button: {\r\n borderRadius: 0,\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n color: 'white',\r\n textTransform: 'capitalize',\r\n boxShadow: 'none',\r\n },\r\n tooltip: {\r\n fontSize: 14,\r\n color: 'white',\r\n backgroundColor: '#3a3434',\r\n fontWeight: 200,\r\n },\r\n});\r\n\r\nclass DesbloquearContabilidad extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n centro: this.props.centroDiaSelected.centro.id\r\n ? this.props.centroDiaSelected.centro.id\r\n : 1,\r\n centroDiaCierre: 1,\r\n date: null,\r\n lastExportDate: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(''); //go to home page\r\n return;\r\n }\r\n\r\n this.getLastExportDate(this.state.centro);\r\n }\r\n\r\n handleCentroChange = event => {\r\n const value = parseInt(event.target.value);\r\n\r\n var centroSelected = this.props.centros.find(c => c.id === value);\r\n if (centroSelected !== undefined) {\r\n this.getLastExportDate(centroSelected.id);\r\n this.setState({\r\n ...this.state,\r\n centro: centroSelected.id,\r\n centroDiaCierre: centroSelected.iDiaCierre,\r\n });\r\n }\r\n };\r\n\r\n centroSelectList = () => {\r\n return this.props.centros\r\n .filter(c => c.isGroup === false && c.activo === 1)\r\n .map(centro => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n handleDateValueChange = event => {\r\n var dt = new Date(event);\r\n var lastDate = new Date(this.state.lastExportDate);\r\n\r\n if (dt.getDay() !== this.state.centroDiaCierre || dt > lastDate) {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message:\r\n 'Selecciona una fecha de cierre semanal anterior a la última fecha de exportación',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n\r\n return;\r\n }\r\n\r\n this.setState({ ...this.state, date: event });\r\n };\r\n\r\n getLastExportDate = centro => {\r\n getData(\r\n 'Contabilidad/UltimaExportacion?centro_id=' + centro,\r\n response => {\r\n const dt = new Date(response.data.slice(0, 10));\r\n const iniDate = new Date(\r\n Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate()),\r\n );\r\n this.setState({\r\n ...this.state,\r\n lastExportDate: iniDate.toISOString().slice(0, 10),\r\n date: iniDate.toISOString().slice(0, 10),\r\n });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching last export date',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n bloquearContabilidad = (centro, date) => {\r\n postData(\r\n 'contabilidad/bloquearContabilidad?centro_id=' +\r\n centro +\r\n '&date=' +\r\n date,\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'Actualizada fecha de última exportación',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, lastExportDate: date });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR cerrando contabilidad',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n {},\r\n this.props.user,\r\n );\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n Centro\r\n\r\n \r\n this.handleCentroChange(event)\r\n }\r\n >\r\n {this.centroSelectList()}\r\n \r\n \r\n\r\n {this.props.isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n ''\r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleDateValueChange(d.toISOString().slice(0, 10))\r\n }\r\n }}\r\n />\r\n \r\n \r\n\r\n
\r\n {\r\n const dt = new Date(\r\n this.state.date.slice(0, 10),\r\n );\r\n const newDate = new Date(\r\n Date.UTC(\r\n dt.getFullYear(),\r\n dt.getMonth(),\r\n dt.getDate() + 1,\r\n ),\r\n );\r\n this.bloquearContabilidad(\r\n this.state.centro,\r\n newDate.toISOString().slice(0, 10),\r\n );\r\n }}\r\n >\r\n Retroceder bloqueo\r\n \r\n
\r\n \r\n
\r\n {this.state.pdfLoading ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nDesbloquearContabilidad.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n isLoading: state.centros.isLoading,\r\n centroDiaSelected: state.centroDiaSelected,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n navigate,\r\n openDialog,\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps,\r\n)(withStyles(styles, { withTheme: true })(DesbloquearContabilidad));\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport CierreDiarioGastosGrid from '../acc_cierre_diario/cierre_diario_gastos_grid';\r\nimport CentroDia from '../centro_dia';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n});\r\n\r\nclass EntGastos extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n\r\n };\r\n\r\n renderGastos = () => {\r\n if (this.props.centroDiaSelected.centro.id !== undefined && this.props.centroDiaSelected.dia !== '') {\r\n return ();\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n {this.renderGastos()}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nEntGastos.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(EntGastos));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport CierreDiarioMKTGrid from '../acc_cierre_diario/cierre_diario_mkt_grid';\r\nimport CentroDia from '../centro_dia';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n});\r\n\r\nclass EntMkt extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n\r\n };\r\n\r\n renderGastos = () => {\r\n if (this.props.centroDiaSelected.centro.id !== undefined && this.props.centroDiaSelected.dia !== '') {\r\n return ();\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n {this.renderGastos()}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nEntMkt.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(EntMkt));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport CentroDia from '../centro_dia';\r\nimport CierreDiarioArcadeGrid from '../acc_cierre_diario/cierre_diario_arcade_grid';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n \r\n});\r\n\r\nclass EntLecturaMaqCambio extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n\r\n };\r\n\r\n renderGastos = () => {\r\n if (this.props.centroDiaSelected.centro.id !== undefined && this.props.centroDiaSelected.dia !== '') {\r\n return ();\r\n }\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n {this.renderGastos()}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nEntLecturaMaqCambio.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(EntLecturaMaqCambio));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport CentroDia from '../centro_dia';\r\nimport CierreDiarioPartidasTipoGrid from '../acc_cierre_diario/cierre_diario_partidas_tipo_grid';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n});\r\n\r\nclass EntPartidasPorTipo extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n\r\n };\r\n\r\n renderGastos = () => {\r\n if (this.props.centroDiaSelected.centro.id !== undefined && this.props.centroDiaSelected.dia !== '') {\r\n\r\n return ();\r\n\r\n };\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n {this.renderGastos()}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nEntPartidasPorTipo.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(EntPartidasPorTipo));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//actions:\r\nimport { navigate } from '../../actions';\r\n\r\n//components:\r\nimport CentroDia from '../centro_dia';\r\nimport CierreSemanalLecturasArcade from '../acc_cierre_semanal/cierre_semanal_lect_arcade';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n});\r\n\r\nclass EntLecturaMaqArcade extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n\r\n };\r\n\r\n renderGastos = () => {\r\n if (this.props.centroDiaSelected.centro.id !== undefined && this.props.centroDiaSelected.dia !== '') {\r\n return ();\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n {this.renderGastos()}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nEntLecturaMaqArcade.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(EntLecturaMaqArcade));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog } from '../../actions/index';\r\nimport { getData } from '../../dataLib';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: theme.spacing(2)\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: 200,\r\n },\r\n Typography: {\r\n margin: 'auto'\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n divData: {\r\n position: 'relative'\r\n },\r\n cover: {\r\n position: 'absolute',\r\n height: '100%',\r\n width: 525,\r\n marginLeft: 8,\r\n zIndex: 1,\r\n backgroundColor: '#ddd',\r\n opacity: 0.3,\r\n },\r\n});\r\n\r\nclass IngresosBanco extends React.PureComponent {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ingresos: [],\r\n showSpinner: true\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.producto === undefined &&\r\n prevProps.centroDiaSelected !== this.props.centroDiaSelected) {\r\n this.getIngresos();\r\n }\r\n\r\n if (prevProps.centroDiaSelected.dia !== this.props.centroDiaSelected.dia || prevProps.centroDiaSelected.centro !== this.props.centroDiaSelected.centro)\r\n this.setState({ ...this.state, showSpinner: true })\r\n }\r\n\r\n editIngreso = (ingreso) => {\r\n this.props.openDialog('Arqueo', {\r\n centroId: this.props.centroDiaSelected.centro.id,\r\n fecha: ingreso.fecha,\r\n okHandler: (total) => {\r\n const newIngresos = this.state.ingresos.map((i) => {\r\n if (i.fecha === ingreso.fecha) {\r\n return { ...i, sumReal: total };\r\n }\r\n else return i;\r\n });\r\n this.setState({ ingresos: newIngresos })\r\n },\r\n disabled: this.props.isSemanaCerrada\r\n }, uuidv4(), true, \"xs\")\r\n }\r\n\r\n //obtiene las lecturas de los contadores\r\n getIngresos = () => {\r\n\r\n let ingresosURL = 'VIngresosResumen?centro_id=' + this.props.centroDiaSelected.centro.id + '&date=' + this.props.centroDiaSelected.dia\r\n\r\n getData(ingresosURL,\r\n (response) => {\r\n this.setState({ ...this.state, ingresos: response.data, showSpinner: false })\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching ingresos banco'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getIngresos();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.showSpinner)\r\n return (\r\n
\r\n \r\n
\r\n );\r\n return (\r\n
\r\n
\r\n \r\n\r\n
\r\n {this.props.isDialog ?\r\n { this.props.hideDialog() }}\r\n disabled={!this.props.centroDiaSelected.isValid}\r\n >\r\n Cerrar\r\n \r\n : ''}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nIngresosBanco.propTypes = {\r\n //state\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n isSemanaCerrada: PropTypes.bool.isRequired,\r\n user: PropTypes.object.isRequired,\r\n isDialog: PropTypes.bool,\r\n //dispatch\r\n hideDialog: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n centroDiaSelected: state.centroDiaSelected,\r\n isSemanaCerrada: state.centroDiaSelected.isSemanaCerrada,\r\n user: state.oidc.user\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n hideDialog,\r\n openDialog,\r\n }, dispatch);\r\n}\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(IngresosBanco));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport CentroDia from '../centro_dia';\r\nimport IngresosBanco from './ingresos_banco';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n});\r\n\r\nclass EntIngresosBanco extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n\r\n };\r\n\r\n renderGastos = () => {\r\n if (this.props.centroDiaSelected.centro.id !== undefined && this.props.centroDiaSelected.dia !== '') {\r\n var dt = new Date(this.props.centroDiaSelected.dia);\r\n if (dt.getDay() === this.props.centroDiaSelected.centro.iDiaCierre) {\r\n\r\n return ();\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n {this.renderGastos()}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nEntIngresosBanco.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(EntIngresosBanco));","// Componente principal de la página de elaboración de presupuestos.\r\n// Se compone de 2 partes diferenciadas:\r\n// - Tabla resumen del presupuesto para cada mes y cada zona\r\n// - Herramienta de generación automática de un presupuesto a partir de otro ya existente\r\n\r\n// Se trabaja con 2 presupuestos, uno provisional y uno definitivo, de forma que se puede trabajar con el presupuesto provisional sin modificar \r\n// el que tenemos guardado como definitivo. \r\n// Una vez satisfechos con el presupuesto provisional, éste se puede convertir en definitivo, sustituyendo al presupuesto definitivo existente.\r\n// El presupuesto definitivo también se puede convertir en provisional, sustituyendo el provisional existente.\r\n\r\n// Resumen del presupuesto:\r\n// \r\n// Selectores:\r\n// - centro\r\n// - año\r\n// - definitivo / provisional\r\n// Botón de copia de: guardar presupuesto provisional como definitvo / copiar presupuesto definitivo a provisional\r\n// Botón de bloquear presupuesto para evitar modificación\r\n// Tabla de resumen del preupuesto\r\n// - Cada columna es un tipo de zona\r\n// - Cada fila es un més del año\r\n// - Cada fila tiene un botón de editar que abre la ventana de edición del presupuesto, dónde se puede editar el valor de presupuesto diario \r\n// Indicador de % Bar/Bolera\r\n// Indicador de ingresos totales del presupuesto\r\n//\r\n//\r\n// Generador de presupuesto:\r\n//\r\n// Selectores:\r\n// - año\r\n// - valores reales o del presupuesto\r\n// - meses a generar\r\n// Tabla con cada zona y el incremento o importe objetivo que se quiere generar\r\n// Botón para rellenar la tabla aplicando un incremento a todo el presupuesto origen\r\n// Botón para generar el presupuesto a partir de los datos de la tabla\r\n//\r\n\r\n// Generación del presupuesto a partir de un presupuesto de origen\r\n// Llama a la API (presupuesto/generaPresupuesto) que genera el presupuesto teniendo en cuenta el valor importe objetivo (columna Importe )\r\n// Cuando se modifica la columna % se incrementa el valor de la columna importe el porcentaje indicado\r\n//\r\n// Para generar el importe, la API calcula cuál es el factor resultante de la diferencia de los importes y modifica en ese factor los\r\n// valores de los dias correspondientes.\r\n// Los valores no corresponden al mismo día del mes, sino que corresponden al día equivalente del meés objetivo teniendo en cuenta los días de la semana, \r\n// por tanto el importe generado se aproximará al importe objetivo pero puede no coincidir exactamente\r\n\r\n\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport update from 'immutability-helper';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport { getAllCentros } from '../../actions/centro_actions';\r\nimport { getPresupuesto, generatePresupuesto, copiarPresupuesto, cambiarBloqueoPresupuesto } from '../../actions/presupuesto_actions';\r\nimport { openDialog, hideDialog } from '../../actions/index';\r\nimport { setCentroDia } from '../../actions/centro_dia_actions';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Button } from '@material-ui/core';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport Icon from '@material-ui/core/Icon';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport FloatNumberFormatInput from '../../components/float_number_input_formatter';\r\nimport FloatPercentFormatInput from '../../components/float_percent_input_formatter';\r\n\r\n//helpers:\r\nimport { getData, postData } from '../../dataLib';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n formControl: {\r\n margin: theme.spacing(2),\r\n minWidth: 120,\r\n },\r\n centroSelect: {\r\n maxWidth: 240\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 220,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n inputImporte: {\r\n textAlign: 'right',\r\n margin: theme.spacing(1),\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n inputRefTotal: {\r\n position: 'relative',\r\n marginRight: 20,\r\n left: 50 - theme.spacing(1),\r\n width: 100,\r\n },\r\n inputNewTotal: {\r\n position: 'relative',\r\n marginRight: 20,\r\n left: 50 - theme.spacing(1),\r\n width: 100,\r\n },\r\n inputPercentTotal: {\r\n position: 'relative',\r\n marginRight: 20,\r\n left: 50 - theme.spacing(1),\r\n width: 100,\r\n },\r\n totales: {\r\n display: 'flex'\r\n },\r\n input: {\r\n marginRight: theme.spacing(3)\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n buttonIncremento: {\r\n position: 'relative',\r\n marginLeft: theme.spacing(1),\r\n padding: '10px 2%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n fontSize: 12,\r\n width: 170\r\n },\r\n buttonCopy: {\r\n // position: 'relative',\r\n // marginLeft: theme.spacing(1),\r\n // padding: '10px 20px',\r\n borderRadius: 0,\r\n textTransform: 'none',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n fontSize: 13,\r\n width: 170,\r\n height: 48\r\n },\r\n buttonLock: {\r\n // margin: theme.spacing(1),\r\n // padding: 10,\r\n borderRadius: 0,\r\n border: 'none',\r\n boxShadow: 'none',\r\n height: 48\r\n },\r\n divOptions: {\r\n display: 'flex',\r\n }\r\n});\r\n\r\nclass EntPresupuestos extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n centroSelected: this.props.centroDiaSelected.centro ? this.props.centroDiaSelected.centro.id : 1,\r\n //centroOrigenSelected: this.props.centroDiaSelected.centro ? this.props.centroDiaSelected.centro.id : 1,\r\n yearSelected: new Date().getFullYear(),\r\n yearOrigenSelected: 1900,\r\n totalOrigen: 0.0,\r\n totalRefPresupuesto: 0.0,\r\n totalPresupuesto: 0.0,\r\n totalPercentPresupuesto: 0.0,\r\n //rowsCoefs: [],\r\n rowsGenerarPresupuesto: [],\r\n loadingGenerarGrid: false,\r\n real: true,\r\n realOrPpto: 'real',\r\n startMonthOrigen: 1,\r\n endMonthOrigen: 12,\r\n provisionalOrDefinitivo: 'definitivo'\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n // if (this.props.presupuesto.reload) {\r\n if (this.props.centros.find(c => c.id === this.state.centroSelected) !== undefined) {\r\n this.props.getPresupuesto(this.state.centroSelected, this.state.yearSelected, this.state.provisionalOrDefinitivo === 'provisional');\r\n }\r\n // }\r\n // else {\r\n // const year = this.getFirstOriginYear();\r\n // this.setState({ ...this.state, yearOrigenSelected: year });\r\n // this.fillGeneratePresupuestoValues(year);\r\n // }\r\n\r\n };\r\n\r\n componentDidUpdate = (prevProps, prevState) => {\r\n\r\n if (this.props.presupuesto.reload) { //se tiene que recargar el presupuesto\r\n if (this.props.centros.find(c => c.id === this.state.centroSelected) !== undefined) {\r\n this.props.getPresupuesto(this.state.centroSelected, this.state.yearSelected, this.state.provisionalOrDefinitivo === 'provisional');\r\n }\r\n }\r\n else {\r\n if (prevProps.presupuesto.presupuesto !== this.props.presupuesto.presupuesto) {\r\n if (!this.props.presupuesto.isLoading && this.props.centros.find(c => c.id === this.state.centroSelected) !== undefined) {\r\n\r\n if (this.state.yearOrigenSelected === 1900) {\r\n const year = this.getFirstOriginYear();\r\n this.fillGeneratePresupuestoValues(year);\r\n }\r\n else {\r\n if (prevProps.presupuesto.presupuesto.centroId !== this.props.presupuesto.presupuesto.centroId) {\r\n const year = this.getFirstOriginYear();\r\n this.fillGeneratePresupuestoValues(year, true);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n\r\n if (this.props.presupuesto.copied) {\r\n const value = this.state.provisionalOrDefinitivo === 'provisional' ? 'definitivo' : 'provisional';\r\n this.setState({ ...this.state, provisionalOrDefinitivo: value });\r\n this.props.getPresupuesto(this.state.centroSelected, this.state.yearSelected, value === 'provisional');\r\n }\r\n else {\r\n if ((prevState.startMonthOrigen !== this.state.startMonthOrigen ||\r\n prevState.endMonthOrigen !== this.state.endMonthOrigen ||\r\n prevState.realOrPpto !== this.state.realOrPpto) && !this.props.presupuesto.isLoading) {\r\n this.fillGeneratePresupuestoValues(this.state.yearOrigenSelected);\r\n }\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n processRows = (rows) => {\r\n let totalRef = 0.0;\r\n let totalNew = 0.0;\r\n let totalPercent = 0.0;\r\n\r\n let newRows = rows.slice();\r\n\r\n newRows.forEach((r) => {\r\n const newValue = Math.round(r.newValue * 100) / 100;\r\n const refValue = Math.round(r.refValue * 100) / 100;\r\n totalRef += refValue;\r\n totalNew += newValue;\r\n let diff = newValue - refValue;\r\n r.percent = (diff / refValue) * 100;\r\n });\r\n\r\n totalPercent = ((totalNew - totalRef) / totalRef) * 100;\r\n\r\n this.setState({\r\n ...this.state,\r\n rowsGenerarPresupuesto: newRows,\r\n loadingGenerarGrid: false,\r\n totalRefPresupuesto: totalRef,\r\n totalPresupuesto: totalNew,\r\n totalPercentPresupuesto: totalPercent\r\n })\r\n };\r\n\r\n\r\n fillGeneratePresupuestoValues = (year, reset = false) => {\r\n\r\n this.setState({ ...this.state, loadingGenerarGrid: true, yearOrigenSelected: year });\r\n\r\n const rows = this.props.presupuesto.presupuesto.zonas.map((z, i) => {\r\n\r\n let centro_id = this.state.centroSelected\r\n\r\n if (!reset && this.state.rowsGenerarPresupuesto[i] !== undefined) centro_id = this.state.rowsGenerarPresupuesto[i].centroId;\r\n\r\n return {\r\n iTipoZonaId: z.iTipoZona,\r\n name: z.descr,\r\n //centroId: this.state.rowsGenerarPresupuesto[i] !== undefined ? this.state.rowsGenerarPresupuesto[i].centroId : this.state.centroSelected,\r\n centroId: centro_id,\r\n refValue: 0,\r\n newValue: 0,\r\n percent: 100\r\n }\r\n });\r\n\r\n let URL = 'Presupuesto/fillRefValues?ref_year=' + year + '&start_month=' + this.state.startMonthOrigen + '&end_month=' + this.state.endMonthOrigen + '&real=' + (this.state.realOrPpto === 'real');\r\n\r\n postData(URL,\r\n (response) => {\r\n\r\n this.processRows(response.data);\r\n\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'error obteniendo valores para el nuevo presupuesto'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n rows,\r\n this.props.user\r\n );\r\n\r\n }\r\n\r\n\r\n getFirstOriginYear = () => {\r\n if (this.props.presupuesto.presupuesto.refYearsPpto.length === 0) return new Date().getFullYear();\r\n return this.props.presupuesto.presupuesto.refYearsPpto[0].year;\r\n }\r\n\r\n getYearTotal = (year, real) => {\r\n return real ?\r\n this.props.presupuesto.presupuesto.refYearsReal.find(y => y.year === year).total\r\n : this.props.presupuesto.presupuesto.refYearsPpto.find(y => y.year === year).total;\r\n }\r\n\r\n handleSelectCentrosValueChange = (event) => {\r\n var centroSelected = this.props.centros.find(c => c.id === parseInt(event.target.value));\r\n if (centroSelected !== undefined) {\r\n this.setState({ ...this.state, centroSelected: parseInt(event.target.value), loadingGenerarGrid: true })\r\n this.props.getPresupuesto(parseInt(event.target.value), this.state.yearSelected, this.state.provisionalOrDefinitivo === 'provisional');\r\n this.props.setCentroDia(parseInt(event.target.value), undefined, false);\r\n }\r\n }\r\n\r\n handleYearValueChange = (event) => {\r\n this.setState({ ...this.state, yearSelected: event.target.value });\r\n this.props.getPresupuesto(this.state.centroSelected, event.target.value, this.state.provisionalOrDefinitivo === 'provisional');\r\n }\r\n\r\n handleYearOrigenValueChange = (event) => {\r\n //const totalOrigen = this.props.presupuesto.presupuesto.refYearsPpto.find(y => y.year === parseInt(event.target.value)).total;\r\n this.fillGeneratePresupuestoValues(parseInt(event.target.value));\r\n //this.setState({ ...this.state, yearOrigenSelected: parseInt(event.target.value), totalOrigen: totalOrigen });\r\n this.setState({ ...this.state, yearOrigenSelected: parseInt(event.target.value)});\r\n }\r\n\r\n\r\n renderSelectYears = () => {\r\n\r\n let years = [];\r\n const actualYear = new Date().getFullYear();\r\n\r\n years.push(actualYear);\r\n years.push(actualYear + 1);\r\n years.push(actualYear + 2);\r\n years.push(actualYear + 3);\r\n years.push(actualYear - 1);\r\n\r\n return (\r\n years.map(y => {\r\n return ({y});\r\n })\r\n );\r\n\r\n };\r\n\r\n renderSelectOrigenYears = () => {\r\n\r\n const anyos = [];\r\n\r\n if (this.props.presupuesto.presupuesto.refYearsPpto || this.props.presupuesto.presupuesto.refYearsReal) {\r\n \r\n this.props.presupuesto.presupuesto.refYearsPpto.forEach(y => {\r\n anyos.push(y.year);\r\n });\r\n\r\n this.props.presupuesto.presupuesto.refYearsReal.forEach(y => {\r\n if (!anyos.includes(y.year)) anyos.push(y.year);\r\n });\r\n\r\n anyos.sort(function (a, b) { return a - b });\r\n\r\n return anyos.map(y => {\r\n return ();\r\n })\r\n\r\n }\r\n }\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, updated }) => {\r\n\r\n if (fromRow !== toRow) return; //we only allow modficiation of a single row\r\n\r\n var rows = this.state.rowsGenerarPresupuesto.slice();\r\n\r\n let updatedRow = update(this.state.rowsGenerarPresupuesto[fromRow], { $merge: updated });\r\n if(updated['percent'] !== undefined){\r\n updatedRow.newValue = updatedRow.refValue + (updatedRow.refValue * updatedRow.percent / 100);\r\n }\r\n rows[fromRow] = updatedRow;\r\n\r\n if (updated['centroId'] !== undefined) { //modified centro\r\n\r\n let URL = 'Presupuesto/ImporteZonaCentro?centro_id=' + updatedRow.centroId + '&ref_year=' + this.state.yearOrigenSelected + '&i_tipozona=' + updatedRow.iTipoZonaId +\r\n '&real=' + (this.state.realOrPpto === 'real');\r\n\r\n getData(URL,\r\n (response) => {\r\n rows[fromRow].refValue = response.data;\r\n rows[fromRow].newValue = response.data;\r\n this.processRows(rows);\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR obteniendo importe'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n \r\n this.processRows(rows);\r\n\r\n }\r\n else {\r\n\r\n this.processRows(rows);\r\n }\r\n\r\n };\r\n\r\n\r\n editPresupuesto = (presupuesto) => {\r\n //this.props.navigate(\"presupuesto_detalle/\" + presupuesto.iMes);\r\n this.props.openDialog(\"PresupuestoDetalle\", { mes: presupuesto.iMes, presupuesto_id: this.props.presupuesto.presupuesto.id, cerrado: this.props.presupuesto.presupuesto.cerrado }, 'presupuesto_detalle', true, 'sm');\r\n };\r\n\r\n renderGrid = () => {\r\n\r\n const { classes } = this.props;\r\n\r\n if (this.props.presupuesto.isLoading) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n\r\n }\r\n else {\r\n var columns = [];\r\n columns.push({ key: 'mes', name: 'Mes', editable: false, dragable: false, width: 80 });\r\n\r\n let totalesZona = {};\r\n\r\n if (this.props.presupuesto.presupuesto.zonas) {\r\n this.props.presupuesto.presupuesto.zonas.forEach((z, index) => {\r\n columns.push({ key: 'zona_' + z.iTipoZona, name: z.descr, editable: false, dragable: false, width: 120, type: 'float', grayField: 'isGray' });\r\n totalesZona['zona_' + z.iTipoZona] = z.importe;\r\n });\r\n\r\n columns.push({ key: 'total', name: 'Total', editable: false, dragable: false, width: 80, type: 'float', grayField: 'isGrayTotal' });\r\n }\r\n else columns.push({ key: 'total', name: 'Total', editable: false, dragable: false, width: 1000 });\r\n\r\n var rows = [];\r\n if (this.props.presupuesto.presupuesto.valores) {\r\n this.props.presupuesto.presupuesto.valores.forEach((v, index) => {\r\n let valores = {};\r\n v.valores.forEach(v => {\r\n valores['zona_' + v.iTipoZona] = v.importe;\r\n })\r\n rows.push({\r\n iMes: index,\r\n mes: v.mes,\r\n ...valores,\r\n total: v.importe,\r\n isGrayTotal: true\r\n })\r\n });\r\n\r\n rows.push({\r\n mes: 'Total',\r\n ...totalesZona,\r\n isGray: true,\r\n isGrayTotal: false\r\n })\r\n\r\n }\r\n else {\r\n rows.push({ mes: 'enero' });\r\n rows.push({ mes: 'enero' });\r\n rows.push({ mes: 'enero' });\r\n rows.push({ mes: 'enero' });\r\n rows.push({ mes: 'enero' });\r\n rows.push({ mes: 'enero' });\r\n rows.push({ mes: 'enero' });\r\n rows.push({ mes: 'enero' });\r\n rows.push({ mes: 'enero' });\r\n rows.push({ mes: 'enero' });\r\n rows.push({ mes: 'enero' });\r\n rows.push({ mes: 'enero' });\r\n }\r\n\r\n return (\r\n \r\n )\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n renderGenerarPresupuestosGrid = (centros) => {\r\n const { classes } = this.props;\r\n\r\n if (this.state.loadingGenerarGrid) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n else {\r\n var columns = [];\r\n columns.push({ key: 'name', name: 'Zona', editable: false, dragable: false, width: 80 });\r\n columns.push({ key: 'centroId', name: 'Centro', editable: true, dragable: false, width: 120, type: 'dropdown' });\r\n columns.push({ key: 'refValue', name: 'Importe referencia', editable: false, dragable: false, width: 120, type: 'float' });\r\n columns.push({ key: 'newValue', name: 'Importe', editable: true, dragable: false, width: 120, type: 'float' });\r\n columns.push({ key: 'percent', name: '%', editable: true, dragable: false, width: 120, type: 'percent' });\r\n\r\n const options = centros.map(centro => {\r\n return { id: centro.id, value: centro.id, text: centro.centro }\r\n })\r\n\r\n return (\r\n \r\n );\r\n\r\n }\r\n }\r\n\r\n incrGrid = (newTotal) => {\r\n\r\n //double factor = destNuevo / origen;\r\n const factor = newTotal / this.state.totalRefPresupuesto;\r\n\r\n const rows = this.state.rowsGenerarPresupuesto.map(row => {\r\n\r\n return { ...row, newValue: row.refValue * factor };\r\n\r\n });\r\n\r\n this.processRows(rows);\r\n\r\n }\r\n\r\n handleRealChange = (event) => {\r\n this.setState({ ...this.state, realOrPpto: event.target.value });\r\n }\r\n\r\n\r\n handleProvisionalChange = (event) => {\r\n this.setState({ ...this.state, provisionalOrDefinitivo: event.target.value });\r\n if (this.props.centros.find(c => c.id === this.state.centroSelected) !== undefined) {\r\n this.props.getPresupuesto(this.state.centroSelected, this.state.yearSelected, event.target.value === 'provisional');\r\n }\r\n }\r\n\r\n renderMonths = () => {\r\n return ([\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n \r\n ]);\r\n }\r\n\r\n handleStartMonthOrigenValueChange = (event) => {\r\n if (this.state.endMonthOrigen >= parseInt(event.target.value)) {\r\n this.setState({ ...this.state, startMonthOrigen: parseInt(event.target.value) });\r\n }\r\n }\r\n\r\n handleEndMonthOrigenValueChange = (event) => {\r\n if (this.state.startMonthOrigen <= parseInt(event.target.value)) {\r\n this.setState({ ...this.state, endMonthOrigen: parseInt(event.target.value) });\r\n }\r\n }\r\n\r\n handleLockClick = () => {\r\n\r\n this.props.cambiarBloqueoPresupuesto(this.props.presupuesto.presupuesto.id);\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n let perfil = undefined;\r\n\r\n let centros = [];\r\n\r\n if (this.props.userProfile.selectedCentroProfile) {\r\n\r\n perfil = this.props.userProfile.selectedCentroProfile.iPerfil;\r\n\r\n centros = [0, 4, 5, 17, 20].includes(perfil) ?\r\n this.props.centros.filter(c => c.isGroup === false && c.activo === 1)\r\n : this.props.centros.filter(c => c.id === this.props.userProfile.selectedCentroProfile.centroId && c.isGroup === false && c.activo === 1);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n Centro\r\n \r\n \r\n \r\n Año\r\n this.handleYearValueChange(event)}\r\n name={'year'}\r\n >\r\n {this.renderSelectYears()}\r\n\r\n \r\n \r\n \r\n this.handleProvisionalChange(event)}\r\n >\r\n } label={'Definitivo'} />\r\n } label={'Provisional'} />\r\n \r\n \r\n \r\n {\r\n this.props.copiarPresupuesto(this.props.presupuesto.presupuesto.id, this.state.provisionalOrDefinitivo === 'provisional');\r\n }}>\r\n {this.state.provisionalOrDefinitivo === 'provisional' ? 'Guardar como definitivo' : 'Copiar a provisional'}\r\n \r\n \r\n \r\n \r\n {this.props.presupuesto.presupuesto.cerrado ? 'lock' : 'lock_open'}\r\n \r\n \r\n\r\n {centros.find(c => c.id === this.state.centroSelected) !== undefined ?\r\n this.renderGrid()\r\n : ''}\r\n\r\n {centros.find(c => c.id === this.state.centroSelected) !== undefined ?\r\n
\r\n {'% Bar / Bolera'}\r\n \r\n\r\n {'Ingresos totales'}\r\n \r\n
\r\n : ''}\r\n
\r\n\r\n\r\n {centros.find(c => c.id === this.state.centroSelected) !== undefined ?\r\n
\r\n \r\n Año origen\r\n this.handleYearOrigenValueChange(event)}\r\n name={'year'}\r\n >\r\n {this.renderSelectOrigenYears()}\r\n\r\n \r\n \r\n \r\n this.handleRealChange(event)}\r\n >\r\n } label={'Presupuesto'} />\r\n } label={'Real'} />\r\n \r\n \r\n \r\n Mes inicio\r\n this.handleStartMonthOrigenValueChange(event)}\r\n name={'startMonth'}\r\n >\r\n {this.renderMonths()}\r\n\r\n \r\n \r\n \r\n Mes fin\r\n this.handleEndMonthOrigenValueChange(event)}\r\n name={'endMonth'}\r\n >\r\n {this.renderMonths()}\r\n\r\n \r\n \r\n\r\n
\r\n : ''}\r\n\r\n {centros.find(c => c.id === this.state.centroSelected) !== undefined ?\r\n this.renderGenerarPresupuestosGrid(centros)\r\n : ''}\r\n\r\n {centros.find(c => c.id === this.state.centroSelected) !== undefined ?\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n
\r\n : ''}\r\n\r\n\r\n {centros.find(c => c.id === this.state.centroSelected) !== undefined ?\r\n \r\n : ''}\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nEntPresupuestos.propTypes = {\r\n //state\r\n\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected,\r\n centros: state.centros.centros,\r\n presupuesto: state.presupuesto,\r\n userProfile: state.userProfile\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getAllCentros,\r\n getPresupuesto,\r\n generatePresupuesto,\r\n setCentroDia,\r\n copiarPresupuesto,\r\n cambiarBloqueoPresupuesto,\r\n openDialog,\r\n hideDialog\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(EntPresupuestos));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport { openDialog, hideDialog } from '../../actions/index';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Select from '@material-ui/core/Select';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//helpers:\r\nimport { getData, postData, putData } from '../../dataLib';\r\n\r\nimport * as config from '../../constants/configuration';\r\nimport { Button } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n formControl: {\r\n margin: theme.spacing(2),\r\n minWidth: 120,\r\n },\r\n formControlSelect: {\r\n marginTop: theme.spacing(2),\r\n marginLeft: theme.spacing(2),\r\n marginBottom: theme.spacing(2),\r\n marginRight: theme.spacing(1) * 4,\r\n minWidth: 120,\r\n },\r\n centroSelect: {\r\n\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 220,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n }, inputElementLeft: {\r\n textAlign: \"start\",\r\n cursor: \"auto\"\r\n },\r\n inputImporte: {\r\n margin: theme.spacing(1),\r\n padding: 0,\r\n fontSize: 12,\r\n },\r\n totales: {\r\n display: 'flex'\r\n },\r\n input: {\r\n marginLeft: theme.spacing(3),\r\n marginRight: theme.spacing(1),\r\n padding: 0,\r\n },\r\n button: {\r\n margin: '15px 8px',\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n }\r\n});\r\n\r\nclass EntAlertas extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n centroSelected: this.props.centroDiaSelected.centro ? this.props.centroDiaSelected.centro.id : 1,\r\n maquinaSelected: undefined,\r\n loadingAlertas: false,\r\n rows: []\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n\r\n };\r\n\r\n\r\n\r\n handleSelectCentrosValueChange = (event) => {\r\n this.setState({ ...this.state, centroSelected: parseInt(event.target.value), maquinaSelected: undefined });\r\n }\r\n\r\n editIncidencia = (incidencia) => {\r\n this.props.openDialog('EditIncidencia', {\r\n incidencia: incidencia,\r\n maquina: this.state.maquinaSelected,\r\n okHandler: this.updateIncidencia,\r\n user: this.props.user ? this.props.user.profile.sub : 1,\r\n }, uuidv4());\r\n }\r\n\r\n newIncidencia = () => {\r\n this.props.openDialog('EditIncidencia', {\r\n incidencia: {\r\n id: -1,\r\n maquinaId: this.state.maquinaSelected.id,\r\n fecha: new Date(),\r\n incidencia: '',\r\n usuarioIncidencia: null,\r\n fechaDiagnostico: null,\r\n diagnostico: '',\r\n usuarioDiagnostico: null,\r\n fechaResolucion: null,\r\n resolucion: '',\r\n usuarioResolucion: null\r\n },\r\n maquina: this.state.maquinaSelected,\r\n okHandler: this.createIncidencia,\r\n user: this.props.user ? this.props.user.profile.sub : 1,\r\n }, uuidv4());\r\n }\r\n\r\n updateIncidencia = (incidencia) => {\r\n\r\n let incURL = 'MaqIncidencias/' + incidencia.id;\r\n\r\n putData(incURL,\r\n () => {\r\n const idx = this.state.rows.findIndex(i => i.id === incidencia.id);\r\n const newRows = this.state.rows.map((row, i) => {\r\n if (i === idx) return incidencia;\r\n else return row;\r\n });\r\n this.setState({ ...this.state, rows: newRows });\r\n\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR actualizando incidencia'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n incidencia,\r\n this.props.user\r\n );\r\n\r\n\r\n }\r\n\r\n createIncidencia = (incidencia, desactivar) => {\r\n\r\n let incURL = 'MaqIncidencias?desactivar=' + desactivar;\r\n\r\n incidencia.id = 0;\r\n\r\n postData(incURL,\r\n (response) => {\r\n const newRows = this.state.rows.slice();\r\n newRows.push(response.data);\r\n this.setState({ ...this.state, rows: newRows });\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR creando incidencia'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n incidencia,\r\n this.props.user\r\n );\r\n }\r\n\r\n\r\n renderAlertasGrid = () => {\r\n\r\n const { classes } = this.props;\r\n\r\n if (this.state.maquinaSelected === undefined) return '';\r\n else {\r\n\r\n if (this.state.loadingAlertas) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n else {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n }\r\n }\r\n\r\n selectMaquinaHandler = (maquina) => {\r\n this.setState({ ...this.state, maquinaSelected: maquina, loadingAlertas: true });\r\n //get alertas for this maquina\r\n this.getIncidencias(maquina);\r\n\r\n }\r\n\r\n\r\n getIncidencias = (maquina) => {\r\n\r\n let maqURL = 'MaqIncidencias?maquina_id=' + maquina.id;\r\n\r\n getData(maqURL,\r\n (response) => {\r\n this.setState({ ...this.state, rows: response.data, loadingAlertas: false });\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR obteniendo incidencias'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n Centro\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderAlertasGrid()}\r\n\r\n \r\n\r\n \r\n\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nEntAlertas.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected,\r\n centros: state.centros.centros,\r\n userProfile: state.userProfile,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n openDialog,\r\n hideDialog,\r\n navigate\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(EntAlertas));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport ReportGeneric from '../report_generic';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n }\r\n});\r\n\r\nclass InfResumenDiario extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n {this.props.user?:null}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nInfResumenDiario.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(InfResumenDiario));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//actions:\r\nimport { openDialog, hideDialog } from '../actions/index';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\n//components:\r\nimport { getData } from '../dataLib';\r\nimport NeuriteGrid from '../components/neurite_grid';\r\nimport { RepeatOneSharp } from '@material-ui/icons';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 10\r\n },\r\n spinnerContainer: {\r\n width: 250,\r\n height: 220,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass ReportList extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n reports: [],\r\n isLoading: true,\r\n };\r\n };\r\n\r\n getReports = () => {\r\n getData(\r\n (this.props.kd ? 'NaReport/KD' : 'NaReport')+'?i_group=' + this.props.group + '&i_profile=' + this.props.userProfile.selectedCentroProfile.iPerfil,\r\n (response) => {\r\n \r\n if (this.props.user.profile.sub === '25' || this.props.user.profile.sub === '795') //si no es la meli filtramos para que no salga el report 64\r\n {\r\n this.setState({ ...this.state, reports: response.data, isLoading: false });\r\n }\r\n else { \r\n this.setState({ ...this.state, reports: response.data.filter(r => r.id !== 64), isLoading: false });\r\n }\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching reports ' + error\r\n }, 'error-fetching-report-definition', false, 'sm');\r\n this.setState({ ...this.state, isLoading: false });\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n\r\n componentDidMount = () => {\r\n this.getReports();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n //const perfil = this.props.userProfile.selectedCentroProfile ? this.props.userProfile.selectedCentroProfile.iPerfil : 100;\r\n\r\n //const reports = this.state.reports.filter(r => r.iLevel >= perfil);\r\n const reports = this.state.reports;\r\n\r\n return (\r\n
\r\n\r\n {!this.state.isLoading ?\r\n
\r\n {reports.length ?\r\n {\r\n const hasIdList = (row.id === 33 || row.id === 34 || row.id === 43);\r\n if (row.id === 27) {\r\n this.props.openDialog('ReportRankingMaquinas', {\r\n reportId: row.id,\r\n hasIdList: hasIdList\r\n }, 'report_ranking_maquinas', false, 'sm');\r\n }\r\n else if (row.id === 52) {\r\n this.props.openDialog('ReportRegalosEntregados', {\r\n reportId: row.id,\r\n hasIdList: hasIdList\r\n }, 'report_regalos_entregados', false, 'sm');\r\n }\r\n else {\r\n this.props.openDialog('ReportGeneric', {\r\n reportId: row.id,\r\n hasIdList: hasIdList\r\n }, 'report_generic_' + row.id, false, 'sm');\r\n }\r\n\r\n }\r\n },\r\n ]}\r\n rows={reports}\r\n buttonEdit={false}\r\n buttonDelete={false}\r\n buttonNew={false}\r\n enableSelection={false}\r\n height={500}\r\n />\r\n\r\n : ''}\r\n
\r\n :\r\n
\r\n \r\n
\r\n }\r\n\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nReportList.propTypes = {\r\n //state\r\n user: PropTypes.object,\r\n //dispatch\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n //parameters\r\n group: PropTypes.number.isRequired\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n userProfile: state.userProfile,\r\n kd : state.userProfile.kd,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n hideDialog,\r\n openDialog\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(ReportList));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport ReportList from '../report_list';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n }\r\n});\r\n\r\nclass InfResumenSemanal extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n {this.props.user? :null} \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nInfResumenSemanal.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(InfResumenSemanal));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport ReportGeneric from '../report_generic';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n }\r\n});\r\n\r\nclass InfResumenVentas extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n {this.props.user ? : null}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nInfResumenVentas.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(InfResumenVentas));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport ReportList from '../report_list';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport { navigate } from '../../actions';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n }\r\n});\r\n\r\nclass InfVentas extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n {this.props.user? :null} \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nInfVentas.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(InfVentas));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport ReportList from '../report_list';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport { navigate } from '../../actions';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n }\r\n});\r\n\r\nclass InfArcade extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n {this.props.user? :null} \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nInfArcade.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(InfArcade));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport ReportList from '../report_list';\r\n\r\nimport { navigate } from '../../actions';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n }\r\n});\r\n\r\nclass InfRedemption extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n {this.props.user? :null} \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nInfRedemption.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(InfRedemption));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport ReportGeneric from '../report_generic';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n }\r\n});\r\n\r\nclass InfDiasAnyo extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n {this.props.user?:null}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nInfDiasAnyo.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(InfDiasAnyo));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { navigate } from '../../actions';\r\nimport ReportGeneric from '../report_generic';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n }\r\n});\r\n\r\nclass InfDescuadresCaja extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n {this.props.user?:null}\r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nInfDescuadresCaja.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centroDiaSelected: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centroDiaSelected: state.centroDiaSelected\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(InfDescuadresCaja));","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 10\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n }\r\n});\r\n\r\nclass TestComponent extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n\r\n };\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n Això és només un test\r\n
\r\n );\r\n };\r\n};\r\n\r\n\r\nTestComponent.propTypes = {\r\n //state\r\n user: PropTypes.object,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n //TODO\r\n }, dispatch);\r\n};\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(TestComponent));","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_FAMILIA,\r\n MODIFY_FAMILIA,\r\n ADD_FAMILIA,\r\n DELETE_FAMILIA,\r\n UPDATE_FAMILIA,\r\n} from '../constants/action_types';\r\n\r\nexport function getFamilia() {\r\n return getData('CvFamilias', GET_FAMILIA);\r\n}\r\n\r\nexport function modifyFamilia(familia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_FAMILIA, payload: familia });\r\n }\r\n}\r\n\r\nexport function addFamilia(familia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_FAMILIA, payload: familia });\r\n }\r\n}\r\n\r\nexport function removeFamilia(familia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_FAMILIA, payload: familia });\r\n }\r\n}\r\n\r\nexport function updateFamiliaDB (familia) {\r\n return postData('CvFamilias/grupos', UPDATE_FAMILIA, familia, 'Familias actualizadas', undefined);\r\n\r\n}\r\n\r\n","\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getFamilia, modifyFamilia, removeFamilia, addFamilia, updateFamiliaDB } from '../../actions/familia_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresFamilia extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getFamilia();\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkFamilia = (familia) => {\r\n if (this.props.familia.find(c => (c.descr === familia.descr) && (c.id !== familia.id))) {\r\n this.messageDialog(`Ya existe una familia con descripción ${familia.descr}`);\r\n return false;\r\n } else if (!familia.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una Descripción');\r\n return false;\r\n } else if (!familia.cod.trim()) {\r\n this.messageDialog('Por favor, introduzca un Código');\r\n return false;\r\n } else if (this.props.familia.find(c => (c.cod === familia.cod) && (c.id !== familia.id))) {\r\n this.messageDialog(`Ya existe una familia con código ${familia.cod}`);\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n addNewFamilia = familia => {\r\n this.props.setSaveState(true);\r\n this.props.addFamilia(familia);\r\n };\r\n\r\n newFamilia = () => {\r\n this.props.openDialog('EditCvFamilia', {\r\n cvFamilia: {},\r\n okHandler: this.addNewFamilia,\r\n checkFamilia: this.checkFamilia,\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, updated }) => {\r\n\r\n for (let i = fromRow; i <= toRow; i++) {\r\n let updatedRow = update(this.props.familia[i], { $merge: updated });\r\n if (this.checkFamilia(updatedRow)) {\r\n this.props.setSaveState(true);\r\n this.props.modifyFamilia(updatedRow);\r\n }\r\n };\r\n\r\n };\r\n\r\n handleDeleteRow = familia => {\r\n this.props.setSaveState(true);\r\n this.props.removeFamilia(familia);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresFamilia.propTypes = {\r\n //state\r\n familia: PropTypes.array.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getFamilia: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyFamilia: PropTypes.func.isRequired,\r\n removeFamilia: PropTypes.func.isRequired,\r\n addFamilia: PropTypes.func.isRequired,\r\n updateFamiliaDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n familia: state.familia.familias,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getFamilia,\r\n openDialog,\r\n hideDialog,\r\n modifyFamilia,\r\n removeFamilia,\r\n addFamilia,\r\n updateFamiliaDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresFamilia));","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_SUB_FAMILIA,\r\n MODIFY_SUB_FAMILIA,\r\n ADD_SUB_FAMILIA,\r\n DELETE_SUB_FAMILIA,\r\n UPDATE_SUB_FAMILIA,\r\n} from '../constants/action_types';\r\n\r\nexport function getSubFamiliaList() {\r\n return getData('VSubFamilias', GET_SUB_FAMILIA);\r\n}\r\n\r\nexport function modifySubFamilia(subFamilia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_SUB_FAMILIA, payload: subFamilia });\r\n }\r\n}\r\n\r\nexport function addSubFamilia(subFamilia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_SUB_FAMILIA, payload: subFamilia });\r\n }\r\n}\r\n\r\nexport function removeSubFamilia(subFamilia) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_SUB_FAMILIA, payload: subFamilia });\r\n }\r\n}\r\n\r\nexport function updateSubFamiliaDB (subFamilia) {\r\n return postData('CvSubfamilias/subfamilias', UPDATE_SUB_FAMILIA, subFamilia, 'Sub-familias actualizadas', undefined);\r\n}\r\n\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getSubFamiliaList, modifySubFamilia, removeSubFamilia, addSubFamilia, updateSubFamiliaDB } from '../../actions/sub_familia_actions';\r\nimport { getFamilia } from '../../actions/familia_actions'\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n marginBottom: {\r\n marginBottom: 20,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresSubFamilia extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getFamilia();\r\n this.props.getSubFamiliaList();\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkCvSubFamilia = (subFamilia) => {\r\n if (this.props.subFamiliaList.find(sf => (sf.descr === subFamilia.descr) && (sf.id !== subFamilia.id))) {\r\n this.messageDialog(`Ya existe una subfamilia con descripción ${subFamilia.descr}`);\r\n return false;\r\n } else if (!subFamilia.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una descripción');\r\n return false;\r\n } else if (!subFamilia.cod.trim()) {\r\n this.messageDialog('Por favor, introduzca un código');\r\n return false;\r\n } else if (this.props.subFamiliaList.find(sf => (sf.cod === subFamilia.cod) && (sf.id !== subFamilia.id))) {\r\n this.messageDialog(`Ya existe una subfamilia con código ${subFamilia.cod}`);\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n editSubFamilia = (subFamilia) => {\r\n\r\n this.props.openDialog('EditCvSubFamilia', {\r\n subFamilia: subFamilia,\r\n checkSubFamilia: this.checkCvSubFamilia,\r\n okHandler: (sf) => {\r\n this.props.setSaveState(true);\r\n this.props.modifySubFamilia(sf);\r\n },\r\n familiaList: this.props.familiaList\r\n\r\n }, uuidv4());\r\n };\r\n\r\n newSubFamilia = () => {\r\n this.props.openDialog('EditCvSubFamilia', {\r\n subFamilia: {},\r\n checkSubFamilia: this.checkCvSubFamilia,\r\n okHandler: (tp) => {\r\n this.props.setSaveState(true);\r\n this.props.addSubFamilia(tp);\r\n },\r\n familiaList: this.props.familiaList\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, updated }) => {\r\n\r\n for (let i = fromRow; i <= toRow; i++) {\r\n let updatedRow = update(this.props.subFamiliaList[i], { $merge: updated });\r\n if (this.checkCvSubFamilia(updatedRow)) {\r\n this.props.setSaveState(true);\r\n this.props.modifySubFamilia(updatedRow);\r\n }\r\n }\r\n\r\n };\r\n\r\n handleDeleteRow = (subFamilia) => {\r\n this.props.setSaveState(true);\r\n this.props.removeSubFamilia(subFamilia);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresSubFamilia.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n subFamiliaList: PropTypes.array.isRequired,\r\n familiaList: PropTypes.array.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getFamilia: PropTypes.func.isRequired,\r\n getSubFamiliaList: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifySubFamilia: PropTypes.func.isRequired,\r\n removeSubFamilia: PropTypes.func.isRequired,\r\n addSubFamilia: PropTypes.func.isRequired,\r\n updateSubFamiliaDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n subFamiliaList: state.subFamilia.subFamiliaList,\r\n familiaList: state.familia.familias,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getSubFamiliaList,\r\n getFamilia,\r\n openDialog,\r\n hideDialog,\r\n modifySubFamilia,\r\n removeSubFamilia,\r\n addSubFamilia,\r\n updateSubFamiliaDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresSubFamilia));\r\n\r\n","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_TIPO_FICHA,\r\n MODIFY_TIPO_FICHA,\r\n ADD_TIPO_FICHA,\r\n DELETE_TIPO_FICHA,\r\n UPDATE_TIPO_FICHA,\r\n} from '../constants/action_types';\r\n\r\nexport function getTipoFichaList() {\r\n return getData('CvTipoFichas', GET_TIPO_FICHA);\r\n}\r\n\r\nexport function modifyTipoFicha(tipoFicha) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_TIPO_FICHA, payload: tipoFicha });\r\n }\r\n}\r\n\r\nexport function addTipoFicha(tipoFicha) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_TIPO_FICHA, payload: tipoFicha });\r\n }\r\n}\r\n\r\nexport function removeTipoFicha(tipoFicha) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_TIPO_FICHA, payload: tipoFicha });\r\n }\r\n}\r\n\r\nexport function updateTipoFichaListDB (tipoFichaList) {\r\n return postData('CvTipoFichas/lista', UPDATE_TIPO_FICHA, tipoFichaList, 'Tipos de ficha actualizados', undefined);\r\n\r\n}\r\n\r\n","\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getTipoFichaList, modifyTipoFicha, removeTipoFicha, addTipoFicha, updateTipoFichaListDB } from '../../actions/tipo_ficha_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresTipoFicha extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getTipoFichaList();\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkTipoFicha = (tipoFicha) => {\r\n if (this.props.tipoFichaList.find(c => (c.descr === tipoFicha.descr) && (c.id !== tipoFicha.id))) {\r\n this.messageDialog(`Ya existe un tipo de ficha con descripción ${tipoFicha.descr}`);\r\n return false;\r\n } else if (!tipoFicha.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una Descripción');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n addNewTipoFicha = (tipoFicha) => {\r\n this.props.setSaveState(true);\r\n this.props.addTipoFicha(tipoFicha);\r\n };\r\n\r\n newTipoFicha = () => {\r\n this.props.openDialog('EditTipoFicha', {\r\n tipoFicha: {},\r\n okHandler: this.addNewTipoFicha,\r\n checkTipoFicha: this.checkTipoFicha,\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, updated }) => {\r\n\r\n for (let i = fromRow; i <= toRow; i++) {\r\n let updatedRow = update(this.props.tipoFichaList[i], { $merge: updated });\r\n if (this.checkTipoFicha(updatedRow)) {\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoFicha(updatedRow);\r\n }\r\n };\r\n\r\n };\r\n\r\n handleDeleteRow = (tipoFicha) => {\r\n this.props.setSaveState(true);\r\n this.props.removeTipoFicha(tipoFicha);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresTipoFicha.propTypes = {\r\n //state\r\n tipoFichaList: PropTypes.array.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getTipoFichaList: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyTipoFicha: PropTypes.func.isRequired,\r\n removeTipoFicha: PropTypes.func.isRequired,\r\n addTipoFicha: PropTypes.func.isRequired,\r\n updateTipoFichaListDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n tipoFichaList: state.tipoFicha.tipoFichaList,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getTipoFichaList,\r\n openDialog,\r\n hideDialog,\r\n modifyTipoFicha,\r\n removeTipoFicha,\r\n addTipoFicha,\r\n updateTipoFichaListDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresTipoFicha));","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_TIPO_FICHA_SUB,\r\n MODIFY_TIPO_FICHA_SUB,\r\n ADD_TIPO_FICHA_SUB,\r\n DELETE_TIPO_FICHA_SUB,\r\n UPDATE_TIPO_FICHA_SUB,\r\n} from '../constants/action_types';\r\n\r\nexport function getTipoFichaSubList() {\r\n return getData('VTipoFichaSubs', GET_TIPO_FICHA_SUB);\r\n}\r\n\r\nexport function modifyTipoFichaSub(tipoFichaSub) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_TIPO_FICHA_SUB, payload: tipoFichaSub });\r\n }\r\n}\r\n\r\nexport function addTipoFichaSub(tipoFichaSub) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_TIPO_FICHA_SUB, payload: tipoFichaSub });\r\n }\r\n}\r\n\r\nexport function removeTipoFichaSub(tipoFichaSub) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_TIPO_FICHA_SUB, payload: tipoFichaSub });\r\n }\r\n}\r\n\r\nexport function updateTipoFichaSubListDB (tipoFichaSubList) {\r\n return postData('CvTipoFichaSubs/lista', UPDATE_TIPO_FICHA_SUB, tipoFichaSubList, 'Tipos de sub-ficha actualizados', undefined);\r\n\r\n}\r\n\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//components:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getTipoFichaSubList, modifyTipoFichaSub, removeTipoFichaSub, addTipoFichaSub, updateTipoFichaSubListDB } from '../../actions/tipo_ficha_sub_actions';\r\nimport { getTipoFichaList } from '../../actions/tipo_ficha_actions'\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n marginBottom: {\r\n marginBottom: 20,\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresTipoFichaSub extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getTipoFichaList();\r\n this.props.getTipoFichaSubList();\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkTipoFichaSub = (tipoFichaSub) => {\r\n\r\n if (this.props.tipoFichaSubList.find(tfs => (tfs.descr === tipoFichaSub.descr) && (tfs.id !== tipoFichaSub.id) && (tfs.iTipoficha === tipoFichaSub.iTipoficha) )) {\r\n this.messageDialog(`Ya existe un subtipo con descripción ${tipoFichaSub.descr}`);\r\n return false;\r\n } else if (!tipoFichaSub.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una descripción');\r\n return false;\r\n } else if (parseInt(tipoFichaSub.factor) <= 0) {\r\n this.messageDialog('El factor debe ser mayor que cero');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n editTipoFichaSub = (tipoFichaSub) => {\r\n\r\n this.props.openDialog('EditTipoFichaSub', {\r\n tipoFichaSub: tipoFichaSub,\r\n checkTipoFichaSub: this.checkTipoFichaSub,\r\n okHandler: (sf) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoFichaSub(sf);\r\n },\r\n tipoFichaList: this.props.tipoFichaList\r\n\r\n }, uuidv4());\r\n };\r\n\r\n newTipoFichaSub = () => {\r\n this.props.openDialog('EditTipoFichaSub', {\r\n tipoFichaSub: {},\r\n checkTipoFichaSub: this.checkTipoFichaSub,\r\n okHandler: (tp) => {\r\n this.props.setSaveState(true);\r\n this.props.addTipoFichaSub(tp);\r\n },\r\n tipoFichaList: this.props.tipoFichaList\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, updated }) => {\r\n\r\n for (let i = fromRow; i <= toRow; i++) {\r\n let updatedRow = update(this.props.tipoFichaSubList[i], { $merge: updated });\r\n if (this.checkTipoFichaSub(updatedRow)) {\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoFichaSub(updatedRow);\r\n }\r\n }\r\n\r\n };\r\n\r\n handleDeleteRow = (tipoFichaSub) => {\r\n this.props.setSaveState(true);\r\n this.props.removeTipoFichaSub(tipoFichaSub);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresTipoFichaSub.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n tipoFichaSubList: PropTypes.array.isRequired,\r\n tipoFichaList: PropTypes.array.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getTipoFichaList: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyTipoFichaSub: PropTypes.func.isRequired,\r\n removeTipoFichaSub: PropTypes.func.isRequired,\r\n addTipoFichaSub: PropTypes.func.isRequired,\r\n updateTipoFichaSubListDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n tipoFichaSubList: state.tipoFichaSub.tipoFichaSubList,\r\n tipoFichaList: state.tipoFicha.tipoFichaList,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getTipoFichaSubList,\r\n getTipoFichaList,\r\n openDialog,\r\n hideDialog,\r\n modifyTipoFichaSub,\r\n removeTipoFichaSub,\r\n addTipoFichaSub,\r\n updateTipoFichaSubListDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresTipoFichaSub));\r\n\r\n","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_TIPO_MOV_REDEM,\r\n MODIFY_TIPO_MOV_REDEM,\r\n ADD_TIPO_MOV_REDEM,\r\n DELETE_TIPO_MOV_REDEM,\r\n UPDATE_TIPO_MOV_REDEM,\r\n} from '../constants/action_types';\r\n\r\nexport function getTipoMovRedemList() {\r\n return getData('CvTipoMovRedems', GET_TIPO_MOV_REDEM);\r\n}\r\n\r\nexport function modifyTipoMovRedem(TipoMovRedem) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_TIPO_MOV_REDEM, payload: TipoMovRedem });\r\n }\r\n}\r\n\r\nexport function addTipoMovRedem(TipoMovRedem) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_TIPO_MOV_REDEM, payload: TipoMovRedem });\r\n }\r\n}\r\n\r\nexport function removeTipoMovRedem(TipoMovRedem) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_TIPO_MOV_REDEM, payload: TipoMovRedem });\r\n }\r\n}\r\n\r\nexport function updateTipoMovRedemListDB (TipoMovRedemList) {\r\n return postData('CvTipoMovRedems/lista', UPDATE_TIPO_MOV_REDEM, TipoMovRedemList, 'Tipos de movimiento actualizados', undefined);\r\n\r\n}\r\n\r\n","\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getTipoMovRedemList, modifyTipoMovRedem, removeTipoMovRedem, addTipoMovRedem, updateTipoMovRedemListDB } from '../../actions/tipo_mov_redem_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresTipoMovRedem extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getTipoMovRedemList();\r\n\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkTipoMovRedem = (tipoMovRedem) => {\r\n if (this.props.tipoMovRedemList.find(c => (c.descr === tipoMovRedem.descr) && (c.id !== tipoMovRedem.id))) {\r\n this.messageDialog(`Ya existe un tipo de movimiento con descripción ${tipoMovRedem.descr}`);\r\n return false;\r\n } else if (!tipoMovRedem.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una Descripción');\r\n return false;\r\n } else if (!tipoMovRedem.descrWeb.trim()) {\r\n this.messageDialog('Por favor, introduzca una Descripción Web');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n addNewTipoMovRedem = (tipoMovRedem) => {\r\n this.props.setSaveState(true);\r\n this.props.addTipoMovRedem(tipoMovRedem);\r\n };\r\n\r\n newTipoMovRedem = () => {\r\n this.props.openDialog('EditTipoMovRedem', {\r\n tipoMovRedem: {},\r\n okHandler: this.addNewTipoMovRedem,\r\n checkTipoMovRedem: this.checkTipoMovRedem,\r\n }, uuidv4());\r\n };\r\n\r\n handleGridRowsUpdated = ({ fromRow, toRow, updated }) => {\r\n\r\n for (let i = fromRow; i <= toRow; i++) {\r\n let updatedRow = update(this.props.tipoMovRedemList[i], { $merge: updated });\r\n if (this.checkTipoMovRedem(updatedRow)) {\r\n if (typeof updated.b_signo !== 'undefined') {\r\n updatedRow.signo = (updated.b_signo ? 1 : -1);\r\n }\r\n this.props.setSaveState(true);\r\n this.props.modifyTipoMovRedem(updatedRow);\r\n }\r\n }\r\n };\r\n\r\n handleDeleteRow = (tipoMovRedem) => {\r\n this.props.setSaveState(true);\r\n this.props.removeTipoMovRedem(tipoMovRedem);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n this.props.tipoMovRedemList.forEach(p => p.b_signo = (p.signo > 0))\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresTipoMovRedem.propTypes = {\r\n //state\r\n tipoMovRedemList: PropTypes.array.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getTipoMovRedemList: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyTipoMovRedem: PropTypes.func.isRequired,\r\n removeTipoMovRedem: PropTypes.func.isRequired,\r\n addTipoMovRedem: PropTypes.func.isRequired,\r\n updateTipoMovRedemListDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n tipoMovRedemList: state.tipoMovRedem.tipoMovRedemList,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getTipoMovRedemList,\r\n openDialog,\r\n hideDialog,\r\n modifyTipoMovRedem,\r\n removeTipoMovRedem,\r\n addTipoMovRedem,\r\n updateTipoMovRedemListDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresTipoMovRedem));","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_PROMOCION,\r\n MODIFY_PROMOCION,\r\n ADD_PROMOCION,\r\n DELETE_PROMOCION,\r\n UPDATE_PROMOCION,\r\n} from '../constants/action_types';\r\n\r\nexport function getPromocionList(centroId) {\r\n return getData('DCPromocions?centro_id='+centroId, GET_PROMOCION, centroId);\r\n}\r\n\r\nexport function modifyPromocion(promocion) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_PROMOCION, payload: promocion });\r\n }\r\n}\r\n\r\nexport function addPromocion(promocion) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_PROMOCION, payload: promocion });\r\n }\r\n}\r\n\r\nexport function removePromocion(promocion) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_PROMOCION, payload: promocion });\r\n }\r\n}\r\n\r\nexport function updatePromocionListDB (promocionList, centro_id) {\r\n return postData('DCPromocions/lista?centro_id=' + centro_id, UPDATE_PROMOCION, promocionList, 'Promociones del centro actualizadas', undefined);\r\n}\r\n\r\n","\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\n//import update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getPromocionList, modifyPromocion, removePromocion, addPromocion, updatePromocionListDB } from '../../actions/promocion_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n }, formControl: {\r\n marginLeft: '10px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresPromocion extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n centroId: this.props.centroId ? this.props.centroId : undefined,\r\n };\r\n\r\n };\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getPromocionList(this.state.centroId ? this.state.centroId : -1);\r\n\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkPromocion = (promocion) => {\r\n if (this.props.promocionList.find(c => (c.descr === promocion.descr) && (c.id !== promocion.id))) {\r\n this.messageDialog(`Ya existe una promocion con descripción ${promocion.descr}`);\r\n return false;\r\n } else if (!promocion.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una descripción');\r\n return false;\r\n } else if (parseInt(promocion.puntosFijos) < 0) {\r\n this.messageDialog('Los puntos fijos deben ser positivos');\r\n return false;\r\n } else if (parseFloat(promocion.puntosPorEuro) < 0.0) {\r\n this.messageDialog('Los puntos por euro deben ser positivos');\r\n return false;\r\n } else if ((!promocion.puntosFijos || parseInt(promocion.puntosFijos) === 0) &&\r\n (!promocion.puntosPorEuro || parseFloat(promocion.puntosPorEuro) === 0.0)) {\r\n this.messageDialog('Ambos puntos no pueden ser cero');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n addNewPromocion = (promocion) => {\r\n this.props.setSaveState(true);\r\n this.props.addPromocion(promocion);\r\n };\r\n\r\n newPromocion = () => {\r\n if (this.state.centroId !== undefined && this.state.centroId !== 10 && this.state.centroId !== -1) {\r\n this.props.openDialog('EditPromocion', {\r\n promocion: {},\r\n okHandler: this.addNewPromocion,\r\n checkPromocion: this.checkPromocion,\r\n centroId: this.state.centroId\r\n }, uuidv4());\r\n\r\n }\r\n else {\r\n this.messageDialog('Debe escoger un centro antes de crear una promoción');\r\n }\r\n };\r\n\r\n\r\n editPromocion = (promocion) => {\r\n\r\n this.props.openDialog('EditPromocion', {\r\n promocion: promocion,\r\n checkPromocion: this.checkPromocion,\r\n okHandler: (sf) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyPromocion(sf);\r\n },\r\n centroId: this.state.centroId,\r\n userId: this.props.user.id,\r\n\r\n }, uuidv4());\r\n };\r\n\r\n handleDeleteRow = (promocion) => {\r\n this.props.setSaveState(true);\r\n this.props.removePromocion(promocion);\r\n };\r\n\r\n // ddw centros events\r\n centroSelectList = () => {\r\n\r\n return this.props.centros.filter(c => c.isGroup === false && c.activo === 1).map((centro, index) => {\r\n return (\r\n \r\n );\r\n })\r\n };\r\n\r\n handleChangeSelect = event => {\r\n\r\n const c_id = event.target.value ? event.target.value : 1;\r\n this.setState({ ...this.state, centroId: c_id });\r\n this.props.getPromocionList(event.target.value ? event.target.value : 1);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n\r\n {this.props.centros ?\r\n \r\n \r\n Centro\r\n \r\n this.handleChangeSelect(event)}\r\n >\r\n {this.props.centros.find(c => c.id === this.props.centroId) === undefined ? : ''}\r\n {this.centroSelectList()}\r\n \r\n \r\n : ''}\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresPromocion.propTypes = {\r\n //state\r\n promocionList: PropTypes.array.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getPromocionList: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyPromocion: PropTypes.func.isRequired,\r\n removePromocion: PropTypes.func.isRequired,\r\n addPromocion: PropTypes.func.isRequired,\r\n updatePromocionListDB: PropTypes.func.isRequired,\r\n // user ddw\r\n centros: PropTypes.array.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n promocionList: state.promocion.promocionList,\r\n\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n centroId: state.promocion.centroId\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getPromocionList,\r\n openDialog,\r\n hideDialog,\r\n modifyPromocion,\r\n removePromocion,\r\n addPromocion,\r\n updatePromocionListDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresPromocion));","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_MOTIVO,\r\n MODIFY_MOTIVO,\r\n ADD_MOTIVO,\r\n DELETE_MOTIVO,\r\n UPDATE_MOTIVO,\r\n} from '../constants/action_types';\r\n\r\nexport function getMotivo() {\r\n return getData('CvMotivos', GET_MOTIVO);\r\n}\r\n\r\nexport function modifyMotivo(motivo) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_MOTIVO, payload: motivo });\r\n }\r\n}\r\n\r\nexport function addMotivo(motivo) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_MOTIVO, payload: motivo });\r\n }\r\n}\r\n\r\nexport function removeMotivo(motivo) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_MOTIVO, payload: motivo });\r\n }\r\n}\r\n\r\nexport function updateMotivoDB (motivo) {\r\n return postData('CvMotivos/grupos', UPDATE_MOTIVO, motivo, 'Motivos actualizados', undefined);\r\n\r\n}\r\n","\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\n//import update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getMotivo, modifyMotivo, removeMotivo, addMotivo, updateMotivoDB } from '../../actions/motivo_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeAuxiliaresMotivo extends Component {\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getMotivo();\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkCvMotivo = (motivo) => {\r\n if (this.props.motivo.find(c => (c.descr === motivo.descr) && (c.iKind === motivo.iKind) && (c.id !== motivo.id))) {\r\n this.messageDialog(`Ya existe una motivo con descripción ${motivo.descr}`);\r\n return false;\r\n } else if (!motivo.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una Descripción');\r\n return false;\r\n }\r\n\r\n else return true;\r\n };\r\n\r\n editMotivo = (motivo) => {\r\n\r\n this.props.openDialog('EditCvMotivo', {\r\n motivo: motivo,\r\n checkMotivo: this.checkCvMotivo,\r\n okHandler: (sf) => {\r\n this.props.setSaveState(true);\r\n this.props.modifyMotivo(sf);\r\n },\r\n\r\n }, uuidv4());\r\n };\r\n\r\n newMotivo = () => {\r\n this.props.openDialog('EditCvMotivo', {\r\n motivo: {},\r\n checkMotivo: this.checkCvMotivo,\r\n okHandler: (tp) => {\r\n this.props.setSaveState(true);\r\n this.props.addMotivo(tp);\r\n },\r\n\r\n }, uuidv4());\r\n }; \r\n\r\n handleDeleteRow = motivo => {\r\n this.props.setSaveState(true);\r\n this.props.removeMotivo(motivo);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeAuxiliaresMotivo.propTypes = {\r\n //state\r\n motivo: PropTypes.array.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getMotivo: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifyMotivo: PropTypes.func.isRequired,\r\n removeMotivo: PropTypes.func.isRequired,\r\n addMotivo: PropTypes.func.isRequired,\r\n updateMotivoDB: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n motivo: state.motivo.motivos,\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getMotivo,\r\n openDialog,\r\n hideDialog,\r\n modifyMotivo,\r\n removeMotivo,\r\n addMotivo,\r\n updateMotivoDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeAuxiliaresMotivo));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport uuidv4 from 'uuid';\r\n\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, loading } from '../../actions';\r\nimport { getData } from '../../dataLib';\r\nimport { setCentroDia } from '../../actions/centro_dia_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Input from '@material-ui/core/Input';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n },\r\n formControl:{\r\n marginLeft: '10px'\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeArticulo extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n centroId: this.props.centroDiaSelected.dia !== '' ? this.props.centroDiaSelected.centro.id : 1,\r\n articulos: [],\r\n }\r\n\r\n };\r\n\r\n componentDidMount() {\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.getArticulos(this.state.centroId ? this.state.centroId : -1);\r\n\r\n };\r\n\r\n getArticulos = (centro_id) => {\r\n\r\n this.props.loading(true);\r\n getData(\r\n 'ArticuloCompraCtl/list/' + centro_id,\r\n (response) => {\r\n this.props.loading(false);\r\n this.setState({ ...this.state, articulos: response.data })\r\n },\r\n () => {\r\n this.props.loading(false);\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching ArticuloCompraCtl'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n\r\n editArticulo = (articulo) => {\r\n this.props.navigate(\"edit_articulo/\" + articulo.idArticuloCompraCentro);\r\n };\r\n\r\n handleSelectCentrosValueChange = (event) => {\r\n const c_id = parseInt(event.target.value ? event.target.value : 1);\r\n this.setState({ ...this.state, centroId: c_id },\r\n () => {\r\n this.getArticulos(c_id);\r\n this.props.setCentroDia(c_id, this.props.centroDiaSelected.dia, false);\r\n });\r\n };\r\n\r\n renderSelectCentros = () => {\r\n\r\n if (this.props.kd !== undefined) return('');\r\n \r\n const perfil = this.props.userProfile.selectedCentroProfile?this.props.userProfile.selectedCentroProfile.iPerfil:0;\r\n\r\n const centros = [0, 4, 5, 17, 20].includes(perfil) ?\r\n this.props.centros.filter(c => c.activo === 1)\r\n : this.props.centros.filter(c => c.id === this.props.userProfile.selectedCentroProfile.centroId);\r\n\r\n const { classes } = this.props;\r\n return (\r\n \r\n Centro\r\n }\r\n name=\"centroId\"\r\n >\r\n {centros.map(centro => {\r\n return ()\r\n })}\r\n \r\n \r\n );\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n\r\n
\r\n
\r\n\r\n {this.renderSelectCentros()}\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeArticulo.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n userProfile: state.userProfile,\r\n centros: state.centros.centros,\r\n centroDiaSelected: state.centroDiaSelected,\r\n kd: state.userProfile.kd,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n openDialog,\r\n setCentroDia,\r\n loading\r\n }, dispatch);\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeArticulo));\r\n","import React from 'react';\r\nimport PropTypes from \"prop-types\";\r\n\r\n//#region CSS\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardActionArea from \"@material-ui/core/CardActionArea\";\r\nimport CardMedia from \"@material-ui/core/CardMedia\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport DoneOutlineIcon from '@material-ui/icons/DoneOutline';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n marginTop: \"15px\",\r\n marginBottom: \"25px\"\r\n },\r\n cardInActivo: {\r\n width: 345,\r\n height: \"240px\",\r\n marginTop: \"30px\",\r\n boxShadow: \"0px 2px 1px -1px rgba(255, 1, 200, 0.89), 0px 1px 1px 0px rgba(255, 1, 200, 0.89), 0px 1px 3px 0px rgba(255, 1, 200, 0.89);\"\r\n },\r\n cardActivo: {\r\n width: 345,\r\n height: \"240px\",\r\n marginTop: \"30px\",\r\n boxShadow: \"0px 2px 1px -1px rgba(1, 255, 1, 0.89), 0px 1px 1px 0px rgba(1, 255, 1, 0.89), 0px 1px 3px 0px rgba(1, 255, 1, 0.89);\"\r\n },\r\n media: {\r\n height: \"130px\",\r\n width: \"99%\",\r\n backgroundSize: \"contain\",\r\n padding: \"3px\"\r\n },\r\n inputElementLeft: {\r\n textAlign: \"start\",\r\n cursor: \"auto\"\r\n }\r\n ,\r\n inputElementRight: {\r\n textAlign: \"end\",\r\n cursor: \"auto\"\r\n }\r\n});\r\n//#endregion\r\n\r\nfunction articulo_desc({ articulo, tickets, ticketsSugeridos, stock, isActivo }) {\r\n\r\n const classes = useStyles();\r\n\r\n let fotoName = 'miniSinFoto';\r\n\r\n if(articulo.articuloCompraFoto.length !== 0){\r\n const predeterminada = articulo.articuloCompraFoto.find(f => f.bPredeterminada === true);\r\n if(predeterminada) fotoName = predeterminada.fotoId;\r\n }\r\n\r\n //const fotoName = articulo.articuloCompraFoto.length !== 0 ? articulo.articuloCompraFoto.find(f => f.bPredeterminada === true).fotoId : 'miniSinFoto';\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {articulo.descr}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 ? new Date(articulo.dcPedidoLinea[0].pedido.fDoc).toLocaleDateString('es-ES', { year: 'numeric', month: 'numeric', day: 'numeric' }) : 'Sin última fecha compra'}\r\n InputProps={{ classes: { input: classes.inputElementLeft }, readOnly: true }}\r\n variant=\"outlined\"\r\n />\r\n \r\n
\r\n \r\n \r\n {isActivo ?\r\n \r\n \r\n \r\n Activo\r\n \r\n \r\n : \r\n \r\n \r\n Inactivo\r\n \r\n }\r\n\r\n \r\n \r\n \r\n\r\n \r\n }\r\n label={\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n }\r\n label={\r\n \r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n );\r\n}\r\n\r\nexport default articulo_desc;\r\n\r\narticulo_desc.propTypes = {\r\n gift: PropTypes.shape({\r\n name: PropTypes.string,\r\n image: PropTypes.string,\r\n points: PropTypes.number,\r\n stock: PropTypes.number,\r\n }),\r\n onClick: PropTypes.func,\r\n options: PropTypes.object\r\n};","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router'\r\n\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport uuidv4 from 'uuid';\r\nimport update from 'immutability-helper';\r\n\r\n\r\nimport ArticuloDesc from './articulo_desc';\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Icon from '@material-ui/core/Icon';\r\n\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\n//actions:\r\nimport { navigate, openDialog } from '../../actions';\r\n\r\nimport { getData, deleteData } from '../../dataLib';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n // flexGrow: 1,\r\n width: 750\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: 112,\r\n marginBottom: 15,\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n minWidth: 520,\r\n },\r\n formControl: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 25px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n formRight: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 0 5px 20px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n formSelect: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '5px 0 5px 20px',\r\n minWidth: 120,\r\n height: 72,\r\n width: 185,\r\n },\r\n formComent: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '10px 0 5px 25px',\r\n width: 520,\r\n minWidth: 120,\r\n },\r\n grid: {\r\n // padding: '0 12px',\r\n width: '100%',\r\n },\r\n buttonAtras: {\r\n margin: '0 0 10px 16px',\r\n height: 40,\r\n width: 123,\r\n padding: '10px 4%',\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n centroSelect: {\r\n maxWidth: 240\r\n },\r\n modeloSelect: {\r\n marginRight: 20,\r\n maxWidth: 240\r\n },\r\n buttonIcon: {\r\n marginLeft: theme.spacing(2),\r\n borderRadius: 0,\r\n border: 'none',\r\n boxShadow: 'none',\r\n height: 48\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n inputElementLeft: {\r\n textAlign: \"start\",\r\n cursor: \"auto\"\r\n }\r\n});\r\n\r\nclass ArticuloEdit extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n articuloCompraCentroId: -1,\r\n detalles: {},\r\n isLoading: true,\r\n historico: [],\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n this.getArticuloDetalles(parseInt(this.props.match.params.id));\r\n };\r\n\r\n getArticuloDetalles = (articulo_compra_centro_id) => {\r\n\r\n getData(\r\n 'ArticuloCompraCtl/detalles/' + articulo_compra_centro_id,\r\n (response) => {\r\n\r\n // corrige los centros para que solo figure la descripción y en\r\n // el caso de los pedidos el precio de la línea (porque la grid no\r\n // permite mezclar campos anidados)\r\n response.data.articuloCompraCentro.forEach(p => p.centro = p.centro.descr);\r\n response.data.dcPedidoLinea.forEach(p => {\r\n p.fDoc = p.pedido.fDoc;\r\n p.centro = p.pedido.centro.descr;\r\n p.proveedor = p.pedido.proveedorDescr;\r\n p.documento = p.pedido.refPedido;\r\n });\r\n\r\n this.setState({\r\n ...this.state,\r\n detalles: response.data,\r\n articuloCompraCentroId: articulo_compra_centro_id,\r\n isLoading: false\r\n })\r\n },\r\n () => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching detalles ArticuloCompraCtl'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n getHistorico = () => {\r\n\r\n this.setState({ ...this.state, isLoading: true });\r\n getData(\r\n 'ArticuloCompraCtl/historico/' + this.state.articuloCompraCentroId,\r\n (response) => {\r\n this.setState({\r\n ...this.state,\r\n historico: response.data,\r\n isLoading: false\r\n })\r\n },\r\n () => {\r\n this.setState({ ...this.state, isLoading: false });\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'ERROR fetching histórico ArticuloCompraCtl'\r\n }, uuidv4(), false, 'sm');\r\n },\r\n this.props.user\r\n );\r\n };\r\n\r\n\r\n goBack = () => {\r\n this.props.navigate(\"mae_redemption_articulo\");\r\n }\r\n\r\n newCodigoBarras = () => {\r\n this.props.openDialog('EditCodigoBarras', {\r\n okHandler: (nuevoCodigo) => {\r\n //add \r\n const newCodigos = [...this.state.detalles.articuloCompraCodBarras, nuevoCodigo];\r\n const detalles = { ...this.state.detalles, articuloCompraCodBarras: newCodigos };\r\n this.setState({ ...this.state, detalles: detalles });\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'Código de barras añadido'\r\n }, 'post_ok_codBarras', false, 'sm');\r\n\r\n },\r\n openDialog: this.props.openDialog,\r\n codigo: { articuloCompraId: this.state.detalles.id },\r\n user: this.props.user\r\n }, 'new_codigo_barras');\r\n };\r\n\r\n handleDeleteCodigoDeBarras = codigo => {\r\n\r\n this.props.openDialog(\r\n 'ConfirmationDialog',\r\n {\r\n message: '¿Desea borrar el código de barras ' + codigo.codBarras + ' para este artículo?',\r\n acceptHandler: () => {\r\n const url = 'ArticuloCompraCodBarras/' + codigo.id;\r\n deleteData(url, () => {\r\n const newCodigos = this.state.detalles.articuloCompraCodBarras.filter(c => c.id !== codigo.id)\r\n const detalles = { ...this.state.detalles, articuloCompraCodBarras: newCodigos }\r\n this.setState({ ...this.state, detalles: detalles });\r\n },\r\n (error) => {\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'error borrando codigo de barras'\r\n }, 'error_delete_codBarras', false, 'sm');\r\n },\r\n this.props.user);\r\n }\r\n },\r\n 'borrar_codigo_barras',\r\n false,\r\n 'sm',\r\n );\r\n\r\n };\r\n\r\n openEditCodigo = codigo => {\r\n this.props.openDialog('EditCodigoBarras', {\r\n okHandler: (nuevoCodigo) => {\r\n //modify\r\n const newCodigos = this.state.detalles.articuloCompraCodBarras.map(c => {\r\n if (c.id === codigo.id) return nuevoCodigo;\r\n else return c;\r\n });\r\n const detalles = { ...this.state.detalles, articuloCompraCodBarras: newCodigos }\r\n this.setState({ ...this.state, detalles: detalles });\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: 'Código de barras modificado'\r\n }, 'put_ok_codBarras', false, 'sm');\r\n\r\n\r\n },\r\n openDialog: this.props.openDialog,\r\n codigo: codigo,\r\n user: this.props.user\r\n }, 'edit_codigo_barras');\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n let tickets = 0, ticketsSugeridos = 0, stock = 0, bActivo = true;\r\n\r\n const height_header = 40, height_row = 35;\r\n\r\n if (!this.state.isLoading && this.state.detalles && this.state.detalles.articuloCompraCentro) {\r\n let ac = this.state.detalles.articuloCompraCentro.find(c => c.id === this.state.articuloCompraCentroId);\r\n tickets = ac.puntos;\r\n ticketsSugeridos = Math.round(parseFloat(this.state.detalles.ultPrecio) * 60.5);\r\n stock = ac.stock;\r\n bActivo = ac.activo;\r\n /* if (this.state.detalles.dcPedidoLinea && this.state.detalles.dcPedidoLinea.length > 0) {\r\n ultFechaCompra = new Date(this.state.detalles.dcPedidoLinea[0].pedido.fDoc).toLocaleDateString('es-ES', { year: 'numeric', month: 'numeric', day: 'numeric' });\r\n } */\r\n }\r\n\r\n let columnsStocks=[\r\n { key: 'centro', name: 'Centro', editable: false, dragable: false, width: 150},\r\n { key: 'activo', name: 'Activo', type: 'bool', editable: false, dragable: false, width: 55 },\r\n { key: 'puntos', name: 'Puntos', type: 'int', editable: false, dragable: false, width: 55 },\r\n { key: 'stock', name: 'Stock', type: 'int', editable: false, dragable: false, width: 55 },\r\n { key: 'precioMedio', name: 'Precio Medio', type: 'float', editable: false, dragable: false, width: 65 },\r\n { key: 'bStockTienda', name: 'Tienda', type: 'bool', editable: false, dragable: false, width: 55 },\r\n { key: 'bStockAlmacen', name: 'Almacen', type: 'bool', editable: false, dragable: false, width: 55 },\r\n { key: 'bStockMaquina', name: 'Máquina', type: 'bool', editable: false, dragable: false, width: 55 },\r\n { key: 'fAlta', name: 'Fecha alta', type: 'date', editable: false, dragable: false, width: 80 },\r\n { key: 'fBaja', name: 'Fecha baja', type: 'date', editable: false, dragable: false, width: 80 },\r\n ];\r\n if ( this.props.kd ) columnsStocks.splice(0,1);\r\n\r\n let columnsHistoricoCompras=[\r\n { key: 'fDoc', name: 'Fecha', type: 'date', editable: false, dragable: false, width: 80 },\r\n { key: 'centro', name: 'Centro', editable: false, dragable: false, width: 150 },\r\n { key: 'proveedor', name: 'Proveedor', editable: false, dragable: false, width: 250 },\r\n { key: 'documento', name: 'Documento', editable: false, dragable: false, width: 100 },\r\n { key: 'cantidad', name: 'Unidades', type: 'int', editable: false, dragable: false, width: 55 },\r\n { key: 'precio', name: 'Precio Compra', type: 'float', editable: false, dragable: false, width: 65 },\r\n ];\r\n if ( this.props.kd ) columnsHistoricoCompras.splice(1,1);\r\n\r\n let columnsHistoricoMovimientos=[\r\n { key: 'fecha', name: 'Fecha', type: 'date', editable: false, dragable: false, width: 80 },\r\n { key: 'movimiento', name: 'Movimiento', editable: false, dragable: false, width: 150 },\r\n { key: 'centro', name: 'Centro', editable: false, dragable: false, width: 150 },\r\n { key: 'cli_Prov', name: 'Cliente/Proveedor', editable: false, dragable: false, width: 250 },\r\n { key: 'unidades', name: 'Unidades', type: 'float', editable: false, dragable: false, width: 55 },\r\n ];\r\n if ( this.props.kd ) columnsHistoricoMovimientos.splice(2,1);\r\n\r\n\r\n\r\n return (\r\n
\r\n {!this.state.isLoading && this.state.detalles ?\r\n
\r\n
\r\n
\r\n \r\n \r\n {' '}\r\n keyboard_backspace\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n Stocks\r\n \r\n
\r\n
\r\n Histórico de compras\r\n \r\n
\r\n
\r\n Histórico movimientos\r\n \r\n \r\n
\r\n
\r\n
\r\n :\r\n
\r\n \r\n
\r\n }\r\n
\r\n );\r\n };\r\n\r\n};\r\n\r\nArticuloEdit.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n kd : state.userProfile.kd,\r\n };\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n openDialog\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withStyles(styles, { withTheme: true })(ArticuloEdit)));\r\n","import {getData, postData} from './redux_data';\r\nimport {\r\n GET_SEGMENTACION,\r\n MODIFY_SEGMENTACION,\r\n ADD_SEGMENTACION,\r\n DELETE_SEGMENTACION,\r\n UPDATE_SEGMENTACION,\r\n} from '../constants/action_types';\r\n\r\nexport function getSegmentacionList(centroId) {\r\n return getData('DCSegmentacions?centro_id='+centroId, GET_SEGMENTACION, centroId);\r\n}\r\n\r\nexport function modifySegmentacion(segmentacion) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: MODIFY_SEGMENTACION, payload: segmentacion });\r\n }\r\n}\r\n\r\nexport function addSegmentacion(segmentacion) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: ADD_SEGMENTACION, payload: segmentacion });\r\n }\r\n}\r\n\r\nexport function removeSegmentacion(segmentacion) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: DELETE_SEGMENTACION, payload: segmentacion });\r\n }\r\n}\r\n\r\nexport function updateSegmentacionListDB (segmentacionList, centro_id) {\r\n return postData('DCSegmentacions/lista?centro_id=' + centro_id, UPDATE_SEGMENTACION, segmentacionList, 'Segmentaciones del centro actualizadas', undefined);\r\n}\r\n\r\n","\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, setSaveState } from '../../actions';\r\nimport { getSegmentacionList, modifySegmentacion, removeSegmentacion, addSegmentacion, updateSegmentacionListDB } from '../../actions/segmentacion_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px'\r\n }, formControl: {\r\n marginLeft: '10px'\r\n },\r\n buttonsBottom: {\r\n marginRight: 15,\r\n padding: '10px 4%',\r\n marginBottom: 60,\r\n borderRadius: 0,\r\n textTransform: 'capitalize',\r\n color: 'white',\r\n border: 'none',\r\n boxShadow: 'none',\r\n marginLeft: 8,\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n});\r\n\r\nclass MaeSegmentacion extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n centroId: this.props.centroId ? this.props.centroId : undefined,\r\n };\r\n\r\n };\r\n\r\n componentDidMount() {\r\n\r\n // Al iniciar la carga de la página, si no existe usuario y no está autorizado se va al home, sino carga la lista\r\n // de segmentaciones (action).\r\n\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(\"\"); //go to home page\r\n return;\r\n }\r\n\r\n this.props.getSegmentacionList(this.state.centroId ? this.state.centroId : -1);\r\n\r\n };\r\n\r\n messageDialog = (msg) => {\r\n\r\n // subrutina auxiliar para mostrar mensajes pop-up\r\n\r\n this.props.openDialog('SimpleMessage', {\r\n message: msg\r\n }, uuidv4(), false, 'sm');\r\n\r\n };\r\n\r\n checkValues = (linea) => {\r\n\r\n // Comprobar que:\r\n // - en \"entre\" el param1 sea inferior o igual al param2\r\n // - que ho hayan duplicados de operador y campo\r\n // - que solo se haya informado param2 si es \"entre\"\r\n if ( linea.iOperator==4 && linea.param2 && parseInt(linea.param1) > parseInt(linea.param2) )\r\n {\r\n this.messageDialog('param1 debe ser mayor o igual que param2');\r\n return false;\r\n }\r\n\r\n // const min = this.state.segmentacionLineaList.reduce(function (prev, current) {\r\n // return (prev.id < current.id) ? prev : current\r\n // })\r\n // const minId = min === undefined ? -1 : (min.id > 0 ? -1 : min.id - 1);\r\n\r\n // if (this.state.partidasPorTipo.find(p => (p.iTipopartidaElem === partida.iTipopartidaElem) && (p.id !== partida.id))) {\r\n // this.messageError('Ya existen partidas para este tipo de partida');\r\n // return false;\r\n // }\r\n return true;\r\n };\r\n\r\n\r\n\r\n checkSegmentacion = (segmentacion) => {\r\n\r\n // Llamada desde el Edit chequea que la segmentación sea correcta, \r\n // compone el where y cuenta los clientes que hay\r\n\r\n if (this.props.segmentacionList.find(c => (c.descr === segmentacion.descr) && (c.id !== segmentacion.id))) {\r\n this.messageDialog(`Ya existe una segmentación con descripción ${segmentacion.descr}`);\r\n return false;\r\n } else if (!segmentacion.descr.trim()) {\r\n this.messageDialog('Por favor, introduzca una descripción');\r\n return false;\r\n } else if (typeof segmentacion.segmentacionLineaList === 'undefined' || segmentacion.segmentacionLineaList.length === 0) {\r\n this.messageDialog('Debe existir algún criterio para la segmentación');\r\n return false;\r\n } \r\n segmentacion.segmentacionLineaList.forEach((linea) => \r\n {\r\n // Comprobar que:\r\n // - en \"entre\" el param1 sea inferior o igual al param2\r\n // - que ho hayan duplicados de operador y campo\r\n // - que solo se haya informado param2 si es \"entre\"\r\n if ( linea.iOperator==4 && linea.param2 && parseInt(linea.param1) > parseInt(linea.param2) )\r\n {\r\n this.messageDialog('param1 debe ser mayor o igual que param2');\r\n return false;\r\n }\r\n });\r\n\r\n return true;\r\n };\r\n\r\n addNewSegmentacionCallback = (segmentacion) => {\r\n\r\n // Llamda desde el Edit añade (action) la segmentación\r\n\r\n this.props.setSaveState(true);\r\n this.props.addSegmentacion(segmentacion);\r\n };\r\n\r\n newSegmentacion = () => {\r\n \r\n // Perimte añadir una segmentación (no editarla porque está vacía) siempre y cuando el centro\r\n // esté definido y no sea el centro Ilusiona global\r\n\r\n if (this.state.centroId !== undefined && this.state.centroId !== 10 && this.state.centroId !== -1) {\r\n this.props.openDialog('EditSegmentacion', {\r\n segmentacion: {},\r\n okHandler: this.addNewSegmentacionCallback,\r\n checkSegmentacion: this.checkSegmentacion,\r\n centroId: this.state.centroId,\r\n checkValues: this.checkValues,\r\n }, uuidv4());\r\n\r\n }\r\n else {\r\n this.messageDialog('Debe escoger un centro antes de crear una segmentación');\r\n }\r\n };\r\n\r\n\r\n editSegmentacion = (segmentacion) => {\r\n\r\n // Permite editar la segmentación que se pasa por argumento\r\n\r\n this.props.openDialog('EditSegmentacion', {\r\n segmentacion: segmentacion,\r\n checkSegmentacion: this.checkSegmentacion,\r\n okHandler: (sf) => {\r\n this.props.setSaveState(true);\r\n this.props.modifySegmentacion(sf);\r\n },\r\n centroId: this.state.centroId,\r\n userId: this.props.user.id,\r\n checkValues: this.checkValues,\r\n\r\n }, uuidv4());\r\n };\r\n\r\n handleDeleteRow = (segmentacion) => {\r\n\r\n // Elimina (action) la segmentación\r\n\r\n this.props.setSaveState(true);\r\n this.props.removeSegmentacion(segmentacion);\r\n };\r\n\r\n // ddw centros events\r\n centroSelectList = () => {\r\n\r\n // Auxiliar para el ddw de centros que devuelve la lista de todos los centros activos y que no sean grupo\r\n\r\n return this.props.centros.filter(c => c.isGroup === false && c.activo === 1).map((centro, index) => {\r\n return (\r\n \r\n );\r\n })\r\n };\r\n\r\n handleChangeSelectCentro = event => {\r\n\r\n // Al seleccionar un centro se modifica el estado y se vuelve a seleccionar (action) todas las segmentaciones\r\n\r\n const c_id = event.target.value ? event.target.value : 1;\r\n this.setState({ ...this.state, centroId: c_id });\r\n this.props.getSegmentacionList(event.target.value ? event.target.value : 1);\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n\r\n {this.props.centros ?\r\n \r\n \r\n Centro\r\n \r\n this.handleChangeSelectCentro(event)}\r\n >\r\n {this.props.centros.find(c => c.id === this.props.centroId) === undefined ? : ''}\r\n {this.centroSelectList()}\r\n \r\n \r\n : ''}\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n\r\n };\r\n\r\n};\r\n\r\nMaeSegmentacion.propTypes = {\r\n //state\r\n segmentacionList: PropTypes.array.isRequired,\r\n user: PropTypes.object.isRequired,\r\n //dispatch\r\n navigate: PropTypes.func.isRequired,\r\n getSegmentacionList: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n modifySegmentacion: PropTypes.func.isRequired,\r\n removeSegmentacion: PropTypes.func.isRequired,\r\n addSegmentacion: PropTypes.func.isRequired,\r\n updateSegmentacionListDB: PropTypes.func.isRequired,\r\n // user ddw\r\n centros: PropTypes.array.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n segmentacionList: state.segmentacion.segmentacionList,\r\n\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n centroId: state.segmentacion.centroId\r\n };\r\n};\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators({\r\n navigate,\r\n getSegmentacionList,\r\n openDialog,\r\n hideDialog,\r\n modifySegmentacion,\r\n removeSegmentacion,\r\n addSegmentacion,\r\n updateSegmentacionListDB,\r\n setSaveState\r\n }, dispatch);\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps\r\n)(withStyles(styles, { withTheme: true })(MaeSegmentacion));","//helpers:\r\nimport { getData } from '../../dataLib';\r\n\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\n//import update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport DatePicker from '../../components/utils/DatePicker';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog } from '../../actions';\r\n\r\nimport { setCentroDia } from '../../actions/centro_dia_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: 800,\r\n },\r\n});\r\n\r\nclass EntPedido extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let fend = new Date();\r\n let fini = new Date(\r\n fend.getFullYear() - 1,\r\n fend.getMonth(),\r\n fend.getDate(),\r\n );\r\n this.state = {\r\n pedidoList: [],\r\n fIni: fini.toISOString().slice(0, 10),\r\n fEnd: fend.toISOString().slice(0, 10),\r\n showSpinner: false,\r\n };\r\n }\r\n\r\n refresh(aCentroId, aFIni, aFEnd) {\r\n let request =\r\n 'DCPedidos/lista?centro_id=' +\r\n aCentroId +\r\n '&f_ini=' +\r\n aFIni +\r\n '&f_end=' +\r\n aFEnd;\r\n\r\n this.setState({ ...this.state, showSpinner: true });\r\n getData(\r\n request,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n pedidoList: response.data.map(p => {\r\n return {\r\n ...p,\r\n ft_fDoc: new Date(p.fDoc).toLocaleDateString('es-ES', { year: '2-digit', month: '2-digit', day: '2-digit' })\r\n }\r\n }),\r\n fIni: aFIni,\r\n fEnd: aFEnd,\r\n showSpinner: false,\r\n });\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching lista pedido',\r\n },\r\n 'ent_pedido',\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, showSpinner: false });\r\n },\r\n this.props.user,\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(''); //go to home page\r\n return;\r\n }\r\n\r\n this.refresh(\r\n this.props.centroId ? this.props.centroId : -1,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n }\r\n\r\n messageDialog = msg => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: msg,\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n };\r\n\r\n editPedido = pedido => {\r\n this.props.openDialog(\r\n 'EditListaAlbaran',\r\n {\r\n pedido: pedido,\r\n openDialog: this.props.openDialog,\r\n centroDescr: pedido.centroDescr,\r\n user: this.props.user\r\n },\r\n uuidv4(),\r\n true,\r\n 'md',\r\n );\r\n };\r\n\r\n // ddw centros events\r\n centroSelectList = () => {\r\n return this.props.centros\r\n .filter(c => c.activo === 1)\r\n .map((centro, index) => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n handleChangeSelectCentro = event => {\r\n this.refresh(\r\n event.target.value ? event.target.value : -1,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n\r\n if (event.target.value)\r\n this.props.setCentroDia(event.target.value, undefined, false);\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.showSpinner === true)\r\n return (\r\n
\r\n \r\n
\r\n );\r\n else {\r\n var gridcols = [\r\n {\r\n key: 'estado',\r\n name: 'Estado',\r\n editable: false,\r\n dragable: false,\r\n width: 80,\r\n },\r\n {\r\n key: 'ft_fDoc',\r\n name: 'Fecha pedido',\r\n editable: false,\r\n dragable: false,\r\n width: 90,\r\n },\r\n ];\r\n\r\n if ([0, 4, 5, 16, 17, 20].includes(this.props.iPerfil))\r\n gridcols = gridcols.concat([\r\n {\r\n key: 'centro',\r\n name: 'Centro',\r\n editable: false,\r\n dragable: false,\r\n width: 100,\r\n },\r\n ]);\r\n\r\n gridcols = gridcols.concat([\r\n {\r\n key: 'obsv',\r\n name: 'Ref.',\r\n tooltip: 'Proveedor final u observaciones',\r\n editable: false,\r\n dragable: false,\r\n width: 250,\r\n },\r\n {\r\n key: 'refPedido',\r\n name: 'Doc.',\r\n tooltip: 'Referencia del pedido',\r\n editable: false,\r\n dragable: false,\r\n width: 50,\r\n },\r\n {\r\n key: 'proveedorDescr',\r\n name: 'Proveedor',\r\n editable: false,\r\n dragable: false,\r\n width: 200,\r\n },\r\n ]);\r\n\r\n return (\r\n
\r\n
\r\n\r\n \r\n {this.props.centros &&\r\n [0, 4, 5, 16, 17, 20].includes(this.props.iPerfil) ? (\r\n \r\n \r\n Centro\r\n \r\n \r\n this.handleChangeSelectCentro(event)\r\n }\r\n >\r\n {this.props.centros.find(\r\n c => c.id === this.props.centroId,\r\n ) === undefined ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n {this.centroSelectList()}\r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fIni')\r\n }\r\n }}\r\n onKeyPress={event => {\r\n if (event.key === 'Enter') {\r\n this.handleValueChangeDate(\r\n event,\r\n 'fIni',\r\n );\r\n this.refresh(\r\n this.props.centroId,\r\n event.target.value,\r\n this.state.fEnd,\r\n );\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fEnd')\r\n }\r\n }}\r\n onKeyPress={event => {\r\n if (event.key === 'Enter') {\r\n this.handleValueChangeDate(\r\n event,\r\n 'fEnd',\r\n );\r\n this.refresh(\r\n this.props.centroId,\r\n this.state.fIni,\r\n event.target.value,\r\n );\r\n }\r\n }}\r\n />\r\n \r\n\r\n {\r\n this.refresh(\r\n this.props.centroId,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n }}\r\n >\r\n Buscar\r\n \r\n
\r\n\r\n
\r\n {this.state.pedidoList ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\nEntPedido.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n // user ddw\r\n centros: PropTypes.array.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n centroDescr: PropTypes.string.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n centroId: state.centroDiaSelected.centro.id,\r\n centroDescr: state.centroDiaSelected.centro.centro, // es la descripción del centro¡?\r\n iPerfil: state.userProfile.selectedCentroProfile.iPerfil,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n navigate,\r\n setCentroDia,\r\n openDialog,\r\n hideDialog,\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps,\r\n)(withStyles(styles, { withTheme: true })(EntPedido));\r\n","//helpers:\r\nimport { getData, putData } from '../../dataLib';\r\n\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\n//import update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport DatePicker from '../../components/utils/DatePicker';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, loading } from '../../actions';\r\n\r\nimport { setCentroDia } from '../../actions/centro_dia_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: 800,\r\n },\r\n});\r\n\r\nclass EntPedido extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let fend = new Date();\r\n let fini = new Date(\r\n fend.getFullYear() - 1,\r\n fend.getMonth(),\r\n fend.getDate(),\r\n );\r\n this.state = {\r\n pedidoList: [],\r\n fIni: fini.toISOString().slice(0, 10),\r\n fEnd: fend.toISOString().slice(0, 10),\r\n };\r\n }\r\n\r\n refresh(aCentroId, aFIni, aFEnd) {\r\n let request =\r\n 'DCPedidos/pendiente?centro_id=' +\r\n aCentroId +\r\n '&f_ini=' +\r\n aFIni +\r\n '&f_end=' +\r\n aFEnd;\r\n\r\n this.props.loading(true);\r\n getData(\r\n request,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n pedidoList: response.data.map(p => {\r\n return {\r\n ...p,\r\n ft_fDoc: p.fDoc ? new Date(p.fDoc).toLocaleDateString('es-ES', { year: '2-digit', month: '2-digit', day: '2-digit' }) : '',\r\n }\r\n }),\r\n fIni: aFIni,\r\n fEnd: aFEnd,\r\n });\r\n this.props.loading(false);\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching pedido',\r\n },\r\n 'ent_albaran_pdte',\r\n false,\r\n 'sm',\r\n );\r\n this.props.loading(false);\r\n },\r\n this.props.user,\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(''); //go to home page\r\n return;\r\n }\r\n\r\n this.refresh(\r\n this.props.centroId ? this.props.centroId : -1,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n }\r\n\r\n messageDialog = msg => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: msg,\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n };\r\n\r\n modifyPedido = pedido => {\r\n this.refresh(this.props.centroId, this.state.fIni, this.state.fEnd);\r\n };\r\n\r\n editNewAlbaran = pedido => {\r\n this.props.openDialog(\r\n 'EditNuevoAlbaran',\r\n {\r\n pedido: pedido,\r\n imenu: \"1\",\r\n centroId: pedido.centroId,\r\n okHandler: totalAlbaran => {\r\n let puedeCerrarse = false;\r\n const nuevaLista = this.state.pedidoList.map(p => {\r\n if (p.id === pedido.id) {\r\n p.totalRecibido =\r\n parseFloat(p.totalRecibido) +\r\n parseFloat(totalAlbaran);\r\n if (Math.abs(p.totalRecibido - parseFloat(p.totalPedido)) < 0.01) {\r\n puedeCerrarse = true;\r\n }\r\n }\r\n return p;\r\n });\r\n this.setState({ ...this.state, pedidoList: nuevaLista });\r\n if (puedeCerrarse === true) {\r\n this.cierraPedido(pedido.id);\r\n }\r\n },\r\n openDialog: this.props.openDialog,\r\n centroDescr: pedido.centroDescr,\r\n user: this.props.user,\r\n iPerfil: this.props.iPerfil,\r\n kd: this.props.kd,\r\n },\r\n uuidv4(),\r\n true,\r\n 'md',\r\n );\r\n };\r\n\r\n // ddw centros events\r\n centroSelectList = () => {\r\n return this.props.centros\r\n .filter(c => c.activo === 1)\r\n .map((centro, index) => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n handleChangeSelectCentro = event => {\r\n this.refresh(\r\n event.target.value ? event.target.value : -1,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n\r\n if (event.target.value)\r\n this.props.setCentroDia(event.target.value, undefined, false);\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n cierraPedidoFromPdtes = pedido_id => {\r\n\r\n //obtener totales:\r\n // unidades\r\n // euros\r\n\r\n let URL = 'DCAlbarans/pendiente?pedido_id=' + pedido_id;\r\n\r\n getData(\r\n URL,\r\n response => {\r\n\r\n let totalUnidadesPedidas = 0;\r\n let totalUnidadesRecibidas = 0;\r\n let totalEurosPedido = 0.0;\r\n let totalEurosRecibidos = 0.0;\r\n\r\n response.data.lLineas.forEach(l => {\r\n totalUnidadesPedidas += l.cantidadPedido;\r\n totalEurosPedido += l.cantidadPedido * l.precio;\r\n totalUnidadesRecibidas += l.cantidadRecibida;\r\n totalEurosRecibidos += l.cantidadRecibida * l.precio;\r\n });\r\n\r\n const message = '¿Desea cerrar el pedido (' +\r\n this.state.pedidoList.find(c => pedido_id === c.id)\r\n .refPedido +\r\n ') ?\\n' +\r\n 'total de unidades pedidas: ' + totalUnidadesPedidas + '\\n' +\r\n 'total de unidades recibidas: ' + totalUnidadesRecibidas + '\\n' +\r\n 'total € pedido: ' + totalEurosPedido.toFixed(2) + '\\n' +\r\n 'total € recibidos: ' + totalEurosRecibidos.toFixed(2) + '\\n';\r\n\r\n\r\n this.props.openDialog(\r\n 'ConfirmationDialog',\r\n {\r\n message: message,\r\n acceptHandler: () => {\r\n this.cierraPedido(pedido_id);\r\n },\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR obteniendo pedido',\r\n },\r\n 'ent_nuevo_albaran',\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, showSpinner: false });\r\n },\r\n this.props.user,\r\n );\r\n\r\n console.log(this.state);\r\n\r\n\r\n };\r\n\r\n cierraPedido = pedido_id => {\r\n putData(\r\n 'DCPedidos/cierra/' + pedido_id,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n pedidoList: this.state.pedidoList.filter(\r\n p => p.id !== pedido_id,\r\n ),\r\n });\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'error cerrando el pedido',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n {},\r\n this.props.user,\r\n );\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n var gridcols = [\r\n {\r\n key: 'ft_fDoc',\r\n name: 'Fecha alta',\r\n tooltip: 'Fecha del pedido',\r\n editable: false,\r\n dragable: false,\r\n width: 80,\r\n },\r\n ];\r\n\r\n if ([0, 4, 5, 16, 17, 20].includes(this.props.iPerfil) && this.props.kd === undefined)\r\n gridcols = gridcols.concat([\r\n {\r\n key: 'centroDescr',\r\n name: 'Centro',\r\n tooltip: 'Centro',\r\n editable: false,\r\n dragable: false,\r\n width: 100,\r\n },\r\n ]);\r\n\r\n gridcols = gridcols.concat([\r\n {\r\n key: 'obsv',\r\n name: 'Ref.',\r\n tooltip: 'Proveedor final u observaciones',\r\n editable: false,\r\n dragable: false,\r\n width: 250,\r\n },\r\n {\r\n key: 'refPedido',\r\n name: 'Doc.',\r\n tooltip: 'Referencia del pedido',\r\n editable: false,\r\n dragable: false,\r\n width: 50,\r\n },\r\n {\r\n key: 'proveedorDescr',\r\n name: 'Proveedor',\r\n editable: false,\r\n dragable: false,\r\n width: 200,\r\n },\r\n {\r\n key: 'totalPedido',\r\n name: 'Total €',\r\n tooltip: 'Valor total del pedido',\r\n type: 'int',\r\n editable: false,\r\n dragable: false,\r\n width: 70,\r\n },\r\n {\r\n key: 'totalRecibido',\r\n name: 'Recib. €',\r\n tooltip: 'Valor albaranes recibidos',\r\n type: 'int',\r\n editable: false,\r\n dragable: false,\r\n width: 70,\r\n },\r\n // {\r\n // key: 'cerrar',\r\n // name: Cerrar,\r\n // editable: false,\r\n // dragable: false,\r\n // type: 'launch',\r\n // handleLaunchClick: row => {\r\n // this.cierraPedidoFromPdtes(row.id);\r\n // },\r\n // },\r\n ]);\r\n\r\n if ([0, 4, 5, 14, 15, 18].includes(this.props.iPerfil)) {\r\n gridcols = gridcols.concat([\r\n {\r\n key: 'cerrar',\r\n name: 'Cerrar',\r\n tooltip: 'Cerrar pedido',\r\n editable: false,\r\n dragable: false,\r\n type: 'launch',\r\n handleLaunchClick: row => {\r\n this.cierraPedidoFromPdtes(row.id);\r\n },\r\n },\r\n ]);\r\n }\r\n\r\n\r\n\r\n return (\r\n
\r\n
\r\n\r\n \r\n {this.props.centros &&\r\n [0, 4, 5, 16, 17, 20].includes(this.props.iPerfil) &&\r\n this.props.kd === undefined ? (\r\n \r\n \r\n Centro\r\n \r\n \r\n this.handleChangeSelectCentro(event)\r\n }\r\n >\r\n {this.props.centros.find(\r\n c => c.id === this.props.centroId,\r\n ) === undefined ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n {this.centroSelectList()}\r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fIni')\r\n }\r\n }}\r\n onKeyPress={event => {\r\n if (event.key === 'Enter') {\r\n this.handleValueChangeDate(\r\n event,\r\n 'fIni',\r\n );\r\n this.refresh(\r\n this.props.centroId,\r\n event.target.value,\r\n this.state.fEnd,\r\n );\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fEnd')\r\n }\r\n }}\r\n onKeyPress={event => {\r\n if (event.key === 'Enter') {\r\n this.handleValueChangeDate(\r\n event,\r\n 'fEnd',\r\n );\r\n this.refresh(\r\n this.props.centroId,\r\n this.state.fIni,\r\n event.target.value,\r\n );\r\n }\r\n }}\r\n />\r\n \r\n\r\n {\r\n this.refresh(\r\n this.props.centroId,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n }}\r\n >\r\n Buscar\r\n \r\n
\r\n\r\n
\r\n {this.state.pedidoList ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n
\r\n );\r\n\r\n }\r\n}\r\n\r\nEntPedido.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n // user ddw\r\n centros: PropTypes.array.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n centroDescr: PropTypes.string.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n centroId: state.centroDiaSelected.centro.id,\r\n centroDescr: state.centroDiaSelected.centro.centro, // es la descripción del centro¡?\r\n iPerfil: state.userProfile.selectedCentroProfile ? state.userProfile.selectedCentroProfile.iPerfil : 0,\r\n kd : state.userProfile.kd,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n navigate,\r\n setCentroDia,\r\n openDialog,\r\n hideDialog,\r\n loading\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps,\r\n)(withStyles(styles, { withTheme: true })(EntPedido));\r\n","//helpers:\r\nimport { getData, postData, putData, deleteData } from '../../dataLib';\r\n\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\n//import update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport DatePicker from '../../components/utils/DatePicker';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog } from '../../actions';\r\n\r\nimport { setCentroDia } from '../../actions/centro_dia_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\n\r\nimport * as config from '../../constants/configuration';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: 800,\r\n },\r\n});\r\n\r\nclass AccInventario extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let fend = new Date();\r\n let fini = new Date(\r\n fend.getFullYear() - 1,\r\n fend.getMonth(),\r\n fend.getDate(),\r\n );\r\n this.state = {\r\n inventarioList: [],\r\n fIni: fini.toISOString().slice(0, 10),\r\n fEnd: fend.toISOString().slice(0, 10),\r\n showSpinner: false,\r\n };\r\n }\r\n\r\n refresh(aCentroId, aFIni, aFEnd) {\r\n let request =\r\n 'DCInventarios?centro_id=' +\r\n aCentroId +\r\n '&f_ini=' +\r\n aFIni +\r\n '&f_end=' +\r\n aFEnd;\r\n\r\n if (this.state.showSpinner !== true)\r\n this.setState({ ...this.state, showSpinner: true });\r\n\r\n getData(\r\n request,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n inventarioList: response.data.map(p => {\r\n return {\r\n ...p,\r\n ft_fInventario: p.fInventario ? new Date(p.fInventario).toLocaleDateString('es-ES', { year: '2-digit', month: '2-digit', day: '2-digit' }) : '',\r\n ft_fValidado: p.fValidado ? new Date(p.fValidado).toLocaleDateString('es-ES', { year: '2-digit', month: '2-digit', day: '2-digit' }) : '',\r\n ft_fCerrado: p.fCerrado ? new Date(p.fCerrado).toLocaleDateString('es-ES', { year: '2-digit', month: '2-digit', day: '2-digit' }) : '',\r\n }\r\n }),\r\n fIni: aFIni,\r\n fEnd: aFEnd,\r\n showSpinner: false,\r\n });\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching inventario',\r\n },\r\n 'acc_inventario',\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, showSpinner: false });\r\n },\r\n this.props.user,\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(''); //go to home page\r\n return;\r\n }\r\n\r\n this.refresh(\r\n this.props.centroId ? this.props.centroId : -1,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n }\r\n\r\n messageDialog = msg => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: msg,\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n };\r\n\r\n editInventario = inventario => {\r\n // indica si este es el último inventario cerrado\r\n const ultimoCerrado =\r\n inventario.bCerrado === true &&\r\n !this.state.inventarioList.find(\r\n p =>\r\n p.centroId === inventario.centroId &&\r\n p.bCerrado === true &&\r\n p.fInventario > inventario.fInventario,\r\n );\r\n\r\n // indica si este es el primer inventario abierto\r\n const primeroAbierto =\r\n inventario.bCerrado === false &&\r\n !this.state.inventarioList.find(\r\n p =>\r\n p.centroId === inventario.centroId &&\r\n p.bCerrado === false &&\r\n p.fInventario < inventario.fInventario,\r\n );\r\n\r\n // obtiene el inventario\r\n let URL = 'DCInventarios/' + inventario.id;\r\n\r\n this.setState({ ...this.state, showSpinner: true });\r\n\r\n getData(\r\n URL,\r\n response => {\r\n // Llama al dialog de edición\r\n this.setState({ ...this.state, showSpinner: false });\r\n // añadea a cada fila del inventario un campo para el contro del color\r\n // de las columnas\r\n const newList = response.data.lLineas.map(p => {\r\n return { ...p, colColorTrue: true };\r\n });\r\n\r\n this.props.openDialog(\r\n 'EditInventario',\r\n {\r\n inventario: { ...response.data, lLineas: newList },\r\n user: this.props.user,\r\n iPerfil: this.props.iPerfil,\r\n ultimoCerrado: ultimoCerrado,\r\n primeroAbierto: primeroAbierto,\r\n\r\n okHandler: a_inventario => {\r\n const newArr = this.state.inventarioList.map(p => {\r\n if (p.id === a_inventario.id) {\r\n p.fValidado = a_inventario.fValidado;\r\n p.fInventario = a_inventario.fInventario;\r\n }\r\n return p;\r\n });\r\n this.setState({\r\n ...this.state,\r\n inventarioList: newArr,\r\n });\r\n\r\n this.updateDB(a_inventario);\r\n },\r\n\r\n cierraInventarioHandler: a_inventario => {\r\n const newArr = this.state.inventarioList.map(p => {\r\n if (p.id === a_inventario.id) {\r\n p.bCerrado = true;\r\n p.fCerrado = new Date()\r\n .toISOString()\r\n .slice(0, 10);\r\n }\r\n return p;\r\n });\r\n this.setState({\r\n ...this.state,\r\n inventarioList: newArr,\r\n });\r\n\r\n this.cierraInventarioDB(a_inventario);\r\n },\r\n\r\n abreInventarioHandler: a_inventario => {\r\n const newArr = this.state.inventarioList.map(p => {\r\n if (p.id === a_inventario.id) {\r\n p.bCerrado = false;\r\n p.fCerrado = {};\r\n }\r\n return p;\r\n });\r\n this.setState({\r\n ...this.state,\r\n inventarioList: newArr,\r\n });\r\n\r\n this.abreInventarioDB(a_inventario);\r\n },\r\n\r\n openDialog: this.props.openDialog,\r\n hideDialog: this.props.hideDialog,\r\n },\r\n uuidv4(),\r\n true,\r\n 'md',\r\n );\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching inventario',\r\n },\r\n 'edit_inventario',\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, showSpinner: false });\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n newInventario = () => {\r\n // indica si este es el último inventario cerrado\r\n const ultimoCerrado = false; // porque no está cerrado\r\n // indica si este es el primer inventario abierto\r\n const primeroAbierto =\r\n !this.state.inventarioList.find(\r\n p =>\r\n p.centroId === this.props.centroId &&\r\n p.bCerrado === false &&\r\n p.fInventario < new Date(),\r\n );\r\n\r\n // obtiene un nuevo inventario\r\n let URL =\r\n 'DCInventarios/new?centro_id=' +\r\n this.props.centroId +\r\n '&f_inventario=' +\r\n new Date().toISOString().slice(0, 10) +\r\n '&usuario_id=' +\r\n this.props.user.profile.sub; // esto es el usuario_id!!!\r\n\r\n this.setState({ ...this.state, showSpinner: true });\r\n\r\n getData(\r\n URL,\r\n response => {\r\n // Llama al dialog de edición\r\n this.setState({ ...this.state, showSpinner: false });\r\n\r\n this.props.openDialog(\r\n 'EditInventario',\r\n {\r\n inventario: response.data,\r\n user: this.props.user,\r\n iPerfil: this.props.iPerfil,\r\n\r\n ultimoCerrado: ultimoCerrado,\r\n primeroAbierto: primeroAbierto,\r\n //okHandler: this.updateDB,\r\n okHandler: a_inventario => {\r\n const newArr = this.state.inventarioList.map(p => {\r\n if (p.id === a_inventario.id) {\r\n p.fValidado = a_inventario.fValidado;\r\n p.fInventario = a_inventario.fInventario;\r\n }\r\n return p;\r\n });\r\n this.setState({\r\n ...this.state,\r\n inventarioList: newArr,\r\n });\r\n\r\n this.updateDB(a_inventario);\r\n },\r\n\r\n cierraInventarioHandler: a_inventario => {\r\n const newArr = this.state.inventarioList.map(p => {\r\n if (p.id === a_inventario.id) {\r\n p.bCerrado = true;\r\n p.fCerrado = new Date()\r\n .toISOString()\r\n .slice(0, 10);\r\n }\r\n return p;\r\n });\r\n this.setState({\r\n ...this.state,\r\n inventarioList: newArr,\r\n });\r\n\r\n this.cierraInventarioDB(a_inventario);\r\n },\r\n\r\n abreInventarioHandler: a_inventario => {\r\n this.props.openDialog('SimpleMessage', { message: 'Internal error: no debe abrirse un inventario abierto', }, 'edit_inventario', false, 'sm');\r\n },\r\n openDialog: this.props.openDialog,\r\n },\r\n uuidv4(),\r\n true,\r\n 'md',\r\n );\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching new inventario',\r\n },\r\n 'edit_inventario',\r\n false,\r\n 'sm',\r\n );\r\n this.setState({ ...this.state, showSpinner: false });\r\n },\r\n this.props.user,\r\n );\r\n };\r\n\r\n updateDB = a_inventario => {\r\n this.setState({ ...this.state, showSpinner: true });\r\n\r\n a_inventario.usuarioId = this.props.user.profile.sub;\r\n postData(\r\n 'DCInventarios',\r\n response => {\r\n if (a_inventario.id === 0) {\r\n this.messageDialog('Inventario guardado');\r\n this.refresh(\r\n this.props.centroId,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n } else {\r\n this.messageDialog('Inventario actualizado');\r\n this.setState({ ...this.state, showSpinner: false });\r\n }\r\n },\r\n () => {\r\n this.setState({ ...this.state, showSpinner: false });\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR actualizando inventario',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n a_inventario,\r\n this.props.user,\r\n );\r\n };\r\n\r\n cierraInventarioDB = a_inventario => {\r\n this.setState({ ...this.state, showSpinner: true });\r\n putData(\r\n 'DCInventarios/cierra?inventario_id=' +\r\n a_inventario.id +\r\n '&usuario_id=' +\r\n this.props.user.profile.sub,\r\n response => {\r\n this.setState({ ...this.state, showSpinner: false });\r\n this.messageDialog('Inventario cerrado');\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'error cerrando el inventario',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n a_inventario,\r\n this.props.user,\r\n );\r\n };\r\n\r\n abreInventarioDB = a_inventario => {\r\n this.setState({ ...this.state, showSpinner: true });\r\n putData(\r\n 'DCInventarios/abre?inventario_id=' +\r\n a_inventario.id +\r\n '&usuario_id=' +\r\n this.props.user.profile.sub,\r\n response => {\r\n this.setState({ ...this.state, showSpinner: false });\r\n this.messageDialog('Inventario abierto');\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'error abriendo el inventario',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n a_inventario,\r\n this.props.user,\r\n );\r\n };\r\n\r\n deleteInventario = inventario => {\r\n if ([0, 4, 5, 17, 20].includes(this.props.iPerfil)) {\r\n this.props.openDialog(\r\n 'ConfirmationDialog',\r\n {\r\n message:\r\n '¿Desea eliminar el inventario de ' +\r\n this.state.inventarioList\r\n .find(c => inventario.id === c.id)\r\n .fInventario.slice(0, 10) +\r\n ' ?',\r\n acceptHandler: () => {\r\n this.setState({ ...this.state, showSpinner: true });\r\n deleteData(\r\n 'DCInventarios/' + inventario.id,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n inventarioList: this.state.inventarioList.filter(\r\n p => p.id !== inventario.id,\r\n ),\r\n showSpinner: false,\r\n });\r\n this.messageDialog('Inventario borrado');\r\n },\r\n () => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'error borrando el inventario',\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n },\r\n this.props.user,\r\n );\r\n },\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n }\r\n };\r\n\r\n // ddw centros events\r\n centroSelectList = () => {\r\n return this.props.centros\r\n .filter(c => c.activo === 1)\r\n .map((centro, index) => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n handleChangeSelectCentro = event => {\r\n this.refresh(\r\n event.target.value ? event.target.value : -1,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n\r\n if (event.target.value)\r\n this.props.setCentroDia(event.target.value, undefined, false);\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.showSpinner === true)\r\n return (\r\n
\r\n \r\n
\r\n );\r\n else {\r\n return (\r\n
\r\n
\r\n\r\n \r\n {this.props.centros &&\r\n [0, 4, 5, 16, 17, 20].includes(this.props.iPerfil) &&\r\n this.props.kd === undefined ? (\r\n \r\n \r\n Centro\r\n \r\n \r\n this.handleChangeSelectCentro(event)\r\n }\r\n >\r\n {this.props.centros.find(\r\n c => c.id === this.props.centroId,\r\n ) === undefined ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n {this.centroSelectList()}\r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n \r\n {/* this.handleValueChange(event, 'fIni')}\r\n onKeyPress={(event) => {\r\n if (event.key === 'Enter') {\r\n this.handleValueChange(event, 'fIni');\r\n this.refresh(this.props.centroId, event.target.value, this.state.fEnd);\r\n };\r\n }}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fIni')\r\n }\r\n }}\r\n onKeyPress={event => {\r\n if (event.key === 'Enter') {\r\n this.handleValueChangeDate(\r\n event,\r\n 'fIni',\r\n );\r\n this.refresh(\r\n this.props.centroId,\r\n event.target.value,\r\n this.state.fEnd,\r\n );\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n {/* this.handleValueChange(event, 'fEnd')}\r\n onKeyPress={(event) => {\r\n if (event.key === 'Enter') {\r\n this.handleValueChange(event, 'fEnd');\r\n this.refresh(this.props.centroId, this.state.fIni, event.target.value);\r\n };\r\n }}\r\n /> */}\r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fEnd')\r\n }\r\n }}\r\n onKeyPress={event => {\r\n if (event.key === 'Enter') {\r\n this.handleValueChangeDate(\r\n event,\r\n 'fEnd',\r\n );\r\n this.refresh(\r\n this.props.centroId,\r\n this.state.fIni,\r\n event.target.value,\r\n );\r\n }\r\n }}\r\n />\r\n \r\n\r\n {\r\n this.refresh(\r\n this.props.centroId,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n }}\r\n >\r\n Buscar\r\n \r\n
\r\n\r\n
\r\n {this.state.inventarioList ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\nAccInventario.propTypes = {\r\n //state\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n // user ddw\r\n user: PropTypes.object.isRequired,\r\n centros: PropTypes.array.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n centroDescr: PropTypes.string.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n centroId: state.centroDiaSelected.centro.id,\r\n centroDescr: state.centroDiaSelected.centro.centro, // es la descripción del centro¡?\r\n iPerfil: state.userProfile.selectedCentroProfile.iPerfil,\r\n kd: state.userProfile.kd,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n navigate,\r\n setCentroDia,\r\n openDialog,\r\n hideDialog,\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps,\r\n)(withStyles(styles, { withTheme: true })(AccInventario));\r\n","//helpers:\r\nimport { getData } from '../../dataLib';\r\n\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\n//import update from 'immutability-helper';\r\nimport { bindActionCreators } from 'redux';\r\nimport uuidv4 from 'uuid';\r\nimport PropTypes from 'prop-types';\r\n\r\n//comopnents:\r\nimport NeuriteGrid from '../../components/neurite_grid';\r\nimport DatePicker from '../../components/utils/DatePicker';\r\n\r\n//actions:\r\nimport { navigate, openDialog, hideDialog, loading } from '../../actions';\r\n\r\nimport { setCentroDia } from '../../actions/centro_dia_actions';\r\n\r\n//material ui:\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport * as config from '../../constants/configuration';\r\nimport { ArrowRightSharp } from '@material-ui/icons';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n toolbar: {\r\n display: 'block',\r\n minHeight: '112px',\r\n },\r\n spinnerContainer: {\r\n width: '95%',\r\n height: 300,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n spinner: {\r\n width: '50px !important',\r\n height: '50px !important',\r\n },\r\n containerPair: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: 800,\r\n },\r\n});\r\n\r\nclass EntAlbaranHist extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let fend = new Date();\r\n let fini = new Date(\r\n fend.getFullYear() - 1,\r\n fend.getMonth(),\r\n fend.getDate(),\r\n );\r\n this.state = {\r\n albaranList: [],\r\n fIni: fini.toISOString().slice(0, 10),\r\n fEnd: fend.toISOString().slice(0, 10),\r\n };\r\n }\r\n\r\n refresh(aCentroId, aFIni, aFEnd) {\r\n let request =\r\n 'DCAlbarans/lista?centro_id=' +\r\n aCentroId +\r\n '&f_ini=' +\r\n aFIni +\r\n '&f_end=' +\r\n aFEnd;\r\n\r\n this.props.loading(true);\r\n getData(\r\n request,\r\n response => {\r\n this.setState({\r\n ...this.state,\r\n albaranList: response.data.map(p => {\r\n return {\r\n ...p,\r\n ft_fEntrega: p.fEntrega ? new Date(p.fEntrega).toLocaleDateString('es-ES', { year: '2-digit', month: '2-digit', day: '2-digit' }) : '',\r\n }\r\n }),\r\n fIni: aFIni,\r\n fEnd: aFEnd,\r\n });\r\n this.props.loading(false);\r\n },\r\n error => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: 'ERROR fetching lista albaranes',\r\n },\r\n 'ent_albaran_hist',\r\n false,\r\n 'sm',\r\n );\r\n this.props.loading(false);\r\n },\r\n this.props.user,\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.user && config.AUTH) {\r\n this.props.navigate(''); //go to home page\r\n return;\r\n }\r\n\r\n this.refresh(\r\n this.props.centroId ? this.props.centroId : -1,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n }\r\n\r\n messageDialog = msg => {\r\n this.props.openDialog(\r\n 'SimpleMessage',\r\n {\r\n message: msg,\r\n },\r\n uuidv4(),\r\n false,\r\n 'sm',\r\n );\r\n };\r\n\r\n editAlbaran = (albaran) => {\r\n this.props.openDialog(\r\n 'EditNuevoAlbaran',\r\n {\r\n pedido: albaran,\r\n imenu: \"2\", // indica que solo es para edicion\r\n centroId: this.props.centroId,\r\n okHandler: () => { },\r\n refreshHandler: () => this.refresh(this.props.centroId, this.state.fIni, this.state.fEnd),\r\n openDialog: this.props.openDialog,\r\n centroDescr: albaran.centroDescr,\r\n user: this.props.user,\r\n iPerfil: this.props.iPerfil,\r\n kd: this.props.kd,\r\n },\r\n uuidv4(),\r\n true,\r\n 'md',\r\n );\r\n };\r\n\r\n // ddw centros events\r\n centroSelectList = () => {\r\n return this.props.centros\r\n .filter(c => c.activo === 1)\r\n .map((centro, index) => {\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n handleChangeSelectCentro = event => {\r\n this.refresh(\r\n event.target.value ? event.target.value : -1,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n\r\n if (event.target.value)\r\n this.props.setCentroDia(event.target.value, undefined, false);\r\n };\r\n\r\n handleValueChange = (event, field) => {\r\n this.setState({ ...this.state, [field]: event.target.value });\r\n };\r\n handleValueChangeDate = (event, field) => {\r\n this.setState({ ...this.state, [field]: event });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n\r\n var gridcols = [\r\n {\r\n key: 'ft_fEntrega',\r\n name: 'Fecha alta',\r\n tooltip: 'Fecha del albarán',\r\n editable: false,\r\n dragable: false,\r\n width: 70,\r\n },\r\n ];\r\n\r\n if ([0, 4, 5, 16, 17, 20].includes(this.props.iPerfil) && this.props.kd === undefined)\r\n gridcols = gridcols.concat([\r\n {\r\n key: 'centroDescr',\r\n name: 'Centro',\r\n editable: false,\r\n dragable: false,\r\n width: 100,\r\n },\r\n ]);\r\n\r\n gridcols = gridcols.concat([\r\n {\r\n key: 'refPedido',\r\n name: 'Ref.Ped.',\r\n tooltip: 'Referencia del pedido',\r\n editable: false,\r\n dragable: false,\r\n width: 50,\r\n },\r\n {\r\n key: 'proveedorDescr',\r\n name: 'Proveedor',\r\n editable: false,\r\n dragable: false,\r\n width: 190,\r\n },\r\n {\r\n key: 'obsv',\r\n name: 'Prov. Inicial / Obsv',\r\n tooltip: 'Proveedor inicial u observaciones',\r\n editable: false,\r\n dragable: false,\r\n width: 140,\r\n },\r\n {\r\n key: 'refAlbaran',\r\n name: 'Ref.Alb.',\r\n tooltip: 'Referencia del albarán',\r\n editable: false,\r\n dragable: false,\r\n width: 100,\r\n },\r\n {\r\n key: 'iTipoAlbaran',\r\n name: 'Dev?',\r\n tooltip: 'Es una devolución?',\r\n editable: false,\r\n dragable: false,\r\n width: 40,\r\n type: 'bool',\r\n },\r\n {\r\n key: 'obsvAlb',\r\n name: 'Obsv.',\r\n tooltip: 'Observaciones del albarán',\r\n editable: false,\r\n dragable: false,\r\n width: 150,\r\n },\r\n {\r\n key: 'total',\r\n name: 'Total €',\r\n tooltip: 'Valor total del albarán',\r\n type: 'float',\r\n editable: false,\r\n dragable: false,\r\n width: 70,\r\n },\r\n ]);\r\n\r\n return (\r\n
\r\n
\r\n\r\n \r\n {this.props.centros &&\r\n [0, 4, 5, 16, 17, 20].includes(this.props.iPerfil) &&\r\n this.props.kd === undefined ? (\r\n \r\n \r\n Centro\r\n \r\n \r\n this.handleChangeSelectCentro(event)\r\n }\r\n >\r\n {this.props.centros.find(\r\n c => c.id === this.props.centroId,\r\n ) === undefined ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n {this.centroSelectList()}\r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fIni')\r\n }\r\n }}\r\n onKeyPress={event => {\r\n if (event.key === 'Enter') {\r\n this.handleValueChangeDate(\r\n event,\r\n 'fIni',\r\n );\r\n this.refresh(\r\n this.props.centroId,\r\n event.target.value,\r\n this.state.fEnd,\r\n );\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n if (event && !isNaN(event)) {\r\n const d = new Date(Date.UTC(event.getFullYear(), event.getMonth(), event.getDate()));\r\n this.handleValueChangeDate(d.toISOString().slice(0, 10), 'fEnd')\r\n }\r\n }}\r\n onKeyPress={event => {\r\n if (event.key === 'Enter') {\r\n this.handleValueChangeDate(\r\n event,\r\n 'fEnd',\r\n );\r\n this.refresh(\r\n this.props.centroId,\r\n this.state.fIni,\r\n event.target.value,\r\n );\r\n }\r\n }}\r\n />\r\n \r\n\r\n {\r\n this.refresh(\r\n this.props.centroId,\r\n this.state.fIni,\r\n this.state.fEnd,\r\n );\r\n }}\r\n >\r\n Buscar\r\n \r\n
\r\n\r\n
\r\n {this.state.albaranList ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n
\r\n
\r\n );\r\n\r\n }\r\n}\r\n\r\nEntAlbaranHist.propTypes = {\r\n //state\r\n user: PropTypes.object.isRequired,\r\n navigate: PropTypes.func.isRequired,\r\n openDialog: PropTypes.func.isRequired,\r\n hideDialog: PropTypes.func.isRequired,\r\n // user ddw\r\n centros: PropTypes.array.isRequired,\r\n centroId: PropTypes.number.isRequired,\r\n centroDescr: PropTypes.string.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.oidc.user,\r\n centros: state.centros.centros,\r\n centroId: state.centroDiaSelected.centro.id,\r\n centroDescr: state.centroDiaSelected.centro.centro, // es la descripción del centro¡?\r\n iPerfil: state.userProfile.selectedCentroProfile ? state.userProfile.selectedCentroProfile.iPerfil : 0,\r\n kd : state.userProfile.kd,\r\n };\r\n}\r\n\r\nfunction mapDispathToProps(dispatch) {\r\n return bindActionCreators(\r\n {\r\n navigate,\r\n setCentroDia,\r\n openDialog,\r\n hideDialog,\r\n loading\r\n },\r\n dispatch,\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispathToProps,\r\n)(withStyles(styles, { withTheme: true })(EntAlbaranHist));\r\n","import React from \"react\";\r\nimport { MuiThemeProvider, createMuiTheme } from \"@material-ui/core/styles\";\r\nimport \"./App.css\";\r\nimport { Route, Switch } from \"react-router-dom\";\r\nimport { Router } from \"react-router\";\r\n\r\n//import { history } from './index';\r\nimport history from \"./history\";\r\n\r\nimport DialogsRoot from \"./containers/dialogs_root\";\r\nimport CallbackPage from \"./components/callback_page\";\r\nimport CallbackPageKD from \"./components/callback_page_kd\";\r\nimport Loading from \"./components/utils/Loading\";\r\nimport Main from \"./containers/main\";\r\nimport IlusionaHeader from \"./containers/ilusiona_header\";\r\nimport LeftDrawer from \"./containers/left_drawer\";\r\n\r\nimport IniMiMuro from \"./containers/ini_mi_muro\";\r\nimport IniMiMuroKD from \"./containers/ini_mi_muro_kd\";\r\nimport IniNoticias from \"./containers/ini_noticias\";\r\nimport IniVentas from \"./containers/ini_ventas\";\r\nimport IniArcades from \"./containers/ini_arcades\";\r\nimport IniCierres from \"./containers/ini_cierres\";\r\nimport IniCierresKD from \"./containers/ini_cierres_kd\";\r\nimport IniVentasKD from \"./containers/ini_ventas_kd\";\r\nimport IniDesconexion from \"./containers/ini_desconexion\";\r\nimport KDImportar from \"./containers/acc_kd_importar\";\r\nimport MaeAuxiliaresTipoZona from \"./containers/mae_auxiliares_tipo_zona/mae_auxiliares_tipo_zona\";\r\nimport MaeAuxiliaresGrupoPartida from \"./containers/mae_auxiliares_grupo_partida/mae_auxiliares_grupo_partida\";\r\nimport MaeAuxiliaresTipoMaquina from \"./containers/mae_auxiliares_tipo_maquina/mae_auxiliares_tipo_maquina\";\r\nimport MaeAuxiliaresModeloMaquina from \"./containers/mae_auxiliares_modelo_maquina/mae_auxiliares_modelo_maquina.js\";\r\nimport MaeAuxiliaresTipoPartida from \"./containers/mae_auxiliares_tipo_partida/mae_auxiliares_tipo_partida\";\r\nimport MaeAuxiliaresTipoArticulo from \"./containers/mae_auxiliares_tipo_articulos/mae_auxiliares_tipo_articulos\";\r\nimport MaeAuxiliaresTipoGasto from \"./containers/mae_auxiliares_tipo_gasto/mae_auxiliares_tipo_gasto\";\r\nimport MaeAuxiliaresTipoZonaIVA from \"./containers/mae_auxiliares_tipo_zona_iva/mae_auxiliares_tipo_zona_iva\";\r\nimport MaeAuxiliaresPerfilesUsuario from \"./containers/mae_auxiliares_perfiles_usuario/mae_auxiliares_perfiles_usuario\";\r\nimport UsuarioEdit from \"./containers/mae_auxiliares_perfiles_usuario/usuario_edit\";\r\n\r\nimport MaeEmpresa from \"./containers/mae_empresa/mae_empresa\";\r\nimport EmpresaEdit from \"./containers/mae_empresa/empresa_edit\";\r\nimport MaeCentro from \"./containers/mae_centro/mae_centro\";\r\nimport CentroEdit from \"./containers/mae_centro/centro_edit\";\r\nimport MaeZona from \"./containers/mae_zona/mae_zona\";\r\nimport ZonaEdit from \"./containers/mae_zona/zona_edit\";\r\nimport MaeMaquina from \"./containers/mae_maquina/mae_maquina\";\r\nimport MaquinaEdit from \"./containers/mae_maquina/maquina_edit\";\r\n\r\nimport AccCierreDiario from \"./containers/acc_cierre_diario/acc_cierre_diario\";\r\nimport MoverMaquina from \"./containers/acc_mover_maquinas/acc_mover_maquinas\";\r\nimport AccCierreSemanal from \"./containers/acc_cierre_semanal/acc_cierre_semanal\";\r\nimport ExportarContabilidad from \"./containers/acc_exportar_contabilidad/acc_exportar_contabilidad\";\r\nimport DesbloquearContabilidad from \"./containers/acc_desbloquear_contabilidad/acc_desbloquear_contabilidad\";\r\n\r\nimport EntGastos from \"./containers/ent_gastos/ent_gastos\";\r\nimport EntMkt from \"./containers/ent_mkt/ent_mkt\";\r\nimport EntLecturaMaqCambio from \"./containers/ent_lectura_maq_cambio/ent_lectura_maq_cambio\";\r\nimport EntPartidasPorTipo from \"./containers/ent_partidas_por_tipo/ent_partidas_por_tipo\";\r\nimport EntLecturaMaqArcade from \"./containers/ent_lectura_maq_arcade/ent_lectura_maq_arcade\";\r\nimport EntIngresosBanco from \"./containers/ent_ingresos_banco/ent_ingresos_banco\";\r\nimport EntPresupuestos from \"./containers/ent_presupuestos/ent_presupuestos\";\r\nimport PresupuestoDetalle from \"./containers/ent_presupuestos/presupuesto_detalle\";\r\nimport EntAlertas from \"./containers/ent_alertas/ent_alertas\";\r\n\r\nimport InfResumenDiario from \"./containers/inf_resumen_diario/inf_resumen_diario\";\r\nimport InfResumenSemanal from \"./containers/inf_resumen_semanal/inf_resumen_semanal\";\r\nimport InfResumenVentas from \"./containers/inf_resumen_ventas/inf_resumen_ventas\";\r\nimport InfVentas from \"./containers/inf_ventas/inf_ventas\";\r\nimport InfArcade from \"./containers/inf_arcade/inf_arcade\";\r\nimport InfRedemption from \"./containers/inf_redemption/inf_redemption.js\";\r\nimport InfDiasAnyo from \"./containers/inf_dias_anyo/inf_dias_anyo\";\r\nimport InfDescuadresCaja from \"./containers/inf_descuadres_caja/inf_descuadres_caja\";\r\n\r\nimport TestComponent from \"./containers/test_component\";\r\n\r\nimport MaeAuxiliaresFamilia from \"./containers/mae_redemption_familia/mae_redemption_familia\";\r\nimport MaeAuxiliaresSubFamilia from \"./containers/mae_redemption_sub_familia/mae_redemption_sub_familia\";\r\nimport MaeAuxiliaresTipoFicha from \"./containers/mae_redemption_tipo_ficha/mae_redemption_tipo_ficha\";\r\nimport MaeAuxiliaresTipoFichaSub from \"./containers/mae_redemption_tipo_ficha_sub/mae_redemption_tipo_ficha_sub\";\r\nimport MaeAuxiliaresTipoMovRedem from \"./containers/mae_redemption_tipo_mov_redem/mae_redemption_tipo_mov_redem\";\r\nimport MaePromocion from \"./containers/mae_redemption_promocion/mae_redemption_promocion\";\r\nimport MaeAuxiliaresMotivo from \"./containers/mae_redemption_motivo/mae_redemption_motivo\";\r\nimport MaeArticulo from './containers/mae_redemption_articulo/mae_redemption_articulo';\r\nimport ArticuloEdit from './containers/mae_redemption_articulo/articulo_edit';\r\n\r\nimport MaeSegmentacion from './containers/mae_redemption_segmentacion/mae_redemption_segmentacion';\r\n\r\nimport EntPedido from \"./containers/ent_pedido/ent_pedido\";\r\nimport EntPedidoPdte from \"./containers/ent_albaran_pdte/ent_albaran_pdte\";\r\nimport AccInventario from \"./containers/acc_inventario/acc_inventario\";\r\nimport EntAlbaranHist from \"./containers/ent_albaran_hist/ent_albaran_hist\";\r\n\r\nconst theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n light: \"#e8f1d7\",\r\n main: \"#8dbb35\",\r\n dark: \"689f38\"\r\n },\r\n secondary: {\r\n light: \"#ecd7e8\",\r\n main: \"#a2398d\",\r\n dark: \"#872373\"\r\n },\r\n background: {\r\n paper: \"#fff\",\r\n default: \"#e0e0e0\"\r\n }\r\n },\r\n status: {\r\n danger: \"orange\"\r\n },\r\n typography: {\r\n useNextVariants: true\r\n }\r\n});\r\n\r\nfunction App() {\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import { OPEN_DIALOG, HIDE_DIALOG } from '../constants/action_types';\r\n\r\nconst initialState = [];\r\n\r\nexport default function (state = initialState, action) {\r\n switch (action.type) {\r\n case OPEN_DIALOG:\r\n return state.concat({ modalType: action.modalType, modalOpen: true, modalProps: action.modalProps, dialogid: action.dialogid, disableBackdrop: action.disableBackdrop, maxWidth: action.maxWidth });\r\n\r\n case HIDE_DIALOG:\r\n const newState = state.slice();\r\n newState.pop();\r\n return newState;\r\n\r\n default:\r\n return state\r\n }\r\n}","//import { sections } from '../constants/sections';\r\nimport { CHANGE_SECTION, SET_SECTIONS } from '../constants/action_types';\r\n\r\nconst initialState = { sections: {}, selected: '' };\r\n\r\nexport default function (state = initialState, action) {\r\n switch (action.type) {\r\n case CHANGE_SECTION:\r\n return { ...state, selected: Object.keys(state.sections)[action.payload] };\r\n case SET_SECTIONS:\r\n return { sections: action.payload, selected: Object.keys(action.payload)[0] };\r\n default:\r\n return state;\r\n }\r\n}","import { GET_TIPOS_ZONA, ADD_TIPO_ZONA, MODIFY_TIPO_ZONA, DELETE_TIPO_ZONA, UPDATE_TIPOS_ZONA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n tiposzona: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_TIPOS_ZONA:\r\n\r\n return {\r\n tiposzona: [],\r\n isLoading: true\r\n };\r\n\r\n case GET_TIPOS_ZONA + \"_SUCCESS\":\r\n\r\n return {\r\n tiposzona: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_TIPO_ZONA:\r\n\r\n const newArr = [...state.tiposzona, action.payload]\r\n return {\r\n tiposzona: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_TIPO_ZONA:\r\n\r\n return {\r\n tiposzona: state.tiposzona.map((tipoZona) => {\r\n if (tipoZona.id !== action.payload.id) return tipoZona;\r\n else return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_TIPO_ZONA:\r\n return {\r\n tiposzona: state.tiposzona.filter(tipoZona => tipoZona.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_TIPOS_ZONA + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_TIPOS_PARTIDA, ADD_TIPO_PARTIDA, MODIFY_TIPO_PARTIDA, DELETE_TIPO_PARTIDA, UPDATE_TIPOS_PARTIDA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n tipospartida: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_TIPOS_PARTIDA:\r\n \r\n return {\r\n tipospartida: [],\r\n isLoading: true\r\n };\r\n\r\n case GET_TIPOS_PARTIDA + \"_SUCCESS\":\r\n \r\n return {\r\n tipospartida: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_TIPO_PARTIDA:\r\n\r\n const newArr = [...state.tipospartida, action.payload]\r\n return {\r\n tipospartida: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_TIPO_PARTIDA:\r\n\r\n return {\r\n tipospartida: state.tipospartida.map((tipoZona) => {\r\n if (tipoZona.id !== action.payload.id) return tipoZona;\r\n else return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n case DELETE_TIPO_PARTIDA:\r\n\r\n return {\r\n tipospartida: state.tipospartida.filter(tipoZona => tipoZona.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_TIPOS_PARTIDA + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_GRUPO_PARTIDA, ADD_GRUPO_PARTIDA, MODIFY_GRUPO_PARTIDA, DELETE_GRUPO_PARTIDA, UPDATE_GRUPO_PARTIDA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n grupospartida: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_GRUPO_PARTIDA:\r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n\r\n case GET_GRUPO_PARTIDA + \"_SUCCESS\":\r\n return {\r\n grupospartida: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_GRUPO_PARTIDA:\r\n\r\n const newArr = [...state.grupospartida, action.payload]\r\n return {\r\n grupospartida: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_GRUPO_PARTIDA:\r\n\r\n return {\r\n grupospartida: state.grupospartida.map((tipoZona) => {\r\n if (tipoZona.id !== action.payload.id) return tipoZona;\r\n else return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_GRUPO_PARTIDA:\r\n\r\n return {\r\n grupospartida: state.grupospartida.filter(tipoZona => tipoZona.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_GRUPO_PARTIDA + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_TIPOS_MAQUINA, ADD_TIPO_MAQUINA, MODIFY_TIPO_MAQUINA, DELETE_TIPO_MAQUINA, UPDATE_TIPOS_MAQUINA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n tiposmaquina: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_TIPOS_MAQUINA:\r\n\r\n return {\r\n tiposmaquina: [],\r\n isLoading: true\r\n };\r\n case GET_TIPOS_MAQUINA + \"_SUCCESS\":\r\n return {\r\n tiposmaquina: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_TIPO_MAQUINA:\r\n\r\n const newArr = [...state.tiposmaquina, action.payload]\r\n return {\r\n tiposmaquina: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_TIPO_MAQUINA:\r\n\r\n return {\r\n tiposmaquina: state.tiposmaquina.map((tipoZona) => {\r\n if (tipoZona.id !== action.payload.id) return tipoZona;\r\n else return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_TIPO_MAQUINA:\r\n\r\n return {\r\n tiposmaquina: state.tiposmaquina.filter(tipoZona => tipoZona.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_TIPOS_MAQUINA + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_MODELOS_MAQUINA, MODIFY_MODELO_MAQUINA, ADD_MODELO_MAQUINA, DELETE_MODELO_MAQUINA, UPDATE_MODELOS_MAQUINA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n modelosmaquina: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_MODELOS_MAQUINA:\r\n\r\n return {\r\n modelosmaquina: [],\r\n isLoading: true\r\n };\r\n case GET_MODELOS_MAQUINA + \"_SUCCESS\":\r\n \r\n return {\r\n modelosmaquina: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_MODELO_MAQUINA:\r\n\r\n const newArr = [...state.modelosmaquina, action.payload]\r\n return {\r\n modelosmaquina: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_MODELO_MAQUINA:\r\n\r\n return {\r\n modelosmaquina: state.modelosmaquina.map((tipoZona) => {\r\n if (tipoZona.id !== action.payload.id) return tipoZona;\r\n else return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_MODELO_MAQUINA:\r\n\r\n return {\r\n modelosmaquina: state.modelosmaquina.filter(tipoZona => tipoZona.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_MODELOS_MAQUINA + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_ALL_ARTICULOS } from '../constants/action_types';\r\n\r\nconst initialState = [];\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_ALL_ARTICULOS + \"_SUCCESS\":\r\n return action.payload.data\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import {\r\n GET_TIPOS_ARTICULO,\r\n ADD_TIPO_ARTICULO,\r\n MODIFY_TIPO_ARTICULO,\r\n DELETE_TIPO_ARTICULO,\r\n UPDATE_TIPOS_ARTICULO\r\n} from '../constants/action_types';\r\n\r\nconst initialState = {\r\n tiposarticulo: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_TIPOS_ARTICULO:\r\n\r\n return {\r\n tiposarticulo: [],\r\n isLoading: true\r\n };\r\n case GET_TIPOS_ARTICULO + \"_SUCCESS\":\r\n \r\n return {\r\n tiposarticulo: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_TIPO_ARTICULO:\r\n\r\n const newArr = [...state.tiposarticulo, action.payload]\r\n return {\r\n tiposarticulo: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_TIPO_ARTICULO:\r\n\r\n return {\r\n tiposarticulo: state.tiposarticulo.map((tipoZona) => {\r\n if (tipoZona.id !== action.payload.id) return tipoZona;\r\n else return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_TIPO_ARTICULO:\r\n\r\n return {\r\n tiposarticulo: state.tiposarticulo.filter(tipoZona => tipoZona.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_TIPOS_ARTICULO + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import {\r\n GET_TIPOS_GASTO,\r\n ADD_TIPO_GASTO,\r\n MODIFY_TIPO_GASTO,\r\n DELETE_TIPO_GASTO,\r\n UPDATE_TIPOS_GASTO\r\n} from '../constants/action_types';\r\n\r\nconst initialState = {\r\n tiposgasto: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_TIPOS_GASTO:\r\n\r\n return {\r\n tiposgasto: [],\r\n isLoading: true\r\n };\r\n case GET_TIPOS_GASTO + \"_SUCCESS\":\r\n\r\n return {\r\n tiposgasto: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_TIPO_GASTO:\r\n\r\n const newArr = [...state.tiposgasto, action.payload]\r\n return {\r\n tiposgasto: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_TIPO_GASTO:\r\n\r\n return {\r\n tiposgasto: state.tiposgasto.map((tipoGasto) => {\r\n if (tipoGasto.id !== action.payload.id) return tipoGasto;\r\n else return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n\r\n\r\n case DELETE_TIPO_GASTO:\r\n\r\n return {\r\n tiposgasto: state.tiposgasto.filter(tipoZona => tipoZona.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_TIPOS_GASTO + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_TIPO_ZONA_IVA, ADD_TIPO_ZONA_IVA, MODIFY_TIPO_ZONA_IVA, DELETE_TIPO_ZONA_IVA, UPDATE_TIPO_ZONA_IVA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n tiposzona: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_TIPO_ZONA_IVA:\r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n\r\n case GET_TIPO_ZONA_IVA + \"_SUCCESS\":\r\n return {\r\n tiposzona: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_TIPO_ZONA_IVA:\r\n\r\n const newArr = [...state.tiposzona, action.payload]\r\n return {\r\n tiposzona: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_TIPO_ZONA_IVA:\r\n\r\n return {\r\n tiposzona: state.tiposzona.map((tipoZona) => {\r\n if (tipoZona.id !== action.payload.id) return tipoZona;\r\n else return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_TIPO_ZONA_IVA:\r\n\r\n return {\r\n tiposzona: state.tiposzona.filter(tipoZona => tipoZona.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_TIPO_ZONA_IVA + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_CENTROS, CREATE_CENTRO, COPY_CENTRO, DELETE_CENTRO } from '../constants/action_types';\r\n\r\nconst initialState = { centros: [], refresh: false, isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_CENTROS:\r\n\r\n return { ...state, isLoading: true };\r\n\r\n case GET_CENTROS + \"_SUCCESS\":\r\n\r\n return { centros: action.payload.data, refresh: false, isLoading: false };\r\n\r\n case CREATE_CENTRO + \"_SUCCESS\":\r\n case COPY_CENTRO + \"_SUCCESS\":\r\n case DELETE_CENTRO + \"_SUCCESS\":\r\n\r\n return { centros: [], refresh: true, isLoading: false };\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_CENTRO, MODIFY_FIELD_DETALLE_CENTRO, MODIFY_FIELDS_CENTRO_DIALOG, UPDATE_CENTRO } from '../constants/action_types';\r\n\r\nconst initialState = { centrodetalle: {}, isLoading: false, updated: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_CENTRO:\r\n\r\n return { ...state, isLoading: true };\r\n\r\n case GET_CENTRO + \"_SUCCESS\":\r\n\r\n return {\r\n centrodetalle: action.payload.data,\r\n updated: false,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_FIELD_DETALLE_CENTRO:\r\n\r\n const field = action.payload[0],\r\n value = action.payload[1];\r\n\r\n return {\r\n centrodetalle: { ...state.centrodetalle, [field]: value },\r\n updated: false,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_FIELDS_CENTRO_DIALOG:\r\n\r\n return {\r\n centrodetalle: { ...state.centrodetalle, ...action.payload },\r\n updated: false,\r\n isLoading: false\r\n }\r\n\r\n case UPDATE_CENTRO:\r\n\r\n return { ...state, isLoading: true };\r\n\r\n case UPDATE_CENTRO + \"_SUCCESS\":\r\n\r\n return {\r\n centrodetalle: {},\r\n updated: true,\r\n isLoading: false\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n };\r\n};","import { GET_CAJAS_CENTRO, MODIFY_CAJA_CENTRO, ADD_CAJA_CENTRO, REMOVE_CAJA_CENTRO } from '../constants/action_types';\r\n\r\nconst initialState = { cajasCentro: [], isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_CAJAS_CENTRO:\r\n\r\n return {\r\n cajasCentro: [],\r\n isLoading: true\r\n };\r\n case GET_CAJAS_CENTRO + \"_SUCCESS\":\r\n\r\n return {\r\n cajasCentro: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_CAJA_CENTRO:\r\n\r\n return {\r\n cajasCentro: state.cajasCentro.map((caja) => {\r\n if (caja.id !== action.payload.id) return caja;\r\n else return action.payload;\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case ADD_CAJA_CENTRO:\r\n\r\n const newArr = [...state.cajasCentro, action.payload]\r\n\r\n return {\r\n cajasCentro: newArr,\r\n isLoading: false\r\n };\r\n\r\n case REMOVE_CAJA_CENTRO:\r\n\r\n return {\r\n cajasCentro: state.cajasCentro.filter(caja => caja.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_ZONAIVA_CENTRO, MODIFY_ZONAIVA_CENTRO, ADD_ZONAIVA_CENTRO, REMOVE_ZONAIVA_CENTRO, } from '../constants/action_types';\r\n\r\nconst initialState = { zonaIvaCentro: [], isLoading: true };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n\r\n case GET_ZONAIVA_CENTRO + \"_SUCCESS\":\r\n\r\n return {\r\n zonaIvaCentro: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_ZONAIVA_CENTRO:\r\n\r\n return {\r\n zonaIvaCentro: state.zonaIvaCentro.map((caja) => {\r\n if (caja.id !== action.payload.id) return caja;\r\n else return action.payload;\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case ADD_ZONAIVA_CENTRO:\r\n\r\n const newArr = [...state.zonaIvaCentro, action.payload]\r\n\r\n return {\r\n zonaIvaCentro: newArr,\r\n isLoading: false\r\n };\r\n\r\n case REMOVE_ZONAIVA_CENTRO:\r\n\r\n return {\r\n zonaIvaCentro: state.zonaIvaCentro.filter(caja => caja.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n };\r\n};","import { GET_CENTROS_CENTRO, ADD_CENTRO_CENTRO, REMOVE_CENTRO_CENTRO } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n isLoading: true,\r\n centros: [],\r\n centroId: 1\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_CENTROS_CENTRO:\r\n\r\n return {...state, centroId: action.meta}\r\n\r\n case GET_CENTROS_CENTRO + \"_SUCCESS\":\r\n\r\n return {\r\n ...state,\r\n isLoading: false,\r\n centros: action.payload.data\r\n };\r\n\r\n case ADD_CENTRO_CENTRO:\r\n\r\n const newArr = [...state.centros, action.payload];\r\n return {\r\n ...state,\r\n isLoading: false,\r\n centros: newArr\r\n };;\r\n\r\n case REMOVE_CENTRO_CENTRO:\r\n\r\n return {\r\n ...state,\r\n isLoading: false,\r\n centros: state.centros.filter(c => c.id !== action.payload.id)\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_TIPOSZONASIVA_CENTRO, } from '../constants/action_types';\r\n\r\nconst initialState = [];\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n\r\n case GET_TIPOSZONASIVA_CENTRO + \"_SUCCESS\":\r\n\r\n return action.payload.data;\r\n\r\n default:\r\n\r\n return state;\r\n };\r\n};","import { GET_ZONAS_CENTRO, MODIFY_ZONA_CENTRO, ADD_ZONA_CENTRO, REMOVE_ZONA_CENTRO } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n isLoading: false,\r\n zonas: [],\r\n centroId: -1\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_ZONAS_CENTRO:\r\n\r\n return {...state, isLoading: true, centroId: action.meta}\r\n\r\n case GET_ZONAS_CENTRO + \"_SUCCESS\":\r\n\r\n return {\r\n ...state,\r\n isLoading: false,\r\n zonas: action.payload.data\r\n };\r\n\r\n case MODIFY_ZONA_CENTRO:\r\n\r\n return {\r\n ...state,\r\n isLoading: false,\r\n zonas: state.zonas.map((zona) => {\r\n if (zona.id !== action.payload.id) return zona;\r\n else return action.payload;\r\n })\r\n };\r\n\r\n case ADD_ZONA_CENTRO:\r\n\r\n const newArr = [...state.zonas, action.payload];\r\n return {\r\n ...state,\r\n isLoading: false,\r\n zonas: newArr\r\n };;\r\n\r\n case REMOVE_ZONA_CENTRO:\r\n\r\n return {\r\n ...state,\r\n isLoading: false,\r\n zonas: state.zonas.filter(zona => zona.id !== action.payload.id)\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_ZONA_DETALLE, MODIFY_FIELD_DETALLE_ZONA, UPDATE_ZONA_DE_UN_CENTRO } from '../constants/action_types';\r\n\r\nconst initialState = { zona: {}, updated: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_ZONA_DETALLE + \"_SUCCESS\":\r\n\r\n return {\r\n zona: {\r\n id: action.payload.data.id,\r\n centroId: action.payload.data.centroId,\r\n iTipoZona: action.payload.data.iTipoZona,\r\n descr: action.payload.data.descr,\r\n activo: action.payload.data.activo,\r\n tipoZona: action.payload.data.tipoZona,\r\n iCajaDestino: action.payload.data.iCajaDestino,\r\n elemCajaId: action.payload.data.elemCajaId,\r\n elemNoCajaId: action.payload.data.elemNoCajaId\r\n },\r\n updated: false\r\n }\r\n\r\n case MODIFY_FIELD_DETALLE_ZONA:\r\n const field = action.payload[0],\r\n value = action.payload[1];\r\n\r\n return {\r\n zona: { ...state.zona, [field]: value },\r\n updated: false\r\n };\r\n\r\n case UPDATE_ZONA_DE_UN_CENTRO + \"_SUCCESS\":\r\n\r\n return {\r\n // zona: {\r\n // id: action.payload.data.id,\r\n // centroId: action.payload.data.centroId,\r\n // iTipoZona: action.payload.data.iTipoZona,\r\n // descr: action.payload.data.descr,\r\n // activo: action.payload.data.activo,\r\n // tipoZona: action.payload.data.tipoZona,\r\n // iCajaDestino: action.payload.data.iCajaDestino,\r\n // elemCajaId: action.payload.data.elemCajaId,\r\n // elemNoCajaId: action.payload.data.elemNoCajaId\r\n // },\r\n // updated: true\r\n\r\n ...state,\r\n updated: true\r\n\r\n }\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import { GET_ZONA_DETALLE, MODIFY_ZONA_TIPO_PARTIDA, ADD_ZONA_TIPO_PARTIDA, DELETE_ZONA_TIPO_PARTIDA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n isLoading: true,\r\n tiposPartida: []\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_ZONA_DETALLE + \"_SUCCESS\":\r\n\r\n return {\r\n isLoading: false,\r\n tiposPartida: action.payload.data.tipoPartidas\r\n };\r\n\r\n case ADD_ZONA_TIPO_PARTIDA:\r\n\r\n const newArr = [...state.tiposPartida, action.payload]\r\n\r\n return {\r\n isLoading: false,\r\n tiposPartida: newArr,\r\n };\r\n\r\n case MODIFY_ZONA_TIPO_PARTIDA:\r\n\r\n return {\r\n isLoading: false,\r\n tiposPartida: state.tiposPartida.map((tiposPartida) => {\r\n if (tiposPartida.id !== action.payload.id) return tiposPartida;\r\n else return action.payload;\r\n }),\r\n };\r\n\r\n\r\n case DELETE_ZONA_TIPO_PARTIDA:\r\n\r\n return {\r\n isLoading: false,\r\n tiposPartida: state.tiposPartida.filter(tiposPartida => tiposPartida.id !== action.payload.id),\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import { GET_ZONA_DETALLE, MODIFY_PRODUCTO_DE_ZONA, ADD_PRODUCTO_DE_ZONA, DELETE_PRODUCTO_DE_ZONA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n isLoading: true,\r\n zonaProductos: []\r\n};;\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_ZONA_DETALLE + \"_SUCCESS\":\r\n\r\n return {\r\n isLoading: false,\r\n zonaProductos: action.payload.data.productos\r\n };\r\n\r\n\r\n case ADD_PRODUCTO_DE_ZONA:\r\n\r\n const newArr = [...state.zonaProductos, action.payload]\r\n\r\n return {\r\n isLoading: false,\r\n zonaProductos: newArr,\r\n };\r\n\r\n case MODIFY_PRODUCTO_DE_ZONA:\r\n\r\n return {\r\n isLoading: false,\r\n zonaProductos: state.zonaProductos.map((productos) => {\r\n if (productos.id !== action.payload.id) return productos;\r\n else return action.payload;\r\n }),\r\n };\r\n\r\n case DELETE_PRODUCTO_DE_ZONA:\r\n\r\n return {\r\n isLoading: false,\r\n zonaProductos: state.zonaProductos.filter(productos => productos.id !== action.payload.id)\r\n };\r\n\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import { GET_ZONA_DETALLE, ADD_PRODUCTO_CAJA_DE_ZONA, MODIFY_PRODUCTO_CAJA_DE_ZONA, DELETE_PRODUCTO_CAJA_DE_ZONA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n isLoading: true,\r\n productosCaja: []\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_ZONA_DETALLE + \"_SUCCESS\":\r\n\r\n return {\r\n isLoading: false,\r\n productosCaja: action.payload.data.productosCaja\r\n };\r\n\r\n\r\n case ADD_PRODUCTO_CAJA_DE_ZONA:\r\n\r\n const newArr = [...state.productosCaja, action.payload]\r\n\r\n return {\r\n isLoading: false,\r\n productosCaja: newArr\r\n };\r\n\r\n case MODIFY_PRODUCTO_CAJA_DE_ZONA:\r\n\r\n return {\r\n isLoading: false,\r\n productosCaja: state.productosCaja.map((productos) => {\r\n if (productos.id !== action.payload.id) return productos;\r\n else return action.payload;\r\n })\r\n };\r\n\r\n case DELETE_PRODUCTO_CAJA_DE_ZONA:\r\n\r\n return {\r\n isLoading: false,\r\n productosCaja: state.productosCaja.filter(productos => productos.id !== action.payload.id)\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import { GET_ZONA_DETALLE } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n isLoading: true,\r\n zonaMaquinas: []\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_ZONA_DETALLE + \"_SUCCESS\":\r\n \r\n return {\r\n isLoading: false,\r\n zonaMaquinas: action.payload.data.maquinas\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import { GET_MAQUINAS_OF_MAE_MAQUINA, DELETE_MAQUINA, UPDATE_DETALLES_MAQUINA, UPDATE_DETALLES_NEW_MAQUINA } from '../constants/action_types';\r\n\r\nconst initialState = { maquinas: [], noSpinner: false, refresh: false, isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n switch (action.type) {\r\n case GET_MAQUINAS_OF_MAE_MAQUINA + \"_SUCCESS\":\r\n return { maquinas: action.payload.data, noSpinner: true, refresh: false };\r\n case DELETE_MAQUINA + \"_SUCCESS\":\r\n return state;\r\n case UPDATE_DETALLES_MAQUINA:\r\n return { ...state, isLoading: true };\r\n case UPDATE_DETALLES_MAQUINA + \"_SUCCESS\":\r\n return { ...state, isLoading: false };\r\n case UPDATE_DETALLES_MAQUINA + \"_FAILURE\":\r\n return { ...state, isLoading: false };\r\n case UPDATE_DETALLES_NEW_MAQUINA:\r\n return { ...state, isLoading: true };\r\n case UPDATE_DETALLES_NEW_MAQUINA + \"_FAILURE\":\r\n return { ...state, isLoading: false };\r\n case UPDATE_DETALLES_NEW_MAQUINA + \"_SUCCESS\":\r\n return { maquinas: [], noSpinner: true, refresh: true, isLoading: false };\r\n default:\r\n return state;\r\n }\r\n\r\n}","import {\r\n GET_MAQUINA_DETALLES, MODIFY_FIELD_DETALLE_MAQUINA, ADD_NEW_MAQUINA\r\n} from '../constants/action_types';\r\n\r\nconst initialState = { maquinadetalles: {}, isLoading: false, updated: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n\r\n case GET_MAQUINA_DETALLES:\r\n\r\n return { ...state, isLoading: true };\r\n\r\n case GET_MAQUINA_DETALLES + \"_SUCCESS\":\r\n\r\n return {\r\n maquinadetalles: { ...action.payload.data, fechaAlta: new Date().toISOString().slice(0, 10) },\r\n updated: false,\r\n isLoading: false\r\n };\r\n\r\n\r\n case MODIFY_FIELD_DETALLE_MAQUINA:\r\n\r\n const field = action.payload[0],\r\n value = action.payload[1];\r\n\r\n return {\r\n maquinadetalles: { ...state.maquinadetalles, [field]: value },\r\n updated: false,\r\n isLoading: false\r\n };\r\n\r\n\r\n case ADD_NEW_MAQUINA:\r\n\r\n return {\r\n maquinadetalles: { iModeloMaquina: action.payload.defaultModel, centroId: action.payload.defaultCenter, fechaAlta: new Date().toISOString().slice(0, 10), regInterno: action.payload.regInterno, matricula: action.payload.regInterno },\r\n updated: false,\r\n isLoading: false\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n };\r\n\r\n};","import {\r\n GET_MAQUINA_DETALLES, ADD_NEW_MAQUINA, ADD_CONTADOR_MAQUINA, MODIFY_CONTADOR_MAQUINA, DELETE_CONTADOR_MAQUINA\r\n} from '../constants/action_types';\r\n\r\nconst initialState = { maquinaContadores: [], isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n const tiposContadores = ['Euros', 'Tokens', 'Tickets', 'Cambio', 'Regalos','VISAs'];\r\n\r\n switch (action.type) {\r\n case GET_MAQUINA_DETALLES:\r\n\r\n return {\r\n maquinaContadores: [],\r\n isLoading: true\r\n };\r\n\r\n case GET_MAQUINA_DETALLES + \"_SUCCESS\":\r\n\r\n const newCont = action.payload.data.contadores.map(c => {\r\n return {...c, tipoContador: tiposContadores[c.iTipo]}\r\n })\r\n\r\n return {\r\n maquinaContadores: newCont,\r\n isLoading: false\r\n };\r\n\r\n\r\n case ADD_CONTADOR_MAQUINA:\r\n\r\n const newArr = [...state.maquinaContadores, action.payload]\r\n\r\n return {\r\n maquinaContadores: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_CONTADOR_MAQUINA:\r\n\r\n return {\r\n maquinaContadores: state.maquinaContadores.map((contador) => {\r\n if (contador.id !== action.payload.id) return contador;\r\n else return {...action.payload, tipoContador: tiposContadores[action.payload.iTipo]};\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_CONTADOR_MAQUINA:\r\n\r\n return {\r\n maquinaContadores: state.maquinaContadores.filter(contador => contador.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case ADD_NEW_MAQUINA:\r\n return initialState;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import {\r\n GET_MAQUINA_DETALLES, ADD_NEW_MAQUINA, ADD_INCIDENCIA_MAQUINA, MODIFY_INCIDENCIA_MAQUINA, DELETE_INCIDENCIA_MAQUINA\r\n} from '../constants/action_types';\r\n\r\nconst initialState = { maquinaIncidencias: [], isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_MAQUINA_DETALLES:\r\n\r\n return {\r\n maquinaIncidencias: [],\r\n isLoading: true\r\n };\r\n\r\n case GET_MAQUINA_DETALLES + \"_SUCCESS\":\r\n\r\n return {\r\n maquinaIncidencias: action.payload.data.incidencias,\r\n isLoading: false\r\n };\r\n\r\n\r\n case ADD_INCIDENCIA_MAQUINA:\r\n\r\n const newArr = [...state.maquinaIncidencias, action.payload]\r\n\r\n return {\r\n maquinaIncidencias: newArr,\r\n isLoading: false\r\n };\r\n\r\n case DELETE_INCIDENCIA_MAQUINA:\r\n\r\n return {\r\n maquinaIncidencias: state.maquinaIncidencias.filter(incidencia => incidencia.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_INCIDENCIA_MAQUINA:\r\n\r\n return {\r\n maquinaIncidencias: state.maquinaIncidencias.map((incidencia) => {\r\n if (incidencia.id !== action.payload.id) return incidencia;\r\n else return action.payload;\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case ADD_NEW_MAQUINA:\r\n return initialState;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import {\r\n GET_MAQUINA_DETALLES, ADD_NEW_MAQUINA, ADD_LICENCIA_MAQUINA, MODIFY_LICENCIA_MAQUINA, DELETE_LICENCIA_MAQUINA\r\n} from '../constants/action_types';\r\n\r\nconst initialState = { maquinalicencias: [], isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_MAQUINA_DETALLES:\r\n\r\n return {\r\n maquinalicencias: [],\r\n isLoading: true\r\n };\r\n\r\n case GET_MAQUINA_DETALLES + \"_SUCCESS\":\r\n\r\n return {\r\n maquinalicencias: action.payload.data.licencias,\r\n isLoading: false\r\n };\r\n\r\n case ADD_LICENCIA_MAQUINA:\r\n\r\n const newArr = [...state.maquinalicencias, action.payload]\r\n\r\n return {\r\n maquinalicencias: newArr,\r\n isLoading: false\r\n };\r\n\r\n case DELETE_LICENCIA_MAQUINA:\r\n\r\n return {\r\n maquinalicencias: state.maquinalicencias.filter(licencia => licencia.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_LICENCIA_MAQUINA:\r\n\r\n return {\r\n maquinalicencias: state.maquinalicencias.map((licencia) => {\r\n if (licencia.id !== action.payload.id) return licencia;\r\n else return action.payload;\r\n }),\r\n isLoading: false\r\n };\r\n\r\n\r\n case ADD_NEW_MAQUINA:\r\n return initialState;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import {\r\n GET_MAQUINA_DETALLES, ADD_NEW_MAQUINA, ADD_ITV_MAQUINA, MODIFY_ITV_MAQUINA, DELETE_ITV_MAQUINA\r\n} from '../constants/action_types';\r\n\r\nconst initialState = { maquinaItvs: [], isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_MAQUINA_DETALLES:\r\n\r\n return {\r\n maquinaItvs: [],\r\n isLoading: true\r\n };\r\n\r\n case GET_MAQUINA_DETALLES + \"_SUCCESS\":\r\n\r\n return {\r\n maquinaItvs: action.payload.data.itVs,\r\n isLoading: false\r\n };\r\n\r\n\r\n case ADD_ITV_MAQUINA:\r\n\r\n const newArr = [...state.maquinaItvs, action.payload]\r\n\r\n return {\r\n maquinaItvs: newArr,\r\n isLoading: false\r\n };\r\n\r\n\r\n case DELETE_ITV_MAQUINA:\r\n\r\n return {\r\n maquinaItvs: state.maquinaItvs.filter(itV => itV.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n\r\n case MODIFY_ITV_MAQUINA:\r\n\r\n return {\r\n maquinaItvs: state.maquinaItvs.map((itv) => {\r\n if (itv.id !== action.payload.id) return itv;\r\n else return action.payload;\r\n }),\r\n isLoading: false\r\n };\r\n\r\n\r\n case ADD_NEW_MAQUINA:\r\n\r\n return initialState;\r\n\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import {\r\n GET_MAQUINA_DETALLES, ADD_NEW_MAQUINA,\r\n ADD_CENTRO_MAQUINA, DELETE_CENTRO_MAQUINA, MODIFY_CENTRO_MAQUINA\r\n} from '../constants/action_types';\r\n\r\nconst initialState = { maquinaCentros: [], isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_MAQUINA_DETALLES:\r\n\r\n return {\r\n maquinaCentros: [],\r\n isLoading: true\r\n };\r\n\r\n case GET_MAQUINA_DETALLES + \"_SUCCESS\":\r\n\r\n return {\r\n maquinaCentros: action.payload.data.centros,\r\n isLoading: false\r\n };\r\n\r\n case ADD_CENTRO_MAQUINA:\r\n\r\n const newArr = [...state.maquinaCentros, action.payload]\r\n\r\n return {\r\n maquinaCentros: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_CENTRO_MAQUINA:\r\n return {\r\n maquinaCentros: state.maquinaCentros.map((centro) => {\r\n if (centro.id !== action.payload.id) return centro;\r\n else return action.payload;\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_CENTRO_MAQUINA:\r\n return {\r\n maquinaCentros: state.maquinaCentros.filter(centro => centro.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case ADD_NEW_MAQUINA:\r\n \r\n return initialState;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import { GET_CONTAB_CENTRO, MODIFY_CONTAB_CENTRO, ADD_CONTAB_CENTRO, REMOVE_CONTAB_CENTRO } from '../constants/action_types';\r\n\r\nconst initialState = { contabCentro: [], isLoading: true };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_CONTAB_CENTRO + \"_SUCCESS\":\r\n\r\n return {\r\n contabCentro: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_CONTAB_CENTRO:\r\n\r\n return {\r\n contabCentro: state.contabCentro.map((caja) => {\r\n if (caja.id !== action.payload.id) return caja;\r\n else return action.payload;\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case ADD_CONTAB_CENTRO:\r\n const newArr = [...state.contabCentro, action.payload]\r\n\r\n return {\r\n contabCentro: newArr,\r\n isLoading: false\r\n };\r\n\r\n case REMOVE_CONTAB_CENTRO:\r\n\r\n return {\r\n contabCentro: state.contabCentro.filter(caja => caja.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_EMPRESAS, CREATE_EMPRESA, UPDATE_EMPRESA, DELETE_EMPRESA } from '../constants/action_types';\r\n\r\nconst initialState = { empresas: [], isLoading: false, refresh: false, };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_EMPRESAS:\r\n return {\r\n empresas: [],\r\n isLoading: true,\r\n refresh: false,\r\n };\r\n\r\n case GET_EMPRESAS + \"_SUCCESS\":\r\n return {\r\n empresas: action.payload.data.map((emp) => {\r\n return {...emp,removed:false}\r\n }),\r\n isLoading: false,\r\n refresh: false,\r\n };\r\n\r\n case CREATE_EMPRESA + \"_SUCCESS\":\r\n\r\n const newArr = [...state.empresas, action.payload];\r\n\r\n return {\r\n empresas: newArr,\r\n isLoading: false,\r\n refresh: true,\r\n };\r\n\r\n case UPDATE_EMPRESA + \"_SUCCESS\":\r\n\r\n return {\r\n empresas: state.empresas.map((empresa) => {\r\n if (empresa.id !== action.payload.id) return empresa;\r\n else return action.payload;\r\n }),\r\n isLoading: false,\r\n refresh: true,\r\n };\r\n \r\n\r\n case DELETE_EMPRESA + \"_SUCCESS\":\r\n\r\n return {\r\n empresas: state.empresas.map(empresa => {\r\n if(empresa.id === action.payload.id) {\r\n empresa.removed = true\r\n }\r\n return empresa;\r\n }),\r\n isLoading: false,\r\n refresh: true,\r\n };\r\n\r\n \r\n\r\n default:\r\n\r\n return state;\r\n };\r\n};","import { GET_CIERRE_DIARIO, MODIFY_DATOS_CIERRE_DIARIO, } from '../constants/action_types';\r\n\r\nconst initialState = { datos: [], isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n\r\n case GET_CIERRE_DIARIO:\r\n\r\n return {\r\n datos: [],\r\n isLoading: true\r\n };\r\n\r\n\r\n case GET_CIERRE_DIARIO + \"_SUCCESS\":\r\n\r\n const datosCierreDiario = action.payload.data.slice();\r\n\r\n // const arcade = datosCierreDiario.find(c => c.iKind === 3);\r\n // if (arcade) {\r\n\r\n // let importe = 0.0;\r\n\r\n // datosCierreDiario.filter(i => i.iKind === 6).forEach(arqueo => {\r\n\r\n // if (arqueo.articuloId === 0) {\r\n // importe += arqueo.importe;\r\n // }\r\n // else {\r\n // importe -= arqueo.importe;\r\n // }\r\n\r\n // });\r\n\r\n\r\n // const cobrosArcade = { ...arcade, importe: importe, concepto: 'Cobros/Pagos', isMovCaja: 1, producto: 'Cobros Arcade', iKind: 100 }; // iKind 100 (creado al cliente, no viene de la base de datos o el servidor)\r\n // datosCierreDiario.push(cobrosArcade);\r\n // }\r\n return {\r\n datos: datosCierreDiario,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_DATOS_CIERRE_DIARIO:\r\n\r\n const newDatos = state.datos.filter(i => i.iKind !== 100).map((item) => {\r\n if (item.articuloId !== action.payload.articuloId) return item;\r\n else return action.payload;\r\n });\r\n\r\n const cobrosArcade = state.datos.find(c => c.iKind === 100);\r\n if (cobrosArcade) {\r\n\r\n let importe = 0.0;\r\n\r\n newDatos.filter(i => i.iKind === 6).forEach(arqueo => {\r\n\r\n if (arqueo.articuloId === 0) {\r\n importe += arqueo.importe;\r\n }\r\n else {\r\n importe -= arqueo.importe;\r\n }\r\n\r\n });\r\n\r\n newDatos.push({ ...cobrosArcade, importe: importe });\r\n }\r\n\r\n return {\r\n datos: newDatos,\r\n isLoading: false\r\n };\r\n\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import {\r\n SET_CENTRO_DIA, DESBLOQUEAR_CIERRE_DIARIO, CIERRE_DIARIO_CERRAR_DIA, DESBLOQUEAR_CIERRE_SEMANAL,\r\n CIERRE_SEMANAL_CERRAR_SEMANA, INVALIDATE_CENTRO_DIA, ENABLE_CENTRO_DIA\r\n} from '../constants/action_types';\r\n\r\nconst initialState = { centro: {}, dia: '', isDiaCerrado: false, isSemanaCerrada: false, existeCierreSemanal: false, isLoaded: false, isValid: false };\r\n\r\nexport default function (state = initialState, action) {\r\n switch (action.type) {\r\n case SET_CENTRO_DIA:\r\n\r\n return {\r\n ...state,\r\n isLoaded: !action.meta.fromUI,\r\n };\r\n case SET_CENTRO_DIA + '_SUCCESS':\r\n\r\n // return {\r\n // centro: action.meta.centro,\r\n // dia: action.meta.dia,\r\n // isDiaCerrado: action.payload.data.isDiaCerrado,\r\n // isSemanaCerrada: action.payload.data.isSemanaCerrada,\r\n // existeCierreSemanal: action.payload.data.existeCierreSemanal,\r\n // isLoaded: true,\r\n // isValid: true\r\n // };\r\n\r\n let dt = new Date(action.payload.data.fecha.slice(0, 10));\r\n\r\n\r\n return {\r\n centro: action.payload.data.centro,\r\n dia: dt.toISOString().slice(0, 10),\r\n isDiaCerrado: action.payload.data.isDiaCerrado,\r\n isSemanaCerrada: action.payload.data.isSemanaCerrada,\r\n existeCierreSemanal: action.payload.data.existeCierreSemanal,\r\n isLoaded: true,\r\n isValid: true\r\n };\r\n\r\n\r\n // case GET_CIERRE_SEMANAL_DATOS + \"_SUCCESS\":\r\n // return {...state, isSemanaCerrada: action.payload.data.isSemanaCerrada}\r\n\r\n\r\n // case SET_INITIAL_CENTRO_DIA + '_SUCCESS':\r\n\r\n // let dt = new Date(action.payload.data.ultimoCierreDiario.slice(0, 10));\r\n\r\n // // if(action.meta.semanal){\r\n // // let offset = action.payload.data.centro.iDiaCierre - dt.getDay();\r\n // // if(offset < 0) offset += 7;\r\n // // dt.setDate(dt.getDate() + offset);\r\n // // }\r\n\r\n // return {\r\n // centro: action.payload.data.centro,\r\n // dia: dt.toISOString().slice(0, 10),\r\n // isDiaCerrado: false,\r\n // isSemanaCerrada: false,\r\n // existeCierreSemanal: true,\r\n // isLoaded: true,\r\n // isValid: true\r\n // };\r\n case INVALIDATE_CENTRO_DIA:\r\n\r\n return { ...state, isValid: false }\r\n\r\n case ENABLE_CENTRO_DIA:\r\n return { ...state, isValid: true }\r\n\r\n case DESBLOQUEAR_CIERRE_DIARIO + \"_SUCCESS\":\r\n\r\n return { ...state, isDiaCerrado: false }\r\n\r\n case CIERRE_DIARIO_CERRAR_DIA + \"_SUCCESS\":\r\n\r\n return { ...state, isDiaCerrado: true }\r\n\r\n case DESBLOQUEAR_CIERRE_SEMANAL + \"_SUCCESS\":\r\n\r\n return { ...state, isSemanaCerrada: false }\r\n\r\n case CIERRE_SEMANAL_CERRAR_SEMANA + \"_SUCCESS\":\r\n\r\n return { ...state, isSemanaCerrada: true }\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { GET_OTROS_DATOS_CIERRE_DIARIO, MODIFY_FIELD_OTROSDATOS_CIERRE } from '../constants/action_types';\r\n\r\nconst initialState = { datos: {}, top5: {}, tieneTokens: true, isLoading: false, loaded: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_OTROS_DATOS_CIERRE_DIARIO:\r\n\r\n return {\r\n datos: {},\r\n top5: {},\r\n tieneTokens: true,\r\n isLoading: true,\r\n loaded: false\r\n };\r\n\r\n case GET_OTROS_DATOS_CIERRE_DIARIO + \"_SUCCESS\":\r\n\r\n return {\r\n datos: action.payload.data.datos,\r\n top5: action.payload.data.top5,\r\n tieneTokens: action.payload.data.tieneTokens,\r\n isLoading: false,\r\n loaded: true\r\n };\r\n\r\n case MODIFY_FIELD_OTROSDATOS_CIERRE:\r\n\r\n return {\r\n datos: {...state.datos, [action.payload.field]: action.payload.value},\r\n top5: state.top5,\r\n tieneTokens: state.tieneTokens,\r\n isLoading: false,\r\n loaded: true\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n };\r\n};","import { GET_ARTGASTOS } from '../constants/action_types';\r\n\r\nconst initialState = [];\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n\r\n case GET_ARTGASTOS + \"_SUCCESS\":\r\n\r\n return action.payload.data;\r\n\r\n default:\r\n return state;\r\n }\r\n}","import { GET_ARTMKT } from '../constants/action_types';\r\n\r\nconst initialState = [];\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n\r\n case GET_ARTMKT + \"_SUCCESS\":\r\n\r\n return action.payload.data;\r\n\r\n default:\r\n return state;\r\n }\r\n}","import { GET_TIPO_GASTOS_CIERRE } from '../constants/action_types';\r\n\r\nconst initialState = [];\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n\r\n case GET_TIPO_GASTOS_CIERRE + \"_SUCCESS\":\r\n\r\n return action.payload.data;\r\n\r\n default:\r\n return state;\r\n }\r\n}","import { GET_MAQUINAS_CENTRO_ORIGEN, MOVE_MAQUINA_TO_CENTRO_DESINO } from '../constants/action_types';\r\n\r\nconst initialState = { maquinas: [], refresh: false, isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_MAQUINAS_CENTRO_ORIGEN:\r\n\r\n return { maquinas: [], refresh: false, isLoading: true };\r\n \r\n case GET_MAQUINAS_CENTRO_ORIGEN + \"_SUCCESS\":\r\n \r\n return { maquinas: action.payload.data, refresh: false, isLoading: false };\r\n\r\n case MOVE_MAQUINA_TO_CENTRO_DESINO + \"_SUCCESS\":\r\n\r\n return { maquinas: action.payload.data, refresh: true, isLoading: false };\r\n\r\n default:\r\n\r\n return state;\r\n };\r\n\r\n};","import { GET_MAQUINAS_CENTRO_DESTINO, MOVE_MAQUINA_TO_CENTRO_DESINO } from '../constants/action_types';\r\n\r\nconst initialState = { maquinas: [], refresh: false, isLoading: false, moveSuccess: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_MAQUINAS_CENTRO_DESTINO:\r\n\r\n return { maquinas: [], refresh: false, isLoading: true, moveSuccess: false };\r\n\r\n case GET_MAQUINAS_CENTRO_DESTINO + \"_SUCCESS\":\r\n\r\n return { maquinas: action.payload.data, refresh: false, isLoading: false, smoveSuccess: false };\r\n\r\n case MOVE_MAQUINA_TO_CENTRO_DESINO + \"_SUCCESS\":\r\n\r\n return { maquinas: action.payload.data, refresh: true, isLoading: false, moveSuccess: true };\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import { GET_OTROS_DATOS_CIERRE_SEMANAL, MODIFY_FIELD_OTROSDATOS_CIERRE_SEMANAL } from '../constants/action_types';\r\n\r\nconst initialState = { otrosdatos: {}, isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_OTROS_DATOS_CIERRE_SEMANAL:\r\n\r\n return {\r\n otrosdatos: {},\r\n isLoading: true\r\n };\r\n\r\n case GET_OTROS_DATOS_CIERRE_SEMANAL + \"_SUCCESS\":\r\n\r\n return {\r\n otrosdatos: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_FIELD_OTROSDATOS_CIERRE_SEMANAL:\r\n\r\n return {\r\n otrosdatos: { ...state.otrosdatos, [action.payload.field]: action.payload.value },\r\n isLoading: false\r\n }\r\n\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_RESUMEN_CIERRE_SEMANAL } from '../constants/action_types';\r\n\r\nconst initialState = { items: [], resumen: [], gastosGeneral: 0.0, arcadeCompl: 0.0, isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_RESUMEN_CIERRE_SEMANAL:\r\n \r\n return {\r\n items:[],\r\n resumen: [],\r\n gastosGeneral: 0.0,\r\n arcadeCompl: 0.0,\r\n isLoading: true\r\n };\r\n\r\n case GET_RESUMEN_CIERRE_SEMANAL + \"_SUCCESS\":\r\n \r\n return {\r\n items: action.payload.data.items,\r\n resumen: action.payload.data.resumen,\r\n observaciones: action.payload.data.observaciones,\r\n gastosGeneral: action.payload.data.gastosGeneral,\r\n arcadeCompl: action.payload.data.arcadeCompl,\r\n isLoading: false\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n };\r\n};","import { GET_RESUMEN_CIERRE_DIARIO } from '../constants/action_types';\r\n\r\nconst initialState = { resumen: [], isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_RESUMEN_CIERRE_DIARIO:\r\n \r\n return {\r\n resumen: [],\r\n isLoading: true\r\n };\r\n\r\n case GET_RESUMEN_CIERRE_DIARIO + \"_SUCCESS\":\r\n \r\n return {\r\n resumen: action.payload.data.resumen,\r\n isLoading: false\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n };\r\n};","import {\r\n GET_CIERRE_SEMANAL_DATOS, MODIFY_ARQUEO_CIERRE_SEMANAL, MODIFY_VARIACION_EUROS, MODIFY_VARIACION_TOKENS, MODIFY_MAQ_ARCADE_CIERRE_SEMANAL, RESET_CIERRE_SEMANAL_DATOS, UPDATE_BILLARES_CIERRE_SEMANAL, MODIFY_BANCO_2_CIERRE_SEMANAL,\r\n DESBLOQUEAR_CIERRE_SEMANAL, CIERRE_SEMANAL_CERRAR_SEMANA, MODIFY_VARIACION_TOKENS_CENTRO\r\n} from \"../constants/action_types\";\r\n\r\nconst initialState = { datos: {}, isLoading: false, semanaCerrada: true };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_CIERRE_SEMANAL_DATOS:\r\n\r\n return {\r\n datos: {},\r\n isLoading: true,\r\n semanaCerrada: true,\r\n centroid: action.meta.centroid,\r\n date: action.meta.date\r\n };\r\n\r\n case GET_CIERRE_SEMANAL_DATOS + \"_SUCCESS\":\r\n\r\n if(state.centroid !== action.meta.centroid || state.date !== action.meta.date) return state;\r\n\r\n return {\r\n datos: action.payload.data,\r\n isLoading: false,\r\n semanaCerrada: action.payload.data.isSemanaCerrada\r\n };\r\n\r\n case MODIFY_ARQUEO_CIERRE_SEMANAL:\r\n\r\n const newDatos = { ...state.datos, bancoArcade: action.payload }\r\n return {\r\n datos: newDatos,\r\n isLoading: false,\r\n semanaCerrada: false\r\n }\r\n\r\n case MODIFY_BANCO_2_CIERRE_SEMANAL:\r\n\r\n return {\r\n datos: { ...state.datos, bancoArcade2: action.payload },\r\n isLoading: false,\r\n semanaCerrada: false\r\n }\r\n\r\n\r\n case MODIFY_VARIACION_EUROS:\r\n\r\n return {\r\n datos: {\r\n ...state.datos,\r\n fondoEurosEnd: action.payload\r\n },\r\n isLoading: false,\r\n semanaCerrada: false\r\n }\r\n\r\n case MODIFY_VARIACION_TOKENS:\r\n\r\n return {\r\n datos: {\r\n ...state.datos,\r\n fondoTokensEnd: action.payload\r\n },\r\n isLoading: false,\r\n semanaCerrada: false\r\n }\r\n\r\n case MODIFY_VARIACION_TOKENS_CENTRO:\r\n\r\n\r\n //calculate new fondoTokensCentroEnd & fondoTokensEnd\r\n const variacionFondo = action.payload;\r\n const iniC = state.datos.fondoTokensCentroIni;\r\n const fondoTokensCentroEnd = iniC + variacionFondo;\r\n\r\n const ini = state.datos.fondoTokensIni;\r\n const entreg = state.datos.totalEntregado;\r\n const recuperados = state.datos.totalTokensMaq;\r\n const fondoTokensEnd = ini + recuperados - entreg - variacionFondo;\r\n\r\n\r\n return {\r\n datos: {\r\n ...state.datos,\r\n fondoTokensCentroEnd: fondoTokensCentroEnd,\r\n fondoTokensEnd: fondoTokensEnd\r\n },\r\n isLoading: false,\r\n semanaCerrada: false\r\n }\r\n\r\n case DESBLOQUEAR_CIERRE_SEMANAL + \"_SUCCESS\":\r\n\r\n return {\r\n ...state,\r\n isLoading: false,\r\n semanaCerrada: false\r\n }\r\n\r\n case CIERRE_SEMANAL_CERRAR_SEMANA + \"_SUCCESS\":\r\n\r\n return {\r\n ...state,\r\n isLoading: false,\r\n semanaCerrada: true\r\n }\r\n\r\n case MODIFY_MAQ_ARCADE_CIERRE_SEMANAL:\r\n\r\n const newArcade = state.datos.arcade.map(row => {\r\n if (row.zonaId === action.payload.zonaId) {\r\n return {\r\n ...row,\r\n euros: row.euros + action.payload.total_euros,\r\n eurosSinMult: row.eurosSinMult + action.payload.total_euros_sin_mult,\r\n tickets: row.tickets + action.payload.total_tickets,\r\n tokens: row.tokens + action.payload.total_tokens,\r\n regalos: row.regalos + action.payload.total_regalos,\r\n visas: row.visas + action.payload.total_visas,\r\n }\r\n }\r\n else return row;\r\n })\r\n\r\n let totalEuros = 0.0;\r\n let totalEurosSinMult = 0.0;\r\n\r\n newArcade.forEach(r => {\r\n totalEuros += r.euros;\r\n totalEurosSinMult += (r.eurosSinMult ? r.eurosSinMult: 0.0);\r\n }); \r\n\r\n const a = { ...state.datos, arcade: newArcade, totalEurosMaq: totalEuros, totalEurosMaqSinMult: totalEurosSinMult }\r\n\r\n return {\r\n ...state,\r\n datos: a\r\n }\r\n\r\n case UPDATE_BILLARES_CIERRE_SEMANAL + \"_SUCCESS\":\r\n\r\n if (action.payload.data.update) {\r\n\r\n return {\r\n datos: {\r\n ...state.datos,\r\n totalEurosMaq: state.datos.totalEurosMaq + action.payload.data.importe,\r\n arcade: action.payload.data.arcade\r\n },\r\n isLoading: false,\r\n semanaCerrada: false\r\n }\r\n }\r\n\r\n return state;\r\n\r\n\r\n case RESET_CIERRE_SEMANAL_DATOS:\r\n\r\n return initialState;\r\n\r\n default:\r\n return state;\r\n }\r\n\r\n}","import {\r\n GET_PRESUPUESTO, GENERATE_PRESUPUESTO, UPDATE_PRESUPUESTO_DETALLE, COPIAR_PRESUPUESTO, CAMBIAR_BLOQUEO_PRESUPUESTO\r\n} from '../constants/action_types';\r\n\r\nconst initialState = { presupuesto: {}, isLoading: false, reload: true, copied: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n\r\n case GET_PRESUPUESTO:\r\n\r\n return { ...state, isLoading: true, reload: false, copied: false };\r\n\r\n case GET_PRESUPUESTO + \"_SUCCESS\":\r\n\r\n return { ...state, presupuesto: action.payload.data, isLoading: false, reload: false, copied: false };\r\n\r\n case GENERATE_PRESUPUESTO:\r\n\r\n return { ...state, isLoading: true };\r\n\r\n case GENERATE_PRESUPUESTO + \"_SUCCESS\":\r\n\r\n return { ...state, isLoading: false, reload: true, copied: false };\r\n \r\n case GENERATE_PRESUPUESTO + \"_FAILURE\":\r\n\r\n return { ...state, isLoading: false, reload: false, copied: false };\r\n\r\n case COPIAR_PRESUPUESTO + \"_SUCCESS\":\r\n\r\n return { ...state, isLoading: false, reload: false, copied: true };\r\n\r\n case UPDATE_PRESUPUESTO_DETALLE + \"_SUCCESS\":\r\n\r\n return { ...state, presupuesto: state.presupuesto, isLoading: false, reload: true, copied: false };\r\n\r\n case CAMBIAR_BLOQUEO_PRESUPUESTO + \"_SUCCESS\":\r\n\r\n return { ...state, presupuesto: { ...state.presupuesto, cerrado: !state.presupuesto.cerrado }, copied: false };\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import {\r\n GET_PRESUPUESTO_DETALLE, GET_NEW_PRESUPUESTO_DETALLE, UPDATE_PRESUPUESTO_DETALLE\r\n} from '../constants/action_types';\r\n\r\nconst initialState = { presupuesto: {}, isLoading: false, reload: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n\r\n case GET_PRESUPUESTO_DETALLE:\r\n\r\n return { presupuesto: {}, isLoading: true, reload: false };\r\n\r\n case GET_PRESUPUESTO_DETALLE + \"_SUCCESS\":\r\n\r\n return { presupuesto: action.payload.data, isLoading: false, reload: false };\r\n\r\n case GET_NEW_PRESUPUESTO_DETALLE:\r\n\r\n return { ...state, isLoading: true }\r\n\r\n case GET_NEW_PRESUPUESTO_DETALLE + \"_SUCCESS\":\r\n\r\n return { presupuesto: { ...state.presupuesto, values: action.payload.data }, isLoading: false, reload: false };\r\n\r\n case UPDATE_PRESUPUESTO_DETALLE + \"_SUCCESS\":\r\n\r\n return { presupuesto: {}, isLoading: false, reload: true };\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import { GET_USUARIOS, GET_USUARIOS_KD } from '../constants/action_types';\r\n\r\nconst initialState = { usuarios: [], refresh: false, isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_USUARIOS:\r\n \r\n return { ...state, isLoading: true };\r\n\r\n case GET_USUARIOS_KD:\r\n \r\n return { ...state, isLoading: true };\r\n \r\n case GET_USUARIOS + \"_SUCCESS\":\r\n \r\n return {\r\n usuarios: action.payload.data,\r\n isLoading: false,\r\n refresh: false\r\n };\r\n\r\n case GET_USUARIOS_KD + \"_SUCCESS\":\r\n \r\n return {\r\n usuarios: action.payload.data,\r\n isLoading: false,\r\n refresh: false\r\n };\r\n \r\n default:\r\n\r\n return state;\r\n };\r\n};","import {\r\n GET_USUARIO_DETALLES, MODIFY_USUARIO_DETALLES, UPDATE_USUARIO_DETALLES, ADD_NEW_USUARIO\r\n} from '../constants/action_types';\r\n\r\nconst initialState = { usuarioDetalles: {}, isLoading: true, updated: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n\r\n case GET_USUARIO_DETALLES:\r\n\r\n return { ...state, isLoading: true };\r\n\r\n case GET_USUARIO_DETALLES + \"_SUCCESS\":\r\n\r\n return {\r\n usuarioDetalles: { ...action.payload.data },\r\n updated: false,\r\n isLoading: false\r\n };\r\n\r\n\r\n case ADD_NEW_USUARIO:\r\n\r\n return {\r\n usuarioDetalles: {\r\n id: -1,\r\n codigoUsuario: '',\r\n password: '',\r\n nombre: '',\r\n centroId: action.payload.defaultCenter,\r\n activo: true,\r\n },\r\n updated: false,\r\n isLoading: false\r\n };\r\n\r\n\r\n case MODIFY_USUARIO_DETALLES:\r\n\r\n const field = action.payload.field,\r\n value = action.payload.value;\r\n\r\n return {\r\n usuarioDetalles: { ...state.usuarioDetalles, [field]: value },\r\n updated: false,\r\n isLoading: false\r\n };\r\n\r\n\r\n case UPDATE_USUARIO_DETALLES:\r\n\r\n return {\r\n usuarioDetalles: action.payload,\r\n updated: true,\r\n isLoading: false\r\n };\r\n\r\n default:\r\n\r\n return state;\r\n };\r\n\r\n};","import {\r\n GET_USUARIO_DETALLES, ADD_NEW_USUARIO, ADD_CENTRO_USUARIO, \r\n DELETE_CENTRO_USUARIO, MODIFY_CENTRO_USUARIO\r\n\r\n} from '../constants/action_types';\r\n\r\nconst initialState = { usuarioCentros: [], isLoading: false };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_USUARIO_DETALLES:\r\n\r\n return {\r\n usuarioCentros: [],\r\n isLoading: true\r\n };\r\n\r\n case GET_USUARIO_DETALLES + \"_SUCCESS\":\r\n\r\n return {\r\n usuarioCentros: action.payload.data.usuarioCentro,\r\n isLoading: false\r\n };\r\n\r\n case ADD_CENTRO_USUARIO:\r\n\r\n const newArr = [...state.usuarioCentros, action.payload]\r\n\r\n return {\r\n usuarioCentros: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_CENTRO_USUARIO:\r\n return {\r\n usuarioCentros: state.usuarioCentros.map((centro) => {\r\n if (centro.id !== action.payload.id) return centro;\r\n else return action.payload;\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_CENTRO_USUARIO:\r\n return {\r\n usuarioCentros: state.usuarioCentros.filter(centro => centro.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case ADD_NEW_USUARIO:\r\n \r\n return initialState;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n\r\n}","import { SET_SAVE_STATE_PENDING } from '../constants/action_types';\r\n\r\nconst initialState = { pending: false };\r\n\r\nexport default function (state = initialState, action) {\r\n switch (action.type) {\r\n\r\n case SET_SAVE_STATE_PENDING:\r\n return {...state, pending: action.payload}\r\n default:\r\n return state\r\n }\r\n}","import { AirplayTwoTone } from '@material-ui/icons';\r\nimport { GET_USER_PROFILE, SET_SELECTED_USER_CENTRO_PROFILE } from '../constants/action_types';\r\nimport { GetKDfromString } from '../KDgeneric'\r\n\r\nconst initialState = { profile: {}, selectedCentroProfile: undefined };\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n\r\n case SET_SELECTED_USER_CENTRO_PROFILE:\r\n\r\n return { ...state, selectedCentroProfile: state.profile.usuarioCentro[action.payload] };\r\n\r\n case GET_USER_PROFILE + \"_SUCCESS\":\r\n\r\n //seleccionamos el centro por defecto del usuario de entre los centros activos\r\n let selected = action.payload.data.usuarioCentro.filter(uc => uc.centro.activo === 1 && uc.centroId === action.payload.data.centroId)[0];\r\n // si no esta activo el centro sleccionamos el primero de los activos\r\n if (selected === undefined) selected = action.payload.data.usuarioCentro.filter(uc => uc.centro.activo === 1)[0];\r\n\r\n // fbp_kd\r\n if (action.meta.kd === undefined) {\r\n return { profile: action.payload.data, selectedCentroProfile: selected };\r\n }\r\n else {\r\n let kds = GetKDfromString(action.meta.kd);\r\n if (kds.centro_id === -1)\r\n return { profile: action.payload.data, selectedCentroProfile: selected };\r\n else {\r\n if (selected === undefined)\r\n return { profile: action.payload.data, selectedCentroProfile: selected };\r\n else\r\n return { profile: action.payload.data, selectedCentroProfile: selected, kd: kds };\r\n }\r\n }\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { NAVIGATION } from '../constants/action_types';\r\n\r\nconst initialState = { location: '' };\r\n\r\nexport default function (state = initialState, action) {\r\n switch (action.type) {\r\n case NAVIGATION:\r\n return { location: action.payload};\r\n default:\r\n return state;\r\n }\r\n}","import { GET_FAMILIA, ADD_FAMILIA, MODIFY_FAMILIA, DELETE_FAMILIA, UPDATE_FAMILIA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n familias: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_FAMILIA:\r\n \r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n\r\n case GET_FAMILIA + \"_SUCCESS\":\r\n return {\r\n familias: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_FAMILIA:\r\n \r\n const newArr = [...state.familias, action.payload]\r\n return {\r\n familias: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_FAMILIA:\r\n \r\n return {\r\n familias: state.familias.map((p) => {\r\n if (p.id !== action.payload.id) \r\n return p;\r\n else\r\n return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_FAMILIA:\r\n\r\n return {\r\n familias: state.familias.filter(p => p.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_FAMILIA + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_SUB_FAMILIA, ADD_SUB_FAMILIA, MODIFY_SUB_FAMILIA, DELETE_SUB_FAMILIA, UPDATE_SUB_FAMILIA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n subFamiliaList: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_SUB_FAMILIA:\r\n \r\n return {\r\n subFamiliaList: [],\r\n isLoading: true\r\n };\r\n\r\n case GET_SUB_FAMILIA + \"_SUCCESS\":\r\n \r\n return {\r\n subFamiliaList: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_SUB_FAMILIA:\r\n\r\n const newArr = [...state.subFamiliaList, action.payload]\r\n return {\r\n subFamiliaList: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_SUB_FAMILIA:\r\n\r\n return {\r\n subFamiliaList: state.subFamiliaList.map((p) => {\r\n if (p.id !== action.payload.id) return p;\r\n else return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n case DELETE_SUB_FAMILIA:\r\n\r\n return {\r\n subFamiliaList: state.subFamiliaList.filter(p => p.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_SUB_FAMILIA + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_TIPO_FICHA, ADD_TIPO_FICHA, MODIFY_TIPO_FICHA, DELETE_TIPO_FICHA, UPDATE_TIPO_FICHA } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n tipoFichaList: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_TIPO_FICHA:\r\n \r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n\r\n case GET_TIPO_FICHA + \"_SUCCESS\":\r\n return {\r\n tipoFichaList: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_TIPO_FICHA:\r\n \r\n const newArr = [...state.tipoFichaList, action.payload]\r\n return {\r\n tipoFichaList: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_TIPO_FICHA:\r\n \r\n return {\r\n tipoFichaList: state.tipoFichaList.map((p) => {\r\n if (p.id !== action.payload.id) \r\n return p;\r\n else\r\n return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_TIPO_FICHA:\r\n\r\n return {\r\n tipoFichaList: state.tipoFichaList.filter(p => p.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_TIPO_FICHA + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_TIPO_FICHA_SUB, ADD_TIPO_FICHA_SUB, MODIFY_TIPO_FICHA_SUB, DELETE_TIPO_FICHA_SUB, UPDATE_TIPO_FICHA_SUB } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n tipoFichaSubList: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_TIPO_FICHA_SUB:\r\n \r\n return {\r\n tipoFichaSubList: [],\r\n isLoading: true\r\n };\r\n\r\n case GET_TIPO_FICHA_SUB + \"_SUCCESS\":\r\n \r\n return {\r\n tipoFichaSubList: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_TIPO_FICHA_SUB:\r\n\r\n const newArr = [...state.tipoFichaSubList, action.payload]\r\n return {\r\n tipoFichaSubList: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_TIPO_FICHA_SUB:\r\n\r\n return {\r\n tipoFichaSubList: state.tipoFichaSubList.map((p) => {\r\n if (p.id !== action.payload.id) return p;\r\n else return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n case DELETE_TIPO_FICHA_SUB:\r\n\r\n return {\r\n tipoFichaSubList: state.tipoFichaSubList.filter(p => p.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_TIPO_FICHA_SUB + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_TIPO_MOV_REDEM, ADD_TIPO_MOV_REDEM, MODIFY_TIPO_MOV_REDEM, DELETE_TIPO_MOV_REDEM, UPDATE_TIPO_MOV_REDEM } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n tipoMovRedemList: [],\r\n isLoading: false\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n case GET_TIPO_MOV_REDEM:\r\n \r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n\r\n case GET_TIPO_MOV_REDEM + \"_SUCCESS\":\r\n return {\r\n tipoMovRedemList: action.payload.data,\r\n isLoading: false\r\n };\r\n\r\n case ADD_TIPO_MOV_REDEM:\r\n \r\n const newArr = [...state.tipoMovRedemList, action.payload]\r\n return {\r\n tipoMovRedemList: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_TIPO_MOV_REDEM:\r\n \r\n return {\r\n tipoMovRedemList: state.tipoMovRedemList.map((p) => {\r\n if (p.id !== action.payload.id) \r\n return p;\r\n else\r\n return action.payload\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_TIPO_MOV_REDEM:\r\n\r\n return {\r\n tipoMovRedemList: state.tipoMovRedemList.filter(p => p.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_TIPO_MOV_REDEM + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { GET_SEGMENTACION, ADD_SEGMENTACION, MODIFY_SEGMENTACION, DELETE_SEGMENTACION, UPDATE_SEGMENTACION } from '../constants/action_types';\r\n\r\nconst initialState = {\r\n segmentacionList: [],\r\n isLoading: false\r\n};\r\n\r\n// export function getFieldDescr(value)\r\n// {\r\n// const tipos = ['','Saldo tarjeta','Dias sin uso', 'Núm. Tarjeta (concreta)', 'Where genérico'];\r\n// return tipos[value ? value : 0]\r\n// }\r\n\r\n// export function getOperatorDescr(value)\r\n// {\r\n// const tipos = ['','igual a...','mayor que...', 'menor que...', 'entre...y...'];\r\n// return tipos[value ? value : 0]\r\n// }\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_SEGMENTACION:\r\n \r\n return {\r\n ...state, centroId: action.meta,\r\n isLoading: true\r\n };\r\n\r\n case GET_SEGMENTACION + \"_SUCCESS\":\r\n \r\n return {\r\n segmentacionList: action.payload.data,\r\n isLoading: false\r\n };\r\n // const newSegList = [...action.payload.data];\r\n // newSegList.forEach(s => {\r\n // const newObs = [...s.dcSegmentacionLinea];\r\n // newObs.forEach(o => {\r\n // o.operatorDescr = getOperatorDescr(o.iOperator);\r\n // o.fieldDescr = getFieldDescr(o.iField);\r\n // });\r\n // }); \r\n // return {\r\n // segmentacionList: newSegList, // action.payload.data,\r\n // isLoading: false\r\n // };\r\n\r\n // const newList = action.payload.data.map(p => {\r\n // p.dcSegmentacionLinea.map(q=> {\r\n\r\n // })\r\n // return {...p, tipoPromocionDescr: getDescr(p.iTipoPromocion)}\r\n // })\r\n // const newPromo = action.payload.data.map(p => {\r\n // return {...p, tipoPromocionDescr: getDescr(p.iTipoPromocion)}\r\n // })\r\n\r\n // return {\r\n // promocionList: newPromo,\r\n // isLoading: false\r\n // };\r\n\r\n\r\n case ADD_SEGMENTACION:\r\n \r\n const newArr = [...state.segmentacionList, action.payload]\r\n return {\r\n segmentacionList: newArr,\r\n isLoading: false\r\n };\r\n\r\n case MODIFY_SEGMENTACION:\r\n \r\n // Ejemplo de codificación sin estar asociada a una tabla CV_ => añade la descripción a cada item\r\n // return {\r\n // promocionList: state.promocionList.map((p) => {\r\n // if (p.id !== action.payload.id) \r\n // return p;\r\n // else\r\n // return {...action.payload, tipoPromocionDescr: getDescr(action.payload.iTipoPromocion)};\r\n // }),\r\n // isLoading: false\r\n // };\r\n return {\r\n segmentacionList: state.segmentacionList.map((p) => {\r\n if (p.id !== action.payload.id) \r\n return p;\r\n else\r\n return action.payload;\r\n }),\r\n isLoading: false\r\n };\r\n\r\n case DELETE_SEGMENTACION:\r\n\r\n return {\r\n segmentacionList: state.segmentacionList.filter(p => p.id !== action.payload.id),\r\n isLoading: false\r\n };\r\n\r\n case UPDATE_SEGMENTACION + \"_SUCCESS\":\r\n\r\n return state;\r\n\r\n default:\r\n\r\n return state;\r\n }\r\n}","import { combineReducers } from 'redux';\r\nimport { reducer as oidc } from 'redux-oidc';\r\nimport dialogs from './reducer_dialogs';\r\nimport section from './reducer_section';\r\nimport tiposZona from './reducer_tipos_zona';\r\nimport tiposPartida from './reducer_tipos_partida';\r\nimport grupoPartida from './reducer_grupo_partida';\r\nimport tiposMaquina from './reducer_tipos_maquina';\r\nimport modelosMaquina from './reducer_modelos_maquina';\r\nimport allArticulos from './reducer_all_articulos';\r\nimport tiposArticulo from './reducer_tipos_articulos';\r\nimport tipoGasto from './reducer_tipo_gasto';\r\nimport tipoZonaIva from './reducer_tipo_zona_iva';\r\nimport centros from './reducer_centros';\r\nimport centroDetalle from './reducer_centro_detalle';\r\nimport cajasCentro from './reducer_cajas_centro';\r\nimport zonaIvaCentro from './reducer_zonasiva_centro';\r\nimport centrosCentro from './reducer_centros_centro';\r\nimport tiposZonaIva from './reducer_tipos_zonas_iva';\r\nimport zonasCentro from './reducer_zonas_centro';\r\nimport zonaDetalles from './reducer_zona_detalles';\r\nimport zonaDetallesTipoPartida from './reducer_zona_detalles_tipo_partida';\r\nimport zonaProductos from './reducer_zona_detalles_productos';\r\nimport zonaProductosCaja from './reducer_zona_detalles_productos_caja';\r\nimport zonaMaquinas from './reducer_zona_maquinas';\r\nimport maeMaquinas from './reducer_maemaquinas';\r\nimport maquinaDetalle from './reducer_maquina_detalles';\r\nimport maquinaContadores from './reducer_maquina_detalles_contadores';\r\nimport maquinaIncidencias from './reducer_maquina_detalles_incidencias';\r\nimport maquinalicencias from './reducer_maquina_detalles_licencias';\r\nimport maquinaItvs from './reducer_maquina_detalles_itvs';\r\nimport maquinaCentros from './reducer_maquina_detalles_centros';\r\nimport contabCentro from './reducer_contab_centro';\r\nimport empresas from './reducer_empresas';\r\nimport datosCierreDiario from './reducer_datos_cierre_diario';\r\nimport centroDiaSelected from './reducer_centro_dia_selected';\r\nimport otrosDatosCierreDiario from './reducer_otros_datos_cierre_diario';\r\nimport artGastos from './reducer_art_gastos';\r\nimport artMKT from './reducer_art_mkt';\r\nimport tipoGastosCierre from './reducer_tipo_gastos_cierre';\r\nimport moverMaquinasOrigen from './reducer_acc_mover_maquinasOrigen';\r\nimport moverMaquinasDestino from './reducer_acc_mover_maquinasDestino';\r\nimport otrosDatosCierreSemanal from './reducer_otros_datos_cierre_semanal';\r\nimport resumenCierreSemanal from './reducer_resumen_cierre_semanal';\r\nimport resumenCierreDiario from './reducer_resumen_cierre_diario';\r\n\r\nimport datosCierreSemanal from './reducer_datos_cierre_semanal';\r\nimport loading from './reducer_loading';\r\n\r\nimport presupuesto from './reducer_presupuesto';\r\nimport presupuestoDetalle from './reducer_presupuesto_detalle';\r\n\r\nimport perfilesUsuario from './reducer_perfiles_usuario';\r\nimport usuarioDetalles from './reducer_perfiles_usuario_detalles';\r\nimport usuarioCentros from './reducer_perfiles_usuario_centro';\r\n\r\nimport saveState from './reducer_save_state';\r\n\r\nimport userProfile from './reducer_user_profile';\r\nimport navigation from './reducer_navigation';\r\n\r\nimport familia from './reducer_familia';\r\nimport subFamilia from './reducer_sub_familia';\r\nimport tipoFicha from './reducer_tipo_ficha';\r\nimport tipoFichaSub from './reducer_tipo_ficha_sub';\r\nimport tipoMovRedem from './reducer_tipo_mov_redem';\r\nimport promocion from './reducer_promocion';\r\nimport motivo from './reducer_motivo';\r\nimport segmentacion from './reducer_segmentacion';\r\n\r\nconst rootReducer = combineReducers({\r\n loading,\r\n dialogs,\r\n section,\r\n tiposZona,\r\n grupoPartida,\r\n tiposPartida,\r\n tiposMaquina,\r\n modelosMaquina,\r\n tiposArticulo,\r\n tipoZonaIva,\r\n allArticulos,\r\n tipoGasto,\r\n centros,\r\n empresas,\r\n centroDetalle,\r\n cajasCentro,\r\n zonasCentro,\r\n zonaIvaCentro,\r\n centrosCentro,\r\n tiposZonaIva,\r\n zonaDetalles,\r\n zonaDetallesTipoPartida,\r\n zonaProductos,\r\n zonaProductosCaja,\r\n zonaMaquinas,\r\n maeMaquinas,\r\n maquinaDetalle,\r\n maquinaContadores,\r\n maquinaIncidencias,\r\n maquinalicencias,\r\n maquinaItvs,\r\n maquinaCentros,\r\n contabCentro,\r\n datosCierreDiario,\r\n centroDiaSelected ,\r\n otrosDatosCierreDiario,\r\n artGastos,\r\n artMKT,\r\n tipoGastosCierre,\r\n moverMaquinasOrigen,\r\n moverMaquinasDestino,\r\n datosCierreSemanal,\r\n otrosDatosCierreSemanal,\r\n resumenCierreSemanal,\r\n resumenCierreDiario,\r\n presupuesto,\r\n presupuestoDetalle,\r\n perfilesUsuario,\r\n usuarioDetalles,\r\n usuarioCentros,\r\n oidc,\r\n saveState,\r\n userProfile,\r\n navigation,\r\n familia,\r\n subFamilia,\r\n tipoFicha,\r\n tipoFichaSub,\r\n tipoMovRedem,\r\n promocion,\r\n motivo,\r\n segmentacion,\r\n});\r\n\r\nexport default rootReducer;","import { LOADING } from '../constants/action_types';\r\n\r\nconst initialState = false;\r\n\r\nexport default function (state = initialState, action) {\r\n\r\n\r\n switch (action.type) {\r\n\r\n case LOADING:\r\n return action.payload;\r\n\r\n default:\r\n return state;\r\n }\r\n}","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport { Provider } from 'react-redux';\r\nimport { createStore, applyMiddleware } from 'redux';\r\nimport ReduxPromise from 'redux-promise';\r\nimport thunk from 'redux-thunk';\r\nimport { loadUser } from 'redux-oidc';\r\nimport { OidcProvider, processSilentRenew } from 'redux-oidc';\r\n\r\n//import createBrowserHistory from 'history/createBrowserHistory';\r\n\r\nimport reducers from './reducers';\r\nimport userManager from './userManager';\r\n\r\nimport { IsKD_Inventario, SetKD } from './KDgeneric';\r\n\r\n//\r\n// Al cargar el userManager detecta si viene de la página de Login de KD (mirando\r\n// si el pathname es algo tan raro como \"/5428c27d-ed70-4086-baf2-600e9c6a5921\") y\r\n// entonces le asigna un cliente de IdentityServer tal que al volver vaya aun callback\r\n// (callback_page_kd) tal que al volver de identificar al usuario no vaya a una página\r\n// de ilusiona sino a una página en blanco (lo ideal sería que se cerrara pero no sé cómo) \r\n//\r\n// A partir de ahí, cuando entre de nuevo en esta página desde el iframe, el usuario ya estará \r\n// en el navegador, no irá a IdentityServer y además tendra ya un window.location.ancestorOrigins[]\r\n// con el que identificar que viene de KD y de cuál viene.\r\n// \r\nconst createStoreWithMiddleware = applyMiddleware(ReduxPromise, thunk)(createStore);\r\nconst store = createStoreWithMiddleware(reducers);\r\n\r\nloadUser(store, userManager);\r\n\r\nif ( IsKD_Inventario() ) SetKD();\r\n\r\n//export const history = createBrowserHistory();\r\n\r\nif (window.location.pathname === '/silent_renew.html') {\r\n console.log('renew');\r\n processSilentRenew();\r\n}\r\nelse {\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n , document.getElementById('root')\r\n );\r\n}\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}