void SetRuptura(CardInfoProdutoModel item) { try { CheckApp(); var location = GPS.lastLocation; foreach (var itemIDVisita in model.modelPCL.idVisitas) { var tbProduto = controller.GetProdutosList(item.description); foreach (var produto in tbProduto) { if (controller.IsCorrectIDTarefaLoja(itemIDVisita.IdVisita, produto.ID)) { var batery = GetBatteryLevel(); if (location == null) { model.modelPCL.formDinamico.SetRuptura(controller.GetProdutos(item.description).ID, itemIDVisita.IdVisita, 0, 0, batery); } else { model.modelPCL.formDinamico.SetRuptura(controller.GetProdutos(item.description).ID, itemIDVisita.IdVisita, location.Latitude, location.Longitude, batery); } } } } RemoveItem(item); CheckOutTarefas(); RunOnUiThread(() => Toast.MakeText(this, Resources.GetString(Resource.String.ruptura_informada_sucesso), ToastLength.Long).Show()); MetricsManager.TrackEvent("Ruptura"); } catch (NullReferenceException ex) { MetricsManager.TrackEvent("RupturaFail"); MetricsManager.TrackEvent(ex.Message); RunOnUiThread(() => Toast.MakeText(this, Resources.GetString(Resource.String.erro_ruptura), ToastLength.Long).Show()); } }
EventHandler Ruptura() { return((sender, e) => { var alert = UIAlertController.Create("Ruptura", "Tem certeza que o item esta em ruptura ?", UIAlertControllerStyle.Alert); alert.AddAction(UIAlertAction.Create("Nao", UIAlertActionStyle.Cancel, (actionCancel) => { MetricsManager.TrackEvent("CancelRuptura"); })); alert.AddAction(UIAlertAction.Create("Sim", UIAlertActionStyle.Default, (actionOK) => { InvokeOnMainThread(delegate { var gps = LocationHelper.UpdateLocation(); if (gps == null) { var alertGps = UIAlertController.Create("GPS Desativado", "Ligue o GPS ou tire do modo aviao para continuar utilizando o sistema", UIAlertControllerStyle.Alert); alertGps.AddAction(UIAlertAction.Create("Ok", UIAlertActionStyle.Default, (defaults) => { })); alertGps.View.TintColor = UIColor.FromRGB(10, 88, 90); PresentViewController(alertGps, true, null); } else { var tarefasCell = ((UIButton)sender).Superview.Superview as TarefasCell; var path = TarefasTable.IndexPathForRowAtPoint(new CoreGraphics.CGPoint(tarefasCell.Frame.X, tarefasCell.Frame.Y)); using (var cell = TarefasTable.CellAt(path) as TarefasCell) { var task = cell.GetTarefaInfo(); foreach (var itemIDVisita in listIdsPDVs) { var tbProduto = controller.GetProdutosList(task.DescricaoDaTarefa); foreach (var produto in tbProduto) { var idProduto = produto.ID; if (controller.IsCorrectIDTarefaLoja(itemIDVisita.IdVisita, produto.ID)) { var batery = ((int)(UIDevice.CurrentDevice.BatteryLevel * 100F)); if (gps.Location != null) { controller.SetRuptura(itemIDVisita.IdVisita, controller.GetProdutos(task.DescricaoDaTarefa).ID, gps.Location.Coordinate.Latitude, gps.Location.Coordinate.Longitude, batery); } else { controller.SetRuptura(itemIDVisita.IdVisita, controller.GetProdutos(task.DescricaoDaTarefa).ID, LocationHelper.LastLocation.Coordinate.Latitude, LocationHelper.LastLocation.Coordinate.Longitude, batery); } } } } var index = tarefasTable.Tarefas.FindIndex((obj) => obj.DescricaoDaTarefa.Equals(task.DescricaoDaTarefa) && obj.Categoria.Equals(task.Categoria)); TarefasTable.BeginUpdates(); tarefasTable.Tarefas.RemoveAt(index); TarefasTable.DeleteRows(new NSIndexPath[] { path }, UITableViewRowAnimation.Left); TarefasTable.EndUpdates(); if (tarefas.Count < 1) { PopUpCheckOutAutomatico(); } } } }); #if !DEBUG HockeyApp.MetricsManager.TrackEvent("Ruptura"); #endif })); alert.View.TintColor = UIColor.FromRGB(10, 88, 90); PresentViewController(alert, true, null); }); }