// Método que captura el evento de seleccionar una celada de la lista private void ListView1_ItemTapped(object sender, ItemTappedEventArgs e) { // Capturamos la respectiva orden selected = (OrdenCargue)e.Item; // Navegamos a la página donde se muestra // la información detallada de la respectiva orden Navigation.PushAsync(new DetailOrdenCarguePage(selected)); }
// Método que captura el evento de seleccionar una celada de la lista private void ListView1_ItemTapped(object sender, ItemTappedEventArgs e) { // Variable que permite navegar a la siguiente página // y volver sin necesidad de preguntar al servicio loadData = false; // Capturamos la respectiva orden de cargue selected = (OrdenCargue)e.Item; // Navegamos a la página donde se muestra // la información detallada de la respectiva orden de cargue Navigation.PushAsync(new DetailOrdenCarguePage(selected)); }
// Función para verificar que existan cambios // en la orden de cargue actual bool VerifiedIfExistChanges() { // Capturamos las entradas de la página ordenSelected.Receives = Entry_Receives.Text; ordenSelected.DocumentosRecogidos = Convert.ToDecimal(Entry_DocsRecogidos.Text); OrdenCargue ordenDB = new OrdenCargue(); // Consultamos la orden de cargue almanada en BD ordenDB = App.OrdenCargueDatabase.GetOrdenCargueById(ordenSelected.Id); // Comparamos los datos de la UI con los de la BD, // para así saber si el usuario realizó algún cambio if (ordenSelected.Receives != ordenDB.Receives || ordenSelected.DocumentosRecogidos != ordenDB.DocumentosRecogidos || ordenSelected.DeliveredDate != ordenDB.DeliveredDate) { return(true); } else { return(false); } }
public int SaveOrdenCargue(OrdenCargue orden) { lock (locker) { try { if (orden.Id > 0) { database.Update(orden); return(orden.Id); } else { return(database.Insert(orden)); } } catch (SQLiteException e) { Debug.WriteLine("Error: " + e.Message); return(0); } } }
public DetailOrdenCarguePage(OrdenCargue orden) { InitializeComponent(); // Título de la página Title = "Detalle de la Orden de Cargue"; // Capturamos la orden de cargue seleccionada ordenSelected = orden; // Modificamos los labels y entries de la UI // con los valores de la orden de cargue Lbl_Cliente.Text = "Dest: " + orden.Destinatario; Lbl_DireccionDestino.Text = "Dir: " + orden.DireccionDestino; Lbl_Ciudad.Text = "Ciudad: " + orden.Ciudad; Lbl_Orden.Text = "Orden: " + orden.OrdenId.ToString(); Lbl_Planilla.Text = "Planilla: " + orden.PlanillaNumero.ToString(); Lbl_Unidades.Text = "Unidades: " + orden.UnidadesProgramadas; Entry_Receives.Text = orden.Receives; Entry_DocsRecogidos.Text = (orden.DocumentosRecogidos > 0) ? orden.DocumentosRecogidos.ToString() : ""; Entry_UndsRecogidas.Text = (orden.UnidadesRecogidas > 0) ? orden.UnidadesRecogidas.ToString() : ""; // Capturamos la hora actual string dateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // Se verifica que la orden de cargue no tenga fecha de llegada al punto if (orden.ArrivalDate == null || string.IsNullOrWhiteSpace(orden.ArrivalDate)) { Entry_ArrivalToThePoint.Text = dateTime; } else { Entry_ArrivalToThePoint.Text = orden.ArrivalDate; } // Si la orden tiene un estado definitivo ocultamos los botones if (ordenSelected.UltimoEstadoId == Constants.ESTADO_ORDEN_EXITOSA || ordenSelected.UltimoEstadoId == Constants.ESTADO_ORDEN_NO_EXITOSA) { Btn_ArrivalToThePoint.IsVisible = false; Btn_SaveClearDetails.IsVisible = false; Btn_SaveDoneDetails.IsVisible = false; } // Capturamos los eventos de las entradas Entry_Receives.Completed += (s, e) => { Entry_DocsRecogidos.Focus(); }; // Capturamos los eventos de las entradas Entry_DocsRecogidos.Completed += (s, e) => { Entry_UndsRecogidas.Focus(); }; // Evento de llegada al punto Btn_ArrivalToThePoint.Clicked += async(s, e) => { await Btn_ArrivalToThePointAsync(); }; // Evento para marcar la orden de cargue como ORDEN NO EXITOSA Btn_SaveClearDetails.Clicked += async(s, e) => { await Btn_SaveClearOrdenAsync(); }; // Entrada completa de la identificación Btn_SaveDoneDetails.Clicked += async(s, e) => { // Evento para marcar la orden de cargue como ORDEN EXITOSA await Btn_SaveDoneOrdenAsync(); }; // Verificamos que haya conexión a internet CheckConnectivity(); // Inicializamos algunos componentes InitComponents(); }
public void LoadData() { // Instanciamos el listado de ordenes de cargue desde el servidor List <ResponseOrdenCargue> Items = new List <ResponseOrdenCargue>(); // Creamos un hilo de ejecución para consumir el servicio de las ordenes de cargue Device.BeginInvokeOnMainThread(async() => { // Activamos el spinner ActivitySpinner.IsVisible = true; // Consultamos las ordenes de cargue por número de placa en el servicio de Solex Items = await App.RestClient.GetOrdenesCargueByUser(Constants.CurrentUser.IdSolex.ToString()); // Reseteamos el listado de ordenes de cargue del usuario actual App.OrdenCargueDatabase.DeleteAllOrdenes(Constants.CurrentUser.IdSolex); // Recorremos el array de objetos json que devuelve el servicio foreach (var Item in Items) { OrdenCargue orden = new OrdenCargue { OrdenId = Item.OrdenId, Placa = Item.Placa, Latitud = Item.Latitud.ToString(), Longitud = Item.Longitud.ToString(), PlanillaNumero = Item.Planilla, Sucursal = Item.Sucursal, DANE = Item.DANE, Ciudad = Item.Ciudad, Destinatario = Item.Destinatario, DireccionDestino = Item.DireccionDestino, NombreCliente = Item.NombreCliente, TelefonoCliente = Item.TelefonoCliente, UltimoEstadoId = Item.UltimoEstadoId, UnidadesProgramadas = Item.UnidadesProgramadas, UnidadesRecogidas = Item.UnidadesRecogidas, FechaLlegoAlPunto = Item.FechaLlegoAlPunto, FechaAsignacion = Convert.ToDateTime(Item.FechaAsignacion) }; if (Item.Latitud != null && Item.Longitud != null) { orden.Latitud = (Item.Latitud).ToString().Replace(",", "."); orden.Longitud = (Item.Latitud).ToString().Replace(",", "."); } if (Item.UltimoEstadoId == Constants.ESTADO_ORDEN_LLEGO_PUNTO) { orden.Arrival = true; orden.Controlled = false; orden.ArrivalDate = Item.FechaLlegoAlPunto; orden.ColorButtonRow = Constants.CODIGO_COLOR_LLEGADA_PUNTO; } else if (Item.UltimoEstadoId == Constants.ESTADO_ORDEN_EXITOSA) { orden.Delivered = true; orden.Controlled = true; orden.DeliveredDate = Item.FechaRecogida; orden.ColorButtonRow = Constants.CODIGO_COLOR_ENTREGA_BLU; } else { orden.Delivered = false; orden.DeliveredDate = null; orden.Controlled = false; orden.ColorButtonRow = Constants.CODIGO_COLOR_NO_ENTREGADA; } // Se asigna el id del usuario que esta controlando la planilla orden.ControlledUserId = Constants.CurrentUser.IdSolex; // Verificamos si ya existe el registro var exist_orden = App.OrdenCargueDatabase.GetOrdenCargueByIdSolex(Item.OrdenId); if (exist_orden != null) { // Asignamos el id para pdoer actualizar los datos de la orden de cargue orden.Id = exist_orden.Id; } // Por último llamamos al método de la CRUD de orden de cargue // el cual se encarga de insertar o actualizar la orden de cargue según sea el caso App.OrdenCargueDatabase.SaveOrdenCargue(orden); } // Actualizamos los datos del ListView LoadDataLocal(); // Ocultamos el spinner ActivitySpinner.IsVisible = false; // Posicionamos el cursor en el buscador Input_Search.Focus(); }); }