private void Grabar() { // Declaramos la lista de detalles de la factura List <FacturaDetalle> detalles = new List <FacturaDetalle>(); // Recorremos el DataGridView y llenamos el objeto de tipo FacturaDetalle foreach (DataGridViewRow fila in dgvDetalle.Rows) { // Declaramos una variable de tipo FacturaDetalle FacturaDetalle detalle = new FacturaDetalle(); // Llenamos el objeto detalle con los datos del DataGridView if (fila.Cells[0].Value != null) { detalle.ProductoId = Convert.ToInt32(fila.Cells[0].Value); detalle.Cantidad = Convert.ToInt32(fila.Cells[3].Value); detalle.Precio = Convert.ToDecimal(fila.Cells[2].Value); // Adicionamos el objeto detalle a la lista FacturaDetalle detalles.Add(detalle); } } // Grabamos la factura (encabezado y detalle) using (var context = new FacturadorDBContext()) { var factura = new Factura(); factura.ClienteId = Convert.ToInt32(cboClientes.SelectedValue.ToString()); factura.FchEmision = Convert.ToDateTime(txtFecha.Text); //DateTime.Now; factura.Detalle = detalles; factura.Total = detalles.Sum(x => x.Precio * x.Cantidad); context.Add(factura); context.SaveChanges(); } }
private void btnCrear_Click(object sender, EventArgs e) { ; object nvoProv; switch (cboOrigen.Text) { case "": Proveedor proveedor = new Proveedor(); proveedor.Nombre = txtNombre.Text; proveedor.Correo = txtCorreo.Text; nvoProv = proveedor; break; case "Nacional": ProveedorInterno proveedorInterno = new ProveedorInterno(); proveedorInterno.Nombre = txtNombre.Text; proveedorInterno.Correo = txtCorreo.Text; nvoProv = proveedorInterno; break; default: ProveedorExterno proveedorExterno = new ProveedorExterno(); proveedorExterno.Nombre = txtNombre.Text; proveedorExterno.Correo = txtCorreo.Text; proveedorExterno.Pais = cboOrigen.Text; nvoProv = proveedorExterno; break; } using (var ctx = new FacturadorDBContext()) { ctx.Add(nvoProv); ctx.SaveChanges(); } }