private async void Button_Clicked(object sender, EventArgs e) { IsBusy = true; BtnGuardar.IsEnabled = false; Stream sigimage = await Padview.GetImageStreamAsync(SignaturePad.Forms.SignatureImageFormat.Png); if (sigimage == null) { return; } BinaryReader br = new BinaryReader(sigimage); br.BaseStream.Position = 0; Byte[] All = br.ReadBytes((int)sigimage.Length); byte[] image = (byte[])All; ImageSource imageSource = null; imageSource = ImageSource.FromStream(() => new MemoryStream(image)); string _base64String = Convert.ToBase64String(image); EntregaDetalleFirma adjunto = new EntregaDetalleFirma(); adjunto.NombreArchivo = numeroEntrega; adjunto.Extension = "png"; adjunto.Base64String = "data:image/png;base64," + _base64String; adjunto.PdfCombinado = false; adjunto.Observaciones = txtObservaciones.Text; EntregaBLL entregaBBL = new EntregaBLL(); string respuesta = await entregaBBL.GuardarImagenFirmaEntrega(adjunto); IsBusy = false; BtnGuardar.IsEnabled = true; DisplayAlert("Message", "Firma guardada correctamente", "OK"); await Navigation.PushAsync(new Logistica.CrearEventoView(_idevento, _nombreEvento)); }
async void ddlPuesto_SelectedIndexChanged(object sender, EventArgs e) { if (ddlPuesto.SelectedIndex >= 0) { if (await DisplayAlert("Alerta", "Seguro desea generar un inventario para el centro " + ddlPuesto.Items[ddlPuesto.SelectedIndex] + "?.", "SI", "NO")) { ddlPuesto.IsEnabled = false; IsBusy = true; if (await ParametrosSistema.isOnline) { EntregaBLL entregaBLL = new EntregaBLL(); entregasContenedoresEnPatio = await entregaBLL.ObtenerEntregasDeContenedoresEnPatio(ObtenerCodigoPuestoSeleccionado()); } IsBusy = false; btnAgregarItem.IsEnabled = true; } } else { ddlPuesto.IsEnabled = true; btnAgregarItem.IsEnabled = false; } }
public async Task <RespuestaProceso> CrearBaseDeDatos() { RespuestaProceso respuesta = new RespuestaProceso(); respuesta.ProcesadoCorrectamente = true; List <Type> tablasRequeridas = new List <Type>(); //Se verifica si el usuario debe tener base de datos local tablasRequeridas.Add(typeof(Entities.Operaciones.Agencia)); if (ParametrosSistema.PermisosUsuarioAlmacenado.Count(p => p.NombreOpcion.ToLower() == "registrar_evento_logistico" || p.NombreOpcion.ToLower() == "eventoslogisticosterceros") > 0) { tablasRequeridas.Add(typeof(Entities.Operaciones.TipoEventoLogistico)); tablasRequeridas.Add(typeof(Entities.Operaciones.EventoLogistico)); tablasRequeridas.Add(typeof(Entities.Operaciones.CampoEventoLogistico)); tablasRequeridas.Add(typeof(Entities.Operaciones.ItemCampoEventoLogistico)); tablasRequeridas.Add(typeof(Entities.Operaciones.SubItemCampoEventoLogistico)); tablasRequeridas.Add(typeof(Entities.Operaciones.JerarquiaTipoEventoLogistico)); //tablasRequeridas.Add(typeof(Entities.Operaciones.RemesasPorNumeroEntrega)); tablasRequeridas.Add(typeof(Entities.Operaciones.HistorialActivacionManifiesto)); tablasRequeridas.Add(typeof(Entities.Comercial.Entrega)); tablasRequeridas.Add(typeof(Entities.IT.ConfiguracionApp)); } if (tablasRequeridas.Count > 0) { DatabaseDAO dao = new DatabaseDAO(); bool esNueva = false; if (!DependencyService.Get <ISQLite>().ExisteBaseDeDatos() || true) { dao.CrearBaseDeDatos(tablasRequeridas); esNueva = true; } if (esNueva) { if (await Common.ParametrosSistema.isOnline) { try { //Se llenan las tablas maestras EventoLogisticoBLL eventoBLL = new EventoLogisticoBLL(); bool?aplicaTerceros = null; if (ParametrosSistema.PermisosUsuarioAlmacenado.Count(p => p.NombreOpcion.ToLower() == "eventoslogisticosterceros") > 0) { aplicaTerceros = true; } foreach (Type tabla in tablasRequeridas) { switch (tabla.Name) { case "TipoEventoLogistico": var tiposEventos = await eventoBLL.SeleccionarTiposEventoLogistico(consultaLocal : false, aplicaTerceros : aplicaTerceros); dao.GuardarRegistros(tiposEventos); break; case "EventoLogistico": if (!String.IsNullOrEmpty(ParametrosSistema.UsuarioActual)) { //Se consultan los ultimos eventos del usuario actual var eventos = await eventoBLL.SeleccionarEventosLogisticosUsuarioActual(); if (eventos != null) { dao.GuardarRegistros(eventos); } } break; case "CampoEventoLogistico": var camposTiposEventos = await eventoBLL.SeleccionarCamposPorEvento(null, consultaLocal : false); dao.GuardarRegistros(camposTiposEventos); break; case "ItemCampoEventoLogistico": var itemsCampoEventoLogistico = await eventoBLL.SeleccionarItemsPorCamposEvento(null, null, consultaLocal : false); dao.GuardarRegistros(itemsCampoEventoLogistico); break; case "SubItemCampoEventoLogistico": var subItemsCampoEventoLogistico = await eventoBLL.SeleccionarSubItemsPorCamposEvento(null, consultaLocal : false); dao.GuardarRegistros(subItemsCampoEventoLogistico); break; case "JerarquiaTipoEventoLogistico": var jerarquiaTiposEventosLogisticos = await eventoBLL.SeleccionarJerarquiaTipoEventosLogisticos(consultaLocal : false, aplicaTerceros : aplicaTerceros); dao.GuardarRegistros(jerarquiaTiposEventosLogisticos); break; case "HistorialActivacionManifiesto": var transportes = await eventoBLL.SeleccionarTransporteHabilitadoRegistroEventos(consultaLocal : false, tercero : aplicaTerceros); if (transportes != null && transportes.Count > 0) { Transporte transporte = transportes[0]; HistorialActivacionManifiesto historial = new HistorialActivacionManifiesto(); historial.Activo = true; historial.FechaActivacion = DateTime.Now; historial.NumeroManifiesto = transporte.NumeroTransporte; historial.Placa = transporte.Placa; historial.NumeroDocConductor = transporte.NumeroDocConductor.ToString(); historial.NombreRuta = transporte.NombreRuta; historial.UsuarioActivacion = ParametrosSistema.UsuarioActual; //Se busca localmente el evento de activación del transporte activo var eventosActivacionTransporte = eventoBLL.SeleccionarEventosLogisticos(transporte.NumeroTransporte, codigoTipoEvento: (int)TipoEventoLogisticoEnum.ActivarViaje, consultaLocal: true); if (eventosActivacionTransporte != null & eventosActivacionTransporte.Count > 0) { historial.FechaActivacion = eventosActivacionTransporte[0].FechaEvento; } HistorialActivacionManifiestoDAO historialActivacionDAO = new HistorialActivacionManifiestoDAO(); historialActivacionDAO.GuardarHistorialActivacionManifiesto(historial); //Se guardan las entregas del transporte if (transporte.Entregas != null && transporte.Entregas.Count > 0) { EntregaBLL entregaBLL = new EntregaBLL(); foreach (Entrega entrega in transporte.Entregas) { entregaBLL.GuardarEntrega(entrega); } } } break; case "Agencia": List <Agencia> agencias = new List <Agencia>(); agencias = CargarAgencias(); dao.GuardarRegistros(agencias); break; } } } catch (Exception ex) { respuesta.ProcesadoCorrectamente = false; respuesta.Respuesta = "Ocurrió un error configurando la aplicación."; } } else { respuesta.ProcesadoCorrectamente = false; respuesta.Respuesta = "Se necesita una conexión a Internet para que la aplicación pueda configurarse correctamente. Esto sólo se necesita la primera vez."; } } } return(respuesta); }
protected async override void OnAppearing() { base.OnAppearing(); IsBusy = true; btnVerDocumentos.IsVisible = true; //activityIndicator.IsRunning = true; //activityIndicator.IsVisible = true; //********************************************** CREAR TABLA HISTORIALACTIVACION MANIFIESTO *******************************************// DatabaseDAO dao = new DatabaseDAO(); EventoLogisticoBLL eventoBLL = new EventoLogisticoBLL(); if (await ParametrosSistema.isOnline) { using (var db = DependencyService.Get <ISQLite>().GetConnection()) { db.DropTable <HistorialActivacionManifiesto>(); db.DropTable <Entrega>(); db.CreateTable(typeof(Entities.Operaciones.HistorialActivacionManifiesto)); db.CreateTable(typeof(Entities.Comercial.Entrega)); } bool?aplicaTerceros = null; if (ParametrosSistema.PermisosUsuarioAlmacenado.Count(p => p.NombreOpcion.ToLower() == "eventoslogisticosterceros") > 0) { aplicaTerceros = true; } var transportes = await eventoBLL.SeleccionarTransporteHabilitadoRegistroEventos(consultaLocal : false, tercero : aplicaTerceros); if (transportes != null && transportes.Count > 0) { Transporte transporte = transportes[0]; HistorialActivacionManifiesto historial = new HistorialActivacionManifiesto(); historial.Activo = true; historial.FechaActivacion = DateTime.Now; historial.NumeroManifiesto = transporte.NumeroTransporte; historial.Placa = transporte.Placa; historial.NumeroDocConductor = transporte.NumeroDocConductor.ToString(); historial.NombreRuta = transporte.NombreRuta; historial.UsuarioActivacion = ParametrosSistema.UsuarioActual; //Se busca localmente el evento de activación del transporte activo var eventosActivacionTransporte = eventoBLL.SeleccionarEventosLogisticos(transporte.NumeroTransporte, codigoTipoEvento: (int)TipoEventoLogisticoEnum.ActivarViaje, consultaLocal: true); if (eventosActivacionTransporte != null & eventosActivacionTransporte.Count > 0) { historial.FechaActivacion = eventosActivacionTransporte[0].FechaEvento; } HistorialActivacionManifiestoDAO historialActivacionDAO = new HistorialActivacionManifiestoDAO(); historialActivacionDAO.GuardarHistorialActivacionManifiesto(historial); //Se guardan las entregas del transporte if (transporte.Entregas != null && transporte.Entregas.Count > 0) { EntregaBLL entregaBLL = new EntregaBLL(); foreach (Entrega entrega in transporte.Entregas) { try { entregaBLL.GuardarEntrega(entrega); } catch (Exception ex) { DisplayAlert("Error", ex.Message, "Aceptar"); } } } } } //********************************************** FIN CREAR TABLA HISTORIALACTIVACION MANIFIESTO *******************************************// //EventoLogisticoBLL eventoBLL = new EventoLogisticoBLL(); var tiposEventos = new List <TipoEventoLogistico>(); //Se verifica si hay eventos pendientes por sincronizar var eventosPendientes = eventoBLL.SeleccionarEventosPendientesSincronizar(); if (eventosPendientes != null && eventosPendientes.Count > 0 && await ParametrosSistema.isOnline) { IsBusy = false; await DisplayAlert("Atención", "No puede registrar nuevos eventos porque tiene " + eventosPendientes.Count + " eventos pendientes por sincronizar. Debe ir al menú 'Sincronización' para realizar la sincronización manualmente.", "Aceptar"); } else { Util util = new Util(); bool?tercero = null; if (util.UsuarioTienePermiso("eventoslogisticosterceros")) { tercero = true; } List <Transporte> transportesHabilitadosRegistroEventos = new List <Transporte>(); transportesHabilitadosRegistroEventos = await eventoBLL.SeleccionarTransporteHabilitadoRegistroEventos(!await ParametrosSistema.isOnline, tercero); if (transportesHabilitadosRegistroEventos != null && transportesHabilitadosRegistroEventos.Count > 0) { viajeActivo = transportesHabilitadosRegistroEventos[0]; } if (viajeActivo == null && tercero == true) { DisplayAlert("Alerta", "Ud no posee un viaje activo, por lo tando no puede registrar eventos.", "Aceptar"); await Navigation.PushAsync(new HomeView()); } else { if (tercero.HasValue && tercero.Value) { if (viajeActivo != null) { try { tiposEventos = await eventoBLL.SeleccionarSiguienteEventoporManifiesto(viajeActivo.NumeroTransporte, consultaLocal : !await ParametrosSistema.isOnline); lblNumeroViajeActivo.Text = viajeActivo.NumeroTransporte.ToString(); lblRuta.Text = viajeActivo.NombreRuta; } catch (Exception ex) { DisplayAlert("Alerta", "Ha ocurrido un inconveniente, por favor ingrese nuevamente.", "Aceptar"); } } else { tiposEventos = await eventoBLL.SeleccionarSiguienteEventoporManifiesto(0, consultaLocal : !await ParametrosSistema.isOnline); lblNumeroViajeActivo.Text = "Sin viaje activo"; lblNumeroViajeActivo.TextColor = Color.Red; btnVerDocumentos.IsVisible = false; } } else { TransporteBLL transporteBLL = new TransporteBLL(); HistorialActivacionManifiesto historial = transporteBLL.SeleccionarHistorialManifiestoActivoPorConductor(ParametrosSistema.NumeroIdentificacionUsuarioActual); if (historial != null) { tiposEventos = await eventoBLL.SeleccionarSiguienteEventoporManifiesto(historial.NumeroManifiesto, consultaLocal : !await ParametrosSistema.isOnline); lblNumeroViajeActivo.Text = historial.NumeroManifiesto.ToString(); lblRuta.Text = historial.NombreRuta; } else { tiposEventos = await eventoBLL.SeleccionarSiguienteEventoporManifiesto(0, consultaLocal : !await ParametrosSistema.isOnline); lblNumeroViajeActivo.Text = "Sin viaje activo"; lblNumeroViajeActivo.TextColor = Color.Red; btnVerDocumentos.IsVisible = false; } } //var dataTemplate = new DataTemplate(typeof(TextCell)); //dataTemplate.SetBinding(TextCell.TextProperty, "NombreEvento"); lvMenuEventos.ItemsSource = tiposEventos; //lvMenuEventos.ItemTemplate = dataTemplate; IsBusy = false; //activityIndicator.IsRunning = false; //activityIndicator.IsVisible = false; } } }
public async Task <RespuestaProcesoEventoLogistico> GuardarEventoLogistico(EventoLogistico evento) { RespuestaProcesoEventoLogistico respuesta = new RespuestaProcesoEventoLogistico(); if (await ParametrosSistema.isOnline) { DataService.AppDataService ds = new DataService.AppDataService(ParametrosSistema.TokenUsuarioActual); respuesta = await ds.RealizarPeticionApi <RespuestaProcesoEventoLogistico>("Evento/GuardarEventoLogistico", DataService.TipoPeticionApi.Post, evento); evento.ID = respuesta.IdEvento; evento.Sincronizado = true; evento.FechaSincronizacion = DateTime.Now; if (respuesta.ProcesadoCorrectamente == false) { evento.Estado = "E"; evento.ErrorSincronizacion = respuesta.Respuesta; } else { evento.Estado = "S"; } } else { evento.Sincronizado = false; respuesta.ProcesadoCorrectamente = true; respuesta.Respuesta = "Se ha guardado el evento en la memoria interna del teléfono."; } //Se determina si se debe guardar el evento en la base de datos local EventoLogisticoDAO eventoDAO = new EventoLogisticoDAO(); eventoDAO.GuardarEventoLogistico(evento); //Si es un evento de activación se debe registrar el manifiesto en el historial de activaciones if (evento.IdTipoEvento == (int)TipoEventoLogisticoEnum.ActivarViaje) { if (respuesta.ProcesadoCorrectamente == true) { Transporte transporte = new Transporte(); HistorialActivacionManifiesto historial = new HistorialActivacionManifiesto(); historial.Sincronizado = true; historial.FechaSincronizacion = DateTime.Now; historial.Activo = true; historial.FechaActivacion = evento.FechaEvento; historial.UsuarioActivacion = ParametrosSistema.UsuarioActual; TransporteBLL transporteBLL = new TransporteBLL(); transporte = await transporteBLL.SeleccionarTransporte(evento.NumeroManifiesto); //if (await ParametrosSistema.isOnline) //{ // historial.Sincronizado = true; // historial.FechaSincronizacion = DateTime.Now; // TransporteBLL transporteBLL = new TransporteBLL(); // transporte = await transporteBLL.SeleccionarTransporte(evento.NumeroManifiesto); //} //else //{ // historial.Sincronizado = false; // transporte.NumeroDocConductor = Convert.ToInt32(ParametrosSistema.NumeroIdentificacionUsuarioActual); // transporte.NumeroTransporte = evento.NumeroManifiesto; //} //se guarda un registro en historial activación viaje if (transporte != null) { historial.Placa = transporte.Placa; historial.NumeroDocConductor = transporte.NumeroDocConductor.ToString(); historial.NombreRuta = transporte.NombreRuta; historial.NumeroManifiesto = transporte.NumeroTransporte; historial.ClaseTransporte = transporte.ClaseTransporte; } else { historial.NumeroDocConductor = historial.UsuarioActivacion; } HistorialActivacionManifiestoDAO historialActivacionDAO = new HistorialActivacionManifiestoDAO(); //si en la bd local el conductor aun tiene un viaje activo, se elimina HistorialActivacionManifiesto historialAnterior = historialActivacionDAO.SeleccionarHistorialManifiestoActivoPorConductor(evento.NumeroDocumentoConductor); if (historialAnterior != null) { historialActivacionDAO.EliminarHistorialActivacionManifiesto(historialAnterior.NumeroManifiesto); } //se fuarda el registro de activacion viaje historialActivacionDAO.GuardarHistorialActivacionManifiesto(historial); //Se guardan las entregas del transporte if (transporte != null && transporte.Entregas != null && transporte.Entregas.Count > 0) { EntregaBLL entregaBLL = new EntregaBLL(); foreach (Entrega entrega in transporte.Entregas) { entregaBLL.GuardarEntrega(entrega); } } } else if (evento.Sincronizado == true && evento.Estado == "E") { //Si el evento se sincronizó pero devolvió error, se elimina el manifiesto del historial de activacion HistorialActivacionManifiestoDAO historialActivacionDAO = new HistorialActivacionManifiestoDAO(); historialActivacionDAO.EliminarHistorialActivacionManifiesto(evento.NumeroManifiesto); } } else if (evento.IdTipoEvento == (int)TipoEventoLogisticoEnum.SuspenderViaje) { HistorialActivacionManifiestoBLL historialBLL = new HistorialActivacionManifiestoBLL(); historialBLL.EliminarHistorialActivacionManifiesto(evento.NumeroManifiesto); } else if (evento.IdTipoEvento == (int)TipoEventoLogisticoEnum.ReanudarViaje) { Transporte transporte = new Transporte(); HistorialActivacionManifiesto historial = new HistorialActivacionManifiesto(); historial.Sincronizado = true; historial.FechaSincronizacion = DateTime.Now; historial.Activo = true; historial.FechaActivacion = evento.FechaEvento; historial.UsuarioActivacion = ParametrosSistema.UsuarioActual; TransporteBLL transporteBLL = new TransporteBLL(); transporte = await transporteBLL.SeleccionarTransporte(evento.NumeroManifiesto); if (transporte != null) { historial.Placa = transporte.Placa; historial.NumeroDocConductor = transporte.NumeroDocConductor.ToString(); historial.NombreRuta = transporte.NombreRuta; historial.NumeroManifiesto = transporte.NumeroTransporte; historial.ClaseTransporte = transporte.ClaseTransporte; } else { historial.NumeroDocConductor = historial.UsuarioActivacion; } HistorialActivacionManifiestoDAO historialActivacionDAO = new HistorialActivacionManifiestoDAO(); //si en la bd local el conductor aun tiene un viaje activo, se elimina HistorialActivacionManifiesto historialAnterior = historialActivacionDAO.SeleccionarHistorialManifiestoActivoPorConductor(evento.NumeroDocumentoConductor); if (historialAnterior != null) { historialActivacionDAO.EliminarHistorialActivacionManifiesto(historialAnterior.NumeroManifiesto); } //se guarda el registro de reanudación viaje historialActivacionDAO.GuardarHistorialActivacionManifiesto(historial); } else if (evento.IdTipoEvento == (int)TipoEventoLogisticoEnum.FinViaje) { HistorialActivacionManifiestoDAO historialActivacionDAO = new HistorialActivacionManifiestoDAO(); var historialActivacion = historialActivacionDAO.SeleccionarHistorialActivacionManifiesto(evento.NumeroManifiesto); if (historialActivacion != null) { if (evento.Sincronizado == false || respuesta.ProcesadoCorrectamente == true) { //Se debe marcar como finalizado el viaje historialActivacion.Activo = false; historialActivacion.FechaInactivacion = evento.FechaEvento; historialActivacion.UsuarioInactivacion = evento.NumeroDocumentoConductor; historialActivacionDAO.GuardarHistorialActivacionManifiesto(historialActivacion); } else if (evento.Sincronizado == true && evento.Estado == "E") { //Si el evento se sincronizó pero devolvió error, se elimina el manifiesto del historial de activacion historialActivacion.Activo = true; historialActivacion.FechaInactivacion = null; historialActivacion.UsuarioInactivacion = null; historialActivacionDAO.GuardarHistorialActivacionManifiesto(historialActivacion); } } } return(respuesta); }