Esempio n. 1
0
        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();
        }