Beispiel #1
0
 // 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;
     }
 }
Beispiel #2
0
 //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");
            }
        }