private void EliminarLinea_Tapped(object sender, EventArgs e) { //Elimina la linea de un parte try { var imagen = sender as Image; var linea = imagen?.BindingContext as SAT_Lineas; var vm = BindingContext as ArtServParteSAT_VM; vm?.EliminarLinea.Execute(linea); RepositorySatApp database = new RepositorySatApp(); database.EliminarLineaParte(linea); var lineas = new ObservableCollection <SAT_Lineas>(database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString())); database.EliminarLineasParte(Variables.DatosParte.N_Parte.ToString()); var ordenLinea = 1; foreach (var item in lineas) { item.Orden_Linea = ordenLinea; database.Insert(item); ordenLinea++; } vm.LineasSAT = new ObservableCollection <SAT_Lineas>(database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString())); funciones.CalcularParte(Variables.DatosParte.N_Parte); database.CerrarConexion(); } catch (Exception ex) { Application.Current.MainPage.DisplayAlert("Aviso", ex.Message, "OK"); } }
private void Anadir_Clicked(object sender, EventArgs e) { try { //Añade un Articulo o Servicio if (!string.IsNullOrEmpty(txtReferencia.Text)) { if (!string.IsNullOrEmpty(txtNombre.Text) || !string.IsNullOrEmpty(txtCantidad.Text) || !string.IsNullOrEmpty(txtBase.Text)) { nuevaLinea = new SAT_Lineas(); RepositorySatApp database = new RepositorySatApp(); Articulos Articulo; if (bolEsArticulo) //Busqueda Articulos { Articulo = database.GetArticuloReferencia(txtReferencia.Text); //Busqueda por Referencia nuevaLinea.Referencia = Articulo.Referencia; nuevaLinea.Descripcion = txtNombre.Text; nuevaLinea.Cantidad = decimal.Parse(txtCantidad.Text); nuevaLinea.Precio = decimal.Parse(txtBase.Text); nuevaLinea.PrecioCoste = Articulo.Precio_Coste; if (!string.IsNullOrEmpty(txtDto.Text)) { nuevaLinea.DTO = decimal.Parse(txtDto.Text); } nuevaLinea.Iva = decimal.Parse(txtTantoPorcierto.Text); nuevaLinea.Recargo = decimal.Parse(Articulo.Recargo.ToString()); nuevaLinea.Importe = (nuevaLinea.Precio - (nuevaLinea.Precio * nuevaLinea.DTO / 100)) * nuevaLinea.Cantidad; nuevaLinea.N_Parte = Variables.DatosParte.N_Parte; nuevaLinea.Almacen = 1; nuevaLinea.Orden_Linea = database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString()).Count + 1; nuevaLinea.TipoReferencia = "A"; nuevaLinea.VieneDeAPP = true; } else//Busqueda por referencia { nuevaLinea.Referencia = decimal.Parse(txtReferencia.Text); nuevaLinea.Descripcion = txtNombre.Text; nuevaLinea.Cantidad = decimal.Parse(txtCantidad.Text); nuevaLinea.Precio = decimal.Parse(txtBase.Text); if (!string.IsNullOrEmpty(txtDto.Text)) { nuevaLinea.DTO = decimal.Parse(txtDto.Text); } nuevaLinea.Iva = decimal.Parse(txtTantoPorcierto.Text); nuevaLinea.Importe = (nuevaLinea.Precio - (nuevaLinea.Precio * nuevaLinea.DTO / 100)) * nuevaLinea.Cantidad; nuevaLinea.N_Parte = Variables.DatosParte.N_Parte; nuevaLinea.Orden_Linea = database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString()).Count + 1; nuevaLinea.TipoReferencia = "S"; nuevaLinea.VieneDeAPP = true; } var btnAnadir = sender as Button; var vm = BindingContext as ArtServParteSAT_VM; vm?.EliminarLinea.Execute(nuevaLinea); // Elimina la linea de Observable Collection (la lista de articulos de la vista) database.EliminarLineaParte(nuevaLinea); // Elimina la linea de la BD var lineas = new ObservableCollection <SAT_Lineas>(database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString())); // Crea una nueva coleccion database.EliminarLineasParte(Variables.DatosParte.N_Parte.ToString()); // Elimina todas las lineas del parte // Actualizala bd var ordenLinea = 1; foreach (var item in lineas) { item.Orden_Linea = ordenLinea; database.Insert(item); ordenLinea++; } vm.LineasSAT = new ObservableCollection <SAT_Lineas>(database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString())); funciones.CalcularParte(Variables.DatosParte.N_Parte); vm?.AnadirLinea.Execute(nuevaLinea); database.Insert(nuevaLinea); funciones.CalcularParte(Variables.DatosParte.N_Parte); txtReferencia.Text = ""; txtNombre.Text = ""; txtBase.Text = ""; txtCantidad.Text = ""; txtDto.Text = ""; txtTantoPorcierto.Text = ""; Busqueda.Text = ""; if (switchVarios.IsToggled == true) { switchVarios.IsToggled = false; } nuevaLinea = null; database.CerrarConexion(); } else { Application.Current.MainPage.DisplayAlert("Aviso", "Por favor, revise los datos introducidos. Hay valores incorrectos", "OK"); } } else { Application.Current.MainPage.DisplayAlert("Aviso", "No hay articulo o servicio para añadir", "OK"); txtReferencia.Text = ""; } } catch (Exception ex) { Application.Current.MainPage.DisplayAlert("Aviso ", ex.Message, " OK"); } }