private bool Guardar() { //el encabezado->la agrupacion ICategoriaConceptoFacturacion categoria = CategoriaConceptoFacturacionFactory.GetCategoriaConceptoFacturacion(); categoria.CategoriaDescrip = txtNombreAgrup.Text; categoria.CategoriaConceptoFacturacionID = Utiles.Validaciones.obtieneEntero(txtCategoriaConceptoFacturacionID.Text); //el detalle -> las agencias if ((agrupacionID != 0) && (txtCategoriaConceptoFacturacionID.Text == ""))//modo alta { categoria.CategoriaConceptoFacturacionID = agrupacionID; } DsCategoriaConceptoFacturacion ds = new DsCategoriaConceptoFacturacion(); for (int i = 0; i <= ddlConceptosFacturacionAsociadas.Items.Count - 1; i++) {//recorro la lista de agencias asociadas ds.Detalle.AddDetalleRow(0, categoria.CategoriaConceptoFacturacionID, Utiles.Validaciones.obtieneEntero(ddlConceptosFacturacionAsociadas.Items[i].Value), false, string.Empty); ds.AcceptChanges(); } if (ds != null) { if (ds.Detalle.Count > 0) { if (categoria.Guardar(ds)) { agrupacionID = categoria.CategoriaConceptoFacturacionID; return(true); } else { return(false); } } else { ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje("Debe asociar conceptos"); return(false); } } else { ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje("Debe asociar conceptos"); return(false); } }