private void BindServicioAmbos() { this.ddlServicio.Items.Clear(); int productoID = Utiles.Validaciones.obtieneEntero(this.ddlProducto.SelectedValue); int tEntregaID = Utiles.Validaciones.obtieneEntero(this.ddlTiempoEntrega.SelectedValue); string servicios = this.txtServicioIDSel.Text; string unidadVentaID = this.txtUVentaSelec.Text; int modalidadEntregaID = Utiles.Validaciones.obtieneEntero(this.txtModalidadEntregaID.Text); IUnidadVenta unidadVenta = UnidadVentaFactory.GetUnidadVenta(); DsUnidadesVenta ds = unidadVenta.GetUnidadesVentaDataSet(); DsUnidadesVenta.DatosRow[] dr = (DsUnidadesVenta.DatosRow[])ds.Datos.Select("ProductoID = " + productoID + " AND TiempoEntregaID = " + tEntregaID); foreach (DsUnidadesVenta.DatosRow dRow in dr) // el bucle da solo una vuelta { string serviciosDescrip = ""; //para la UV verifico que tengan asociados TODOS los servicios asociados a los codigos de barras elegidos (nuevo store) IUnidadVenta uv = UnidadVentaFactory.GetUnidadVenta(); uv.UnidadVentaID = dRow.UnidadVentaID; if (uv.ContieneTodosServicios(servicios) > 0) // si no es igual a 0, es porque la UV no contiene todos los servicios y solo los servicios seleccionados { uv.Consultar(); // NO DEBO TRAER TODOS LOS SERVICIOS, SINO SOLO LOS QUE CORRESPONDAN A LOS ASIGNADOS ArrayList colServiciosUV = new ArrayList(); for (int i = 0; i < uv.ServiciosCol.getCount(); i++) { colServiciosUV.Add(((IServicio)uv.ServiciosCol.GetServicio(i)).ServicioID.ToString()); serviciosDescrip += ((IServicio)uv.ServiciosCol.GetServicio(i)).ServicioDescrip; if (i < uv.ServiciosCol.getCount() - 1) { serviciosDescrip += ","; } } //armo un arrayList con los servicios correspondientes a los codigos de barras seleccionados ArrayList colServiciosCB = new ArrayList(); string[] arreglo = this.txtServicioIDSel.Text.Split(','); for (int i = 0; i < arreglo.Length; i++) { if (arreglo[i] != ",") { colServiciosCB.Add(arreglo[i]); } } //ordeno ambos arrayList colServiciosUV.Sort(); colServiciosCB.Sort(); //agrego la coma a los 2 string colServiciosUVstring = AgregaComas(colServiciosUV); string colServiciosCBstring = AgregaComas(colServiciosCB); if (colServiciosUVstring == colServiciosCBstring) { this.ddlServicio.Items.Add(new ListItem(serviciosDescrip, colServiciosUVstring)); } } } if (this.ddlServicio.Items.Count <= 0) { throw new Exception("Errores.Invalidos.UVnoContieneServicios"); } this.ddlServicio.DataTextField = "ServicioDescrip"; this.ddlServicio.DataValueField = "ServicioID"; this.ddlServicio.DataBind(); }