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"); } }
private async void TapGestureRecognizer_Tapped(object sender, EventArgs e) { try { int Referencia; RepositorySatApp database = new RepositorySatApp(); Articulos articulo = new Articulos(); if (!string.IsNullOrEmpty(txtReferencia.Text)) { //Busqueda de articulos en caso de estar activo el botón Articulos if (bolEsArticulo) { if (int.TryParse(txtReferencia.Text, out Referencia)) { articulo = database.GetArticuloReferencia(txtReferencia.Text);//Busqueda por Referencia Or ReferenciaProveddor } if (articulo == null) { await Application.Current.MainPage.DisplayAlert("Aviso", "No se encontro ningun articulo con esa referencia o número de proveedor.", "OK"); txtReferencia.Text = ""; } else { txtNombre.Text = articulo.Articulo; txtBase.Text = articulo.PVP.ToString(); txtCantidad.Text = "1"; txtTantoPorcierto.Text = articulo.IVA.ToString(); } } else//Busqueda de articulos en caso de estar activo el botón Servicios { if (int.TryParse(txtReferencia.Text, out Referencia)) { var servicio = database.ObtenerServicio(int.Parse(txtReferencia.Text)); if (servicio != null) { txtNombre.Text = servicio.Descripcion; txtBase.Text = servicio.Precio.ToString(); txtCantidad.Text = "1"; txtTantoPorcierto.Text = servicio.IVA.ToString(); } else { await Application.Current.MainPage.DisplayAlert("Aviso", "No existe el servicio.", "OK"); } } else { await Application.Current.MainPage.DisplayAlert("Aviso", "Referencia incorrecta", "OK"); txtReferencia.Text = ""; } } } database.CerrarConexion(); } catch (Exception ex) { await Application.Current.MainPage.DisplayAlert("Aviso ", ex.Message, " OK"); } }