// Eliminar lineas de parte public void EliminarLineaParte(SAT_Lineas linea) { try { cn.Query <SAT_Lineas>("DELETE FROM SAT_LINEAS WHERE N_PARTE = ? AND ORDEN_LINEA = ?", linea.N_Parte, linea.Orden_Linea); } catch (Exception ex) { throw ex; } }
//Obtiene una lista con las lineas sat de los partes cerrados public bool ExisteParteLineas(SAT_Lineas obj) { try { RepositorySatApp datos = new RepositorySatApp(); var list = datos.LineasSatCerrado <SAT_Lineas>(obj.N_Parte); Console.WriteLine(list.ToString()); foreach (var item in list) { if (item.N_Parte == obj.N_Parte && item.Descripcion.Equals(obj.Descripcion)) { return(true); } } return(false); } catch (Exception ex) { throw ex; } }
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"); } }