/// <summary> /// Inicializamos Controles Movimiento en Vacio /// </summary> /// <param name="idCompania">Id Compania del Servicio</param> /// <param name="idParadaActual">Id Parada Actual</param> /// <param name="tipoActualizaionFin">Tipo de Actualización Fin de la Estancia (Manual, GPS, APP)</param> public void InicializaControl(int idCompania, int idParadaActual, Parada.TipoActualizacionLlegada tipoActualizacionLlegada, Parada.TipoActualizacionSalida tipoActualizacionSalida, EstanciaUnidad.TipoActualizacionInicio tipoActuailizacionInicio, EstanciaUnidad.TipoActualizacionFin tipoActualizaionFin) { //Asignamo Atributos this._id_compania_emisor = idCompania; this._id_tipo_actualizacion_fin = tipoActualizaionFin; this._id_parada = idParadaActual; this._id_ubicacion_origen = 0; //Se actualiza con el Id de Ubicación de la unidad principal del movimiento //Instanciamos Parada using (Parada objParada = new Parada(idParadaActual)) { //Declaramos Variables para la Unidad por modificar ubicación int id_unidad = 0; //Asignando Atributos this._id_servicio = objParada.id_servicio; //Cargamos la Unidade que se asignarón a la Parada pero se encuentran en una ubicación distinta MovimientoAsignacionRecurso.CargaRecursoAsignadoAParadaDifUbicacion(idParadaActual, objParada.id_ubicacion, out id_unidad, out this._id_ubicacion_origen); //Instanciamos Unidad using (SAT_CL.Global.Unidad objUnidad = new SAT_CL.Global.Unidad(id_unidad)) { //Si existe unidad a mover if (objUnidad.id_unidad > 0) { //Instanciamos Tipo de Unidad using (SAT_CL.Global.UnidadTipo objUnidadTipo = new SAT_CL.Global.UnidadTipo(objUnidad.id_tipo_unidad)) { //Cargamos Catalogos cargaCatalogos(this._id_ubicacion_origen); //Validamos Tipo de Unidad para Inicializar y habilitar Controles if (objUnidadTipo.bit_motriz == true) { //Inicializamos Controles inicializaValoresUnidad(objUnidad.id_unidad); //Habilitamos Controles habilitarControlesUnidad(); } else { //Inicializamos Controles inicializaValoresRemolque(objUnidad.id_unidad); //Habilitamos Controles habilitaControlesRemolque(); } } } else { //Inicializamos Controles inicializaValores(); //Habilitamos Controles habilitarControles(); } } } }
/// <summary> /// Notificación para pedir ubicación actual al dispositivo /// </summary> /// <param name="tipo_recurso">Tipo de Recurso</param> /// <param name="id_recurso">Id de Entidad acorde al tipo indicado</param> /// <returns></returns> public RetornoOperacion NotificacionPeticionUbicacion(MovimientoAsignacionRecurso.Tipo tipo_recurso, int id_recurso) { //Declrando objeto de resultado RetornoOperacion resultado = new RetornoOperacion(); //Inicializando variables auxiliares string tokenFCM = ""; int idCompania = 0; Usuario usuario = null; //En base al tipo de recurso switch (tipo_recurso) { case MovimientoAsignacionRecurso.Tipo.Operador: //Instanciando el recurso using (Operador op = new Operador(id_recurso)) { //Guardando id de compañía idCompania = op.id_compania_emisor; //Recuperando Usuario correspondiente usuario = Usuario.ObtieneUsuarioAsignadoOperador(op.id_operador); } break; case MovimientoAsignacionRecurso.Tipo.Unidad: //Instanciando Unidad using (Unidad unidad = new Unidad(id_recurso)) { //recuperando Id de Compañía idCompania = unidad.id_compania_emisor; //Instanciando tipo de unidad using (UnidadTipo tipo = new UnidadTipo(unidad.id_tipo_unidad)) { //Si la unidad es motriz if (tipo.bit_motriz) { //Determiando la propiedad de unidad //Si no es propia if (unidad.bit_no_propia) { } //Si lo es else { //Buscando asignación de operador activa int idOperador = AsignacionOperadorUnidad.ObtieneOperadorAsignadoAUnidad(id_recurso); //Recuperando Usuario correspondiente usuario = Usuario.ObtieneUsuarioAsignadoOperador(idOperador); } } } } break; } //Si hay compañía y usuario if (idCompania > 0 && usuario != null) { //Validando configuración de notificaciones resultado = CompaniaEmisorReceptor.ValidaConfiguracionUsoAplicacionMovil(idCompania); //Si se configuró el uso de aplicación móvil if (resultado.OperacionExitosa) { //Validando sesión activa en algún dispositivo if (Validacion.ValidaOrigenDatos(UsuarioSesion.ObtieneSesionesActivasUsuario(usuario.id_usuario, UsuarioSesion.TipoDispositivo.Android))) { //Recuperando referencia del token de usuario using (DataTable mit = Referencia.CargaReferencias(usuario.id_usuario, 30, ReferenciaTipo.ObtieneIdReferenciaTipo(idCompania, 30, "Token FCM", 0, "Configuración"))) tokenFCM = mit != null ? mit.Rows[0]["Valor"].ToString() : ""; //Si se obtuvo el token del usuario correspondiente if (tokenFCM != "") { //Armando mensaje de petición var datos = new { Titulo = "Comando de Ubicación", Mensaje = "N/D", TipoNotificacion = "Ubicacion" }; //Enviando mensaje vía FCM resultado = FirebaseCloudNotifications.EnviaMensajeFCM(_url_servidor_fcm, _server_token_fcm, tokenFCM, FirebaseCloudNotifications.Prioridad.Alta, datos); } //Si no hay token else { resultado = new RetornoOperacion("El token del dispositivo del usuario debe ser actualizado."); } } //Si no hay sesión activa else { resultado = new RetornoOperacion("El usuario no cuenta con una sesión activa en dispositivo móvil."); } } } //Si no hay compañía o usuario else { resultado = new RetornoOperacion("No se localizó la compañía o el usuario asignado al recurso."); } //Si el resultado es correcto if (resultado.OperacionExitosa) { resultado = new RetornoOperacion("Petición enviada correctamente, el tiempo de respuesta puede variar de un dispositivo a otro y verse afectado por la calidad de datos móviles.", true); } //Devolviendo resultado return(resultado); }
/// <summary> /// Inicializamos Controles Movimiento en Vacio Sin Orden /// </summary> /// <param name="id_recurso">Id Recurso</param> /// <param name="id_compania_emisor">Id Compañia Emisor</param> /// <param name="tipoActualizaionFin">Tipo de Actualización Fin de la Estancia (Manual, GPS, APP)</param> public RetornoOperacion InicializaControl(int id_recurso, int id_compania_emisor, Parada.TipoActualizacionLlegada tipoActualizacionLlegada, Parada.TipoActualizacionSalida tipoActualizacionSalida, EstanciaUnidad.TipoActualizacionInicio tipoActuailizacionInicio, EstanciaUnidad.TipoActualizacionFin tipoActualizaionFin) { //Declaramos Objeto Resultado RetornoOperacion resultado = new RetornoOperacion(); //Asignamo Atributos this._id_tipo_actualizacion_fin = tipoActualizaionFin; this._id_recurso = id_recurso; this._id_compania_emisor = id_compania_emisor; this._id_ubicacion_origen = 0; //Se actualiza con la ubicación de la unidad seleccionada chkFechaActualMov.Checked = false; //Obtenemos Estancia Actual de la Unidad using (EstanciaUnidad objEstanciaUnidad = new EstanciaUnidad(EstanciaUnidad.ObtieneEstanciaUnidadIniciada(id_recurso))) { //Validamos Estancia de la Unidad if (objEstanciaUnidad.id_estancia_unidad > 0) { this._fecha_llegada = objEstanciaUnidad.inicio_estancia; //Instanciamos Parada using (Parada objParada = new Parada(objEstanciaUnidad.id_parada)) { //Instanciamos Unidad using (SAT_CL.Global.Unidad objUnidad = new SAT_CL.Global.Unidad(id_recurso)) { //Si existe unidad a mover if (objUnidad.id_unidad > 0 && objUnidad.EstatusUnidad == Unidad.Estatus.ParadaDisponible) { //Instanciamos Tipo de Unidad using (SAT_CL.Global.UnidadTipo objUnidadTipo = new SAT_CL.Global.UnidadTipo(objUnidad.id_tipo_unidad)) { //Guardando ubicación de origen del movimiento this._id_ubicacion_origen = objParada.id_ubicacion; //Cargamos Catalogos cargaCatalogos(objParada.id_ubicacion); //Validamos Tipo de Unidad para Inicializar y habilitar Controles if (objUnidadTipo.bit_motriz == true) { //Inicializamos Controles inicializaValoresUnidad(objUnidad.id_unidad); //Habilitamos Controles habilitarControlesUnidad(objUnidadTipo.bit_permite_arrastre); //sI LA } else { //Inicializamos Controles inicializaValoresRemolque(objUnidad.id_unidad); //Habilitamos Controles habilitaControlesRemolque(); } } //Establecemos Resultado Exitoso resultado = new RetornoOperacion(0); } } //Inicializando Control de Lugar de Origen lblLugarOrigen.Text = objParada.descripcion; //Inicializamos Control Fecha de Llegada al Origen lblFechaLlegada.Text = objEstanciaUnidad.inicio_estancia.ToString("dd/MM/yyyy HH:mm").ToString(); } } } //Devolvemos Resultado return(resultado); }