/// <summary> /// El primer elemento de la tupla indica el idPresupuesto, el segundo indica si se guardó correctamente /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <returns></returns> private Tuple <int, Boolean> GuardarPresupuesto(object sender, EventArgs e) { Boolean Guardado = false; Boolean errorCantidad = false; foreach (DataGridViewRow row in dataGridView1.Rows) { if (row.Cells[2].Value.ToString() == "0" && !errorCantidad) { errorCantidad = true; } } if (IdCliente == 0) { MessageBox.Show("Debe seleccionar un cliente"); } else if (dataGridView1.Rows.Count < 1) { MessageBox.Show("Debe seleccionar al menos un producto"); } else if (errorCantidad) { MessageBox.Show("Hay al menos un producto que tiene cantidad 0, modifiquelo"); } else if (FechaVencimiento.Date < DateTime.Now.Date) { MessageBox.Show("Debe seleccionar una fecha de Vencimiento posterior a la seleccionada"); } else if (DescuentoTotal.Text == "") { DescuentoTotal.Text = "0"; } else { PresupuestoDTO pre = new PresupuestoDTO(); pre.FechaGeneracion = DateTime.Now; pre.IdCliente = IdCliente; pre.FechaVencimiento = FechaVencimiento; pre.Id = IdPresupuesto; pre.Descuento = Convert.ToDouble(DescuentoTotal.Text); pre.Observacion = Observacion.Text; IdPresupuesto = controladorFachada.AgregarModificarPresupuesto(pre); foreach (DataGridViewRow row in dataGridView1.Rows) { LineaPresupuestoDTO lin = new LineaPresupuestoDTO(); lin.Cantidad = int.Parse(row.Cells[2].Value.ToString()); lin.IdPresupuesto = IdPresupuesto; lin.IdProducto = int.Parse(row.Cells[0].Value.ToString()); lin.PorcentajeDescuento = double.Parse(row.Cells[4].Value.ToString()); lin.Subtotal = double.Parse(row.Cells[5].Value.ToString()); controladorFachada.AgregarLinea(lin); } Guardado = true; } return(Tuple.Create(IdPresupuesto, Guardado)); }