public static bool Eliminar(int id) { bool paso = false; Contexto contexto = new Contexto(); try { CotizacionArticulos cotizacionArticulos = contexto.Cotizacion.Find(id); if (cotizacionArticulos != null) { cotizacionArticulos.Detalle.Count(); contexto.Cotizacion.Remove(cotizacionArticulos); } if (contexto.SaveChanges() > 0) { paso = true; } contexto.Dispose(); } catch (Exception) { throw; } return(paso); }
private CotizacionArticulos LlenaClase() { CotizacionArticulos cotizacionArticulos = new CotizacionArticulos(); cotizacionArticulos.CotizacionArticulosId = Convert.ToInt32(cotizacionArticulosIdnumericUpDown.Value); cotizacionArticulos.Fecha = fechaDateTimePicker.Value; cotizacionArticulos.Observaciones = observacionesTextBox.Text; //Agregar cada linea del Grid al detalle foreach (DataGridViewRow item in detalledataGridView.Rows) { cotizacionArticulos.AgregarDetalle (ToInt(item.Cells["id"].Value), cotizacionArticulos.CotizacionArticulosId, ToInt(item.Cells["PersonaId"].Value), ToInt(item.Cells["ArticuloId"].Value), Convert.ToString(item.Cells["Descripcion"].Value), ToInt(item.Cells["Cantidad"].Value), ToDecimal(item.Cells["Precio"].Value), ToDecimal(item.Cells["Importe"].Value) // Convert.ToString(item.Cells["articulos"].Value) ); } return(cotizacionArticulos); }
private void Buscarbutton_Click(object sender, EventArgs e) { int id = Convert.ToInt32(cotizacionArticulosIdnumericUpDown.Value); CotizacionArticulos cotizacionArticulos = BLL.CotizacionArticulosBLL.Buscar(id); if (cotizacionArticulos != null) { LlenarCampos(cotizacionArticulos); } else { MessageBox.Show("No se encontro!", "Fallo", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public static bool Editar(CotizacionArticulos cotizacionArticulos) { bool paso = false; Contexto contexto = new Contexto(); try { var cotizaciones = CotizacionArticulosBLL.Buscar(cotizacionArticulos.CotizacionArticulosId); if (cotizaciones != null) { foreach (var item in cotizaciones.Detalle)//recorrer el detalle aterior { //restar todas las visitas contexto.articulos.Find(item.ArticuloId).Cantidad -= item.Cantidad; //determinar si el item no esta en el detalle actual if (!cotizacionArticulos.Detalle.ToList().Exists(v => v.Id == item.Id)) { contexto.articulos.Find(item.ArticuloId).Cantidad -= item.Cantidad; item.articulos = null; //quitar la ciudad para que EF no intente hacerle nada contexto.Entry(item).State = EntityState.Deleted; } } foreach (var item in cotizacionArticulos.Detalle) { //Muy importante indicar que pasara con la entidad del detalle var estado = item.Id > 0 ? EntityState.Modified : EntityState.Added; contexto.Entry(item).State = estado; } contexto.Entry(cotizacionArticulos).State = EntityState.Modified; } //recorrer el detalle if (contexto.SaveChanges() > 0) { paso = true; } // contexto.Dispose(); } catch (Exception) { throw; } return(paso); }
public static bool Guardar(CotizacionArticulos CotizacionArticulos) { bool paso = false; Contexto contexto = new Contexto(); try { if (contexto.Cotizacion.Add(CotizacionArticulos) != null) { contexto.SaveChanges(); paso = true; } contexto.Dispose(); } catch (Exception) { throw; } return(paso); }
private void Guardarbutton_Click(object sender, EventArgs e) { CotizacionArticulos cotizacionArticulos = LlenaClase(); bool Paso = false; if (Validar()) { MessageBox.Show("Favor revisar todos los campos", "Validación", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Determinar si es Guardar o Modificar if (cotizacionArticulosIdnumericUpDown.Value == 0) { Paso = BLL.CotizacionArticulosBLL.Guardar(cotizacionArticulos); HayErrores.Clear(); } else { Paso = BLL.CotizacionArticulosBLL.Editar(cotizacionArticulos); HayErrores.Clear(); } //Esto es para en caso de que se elimine algun elemento del datagrid y se modifique que elimine el detalle //Informar el resultado if (Paso) { Limpiar(); MessageBox.Show("Guardado!!", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("No se pudo guardar!!", "Fallo", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void Agregarbutton_Click(object sender, EventArgs e) { List <CotizacionArticulosDetalle> detalle = new List <CotizacionArticulosDetalle>(); CotizacionArticulos cotizacionArticulos = new CotizacionArticulos(); if (detalledataGridView.DataSource != null) { cotizacionArticulos.Detalle = (List <CotizacionArticulosDetalle>)detalledataGridView.DataSource; } //Agregar un nuevo detalle con los datos introducidos. if (string.IsNullOrEmpty(importeTextBox.Text)) { MessageBox.Show("Importe esta vacio , Llene cantidad", "Validacion", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { cotizacionArticulos.Detalle.Add( new CotizacionArticulosDetalle( id: 0, personaId: (int)personaComboBox.SelectedValue, cotizacionArticulosId: (int)Convert.ToInt32(cotizacionArticulosIdnumericUpDown.Value), articuloId: (int)articuloComboBox.SelectedValue, descripcion: (string)BLL.ArticulosBLL.RetornarDescripcion(articuloComboBox.Text), cantidad: (int)Convert.ToInt32(cantidadnumericUpDown.Value), precio: (decimal)Convert.ToDecimal(precioTextBox.Text), importe: (decimal)Convert.ToDecimal(importeTextBox.Text) //Articulo: new Articulos(articuloComboBox.Text) )); //Cargar el detalle al Grid detalledataGridView.DataSource = null; detalledataGridView.DataSource = cotizacionArticulos.Detalle; importe += BLL.CotizacionArticulosBLL.CalcularImporte(Convert.ToDecimal(precioTextBox.Text), Convert.ToInt32(cantidadnumericUpDown.Value)); TotaltextBox.Text = importe.ToString(); } }
private void LlenarCampos(CotizacionArticulos cotizacionArticulos) { importe = 0; cotizacionArticulosIdnumericUpDown.Value = cotizacionArticulos.CotizacionArticulosId; fechaDateTimePicker.Value = cotizacionArticulos.Fecha; observacionesTextBox.Text = cotizacionArticulos.Observaciones; foreach (var item in cotizacionArticulos.Detalle) { importe += item.Importe; } TotaltextBox.Text = importe.ToString(); //Cargar el detalle al Grid detalledataGridView.DataSource = cotizacionArticulos.Detalle; //Ocultar columnas detalledataGridView.Columns["Id"].Visible = false; detalledataGridView.Columns["PersonaId"].Visible = false; detalledataGridView.Columns["CotizacionArticulosId"].Visible = false; detalledataGridView.Columns["articulos"].Visible = false; }
public static CotizacionArticulos Buscar(int id) { CotizacionArticulos cotizacionArticulos = new CotizacionArticulos(); Contexto contexto = new Contexto(); try { cotizacionArticulos = contexto.Cotizacion.Find(id); if (cotizacionArticulos != null) { cotizacionArticulos.Detalle.Count(); foreach (var item in cotizacionArticulos.Detalle) { string s = item.articulos.Nombre; } } contexto.Dispose(); } catch (Exception) { throw; } return(cotizacionArticulos); }