예제 #1
0
        private void butAceptar_Click(object sender, System.EventArgs e)
        {
            try
            {
                DsCodigoBarrasGuia ds = (DsCodigoBarrasGuia)Session["DsCodigoBarras"];

                //concateno los codigos de barras
                string codigos            = "";
                string servicios          = "";
                int    i                  = 0;
                string unidadVentaID      = "";
                string tiempoEntregaID    = "";
                string productoID         = "";
                string modalidadEntregaID = "";

                foreach (DsCodigoBarrasGuia.DatosRow dr in ds.Datos.Rows)
                {
                    if (dr.ServicioID != 0)
                    {
                        servicios += dr.ServicioID.ToString();
                    }
                    else
                    {
                        servicios += "0";
                    }

                    codigos += dr.CodigoBarras;
                    if (i < ds.Datos.Rows.Count - 1)
                    {
                        codigos += ",";
                    }

                    if (i < ds.Datos.Rows.Count - 1 && dr.ServicioID != 0)
                    {
                        servicios += ",";
                    }
                    if (dr.UnidadVentaID.ToString() != "0")
                    {
                        unidadVentaID = dr.UnidadVentaID.ToString();
                    }
                    if (dr.TiempoEntregaID.ToString() != "0")
                    {
                        tiempoEntregaID = dr.TiempoEntregaID.ToString();
                    }
                    if (dr.ProductoID.ToString() != "0")
                    {
                        productoID = dr.ProductoID.ToString();
                    }
                    if (dr.ModalidadEntregaID.ToString() != "0")
                    {
                        modalidadEntregaID = dr.ModalidadEntregaID.ToString();
                    }

                    i++;
                }

                //verifico que todos los codigos de barras tengan el mismo estado (asignado o prevendido)
                ICodigoBarras codigoBarras = CodigoBarrasFactory.GetCodigoBarras();
                codigoBarras.VerificaEstadoCodigoBarras(codigos);                 //si falla, arroja una excepcion, sino, sigue sin problemas


                this.txtUVentaSelec.Text     = unidadVentaID == "" ? "0" : unidadVentaID;
                this.txtTiempoEntregaID.Text = tiempoEntregaID == "" ? "0" : tiempoEntregaID;
                this.txtProductoID.Text      = productoID == "" ? "0" : productoID;
                //this.txtServicioIDSel.Text = servicios == "" ? "0" : servicios; //dr.ServicioID.ToString();
                this.txtModalidadEntregaID.Text = modalidadEntregaID == "" ? "0" : modalidadEntregaID;


                // solo se elije un codigo de barra, que está asociado a una unidad de venta
                if (this.txtUVentaSelec.Text != "0" && Utiles.Validaciones.obtieneEntero(this.txtCantServicios.Text) == 0)
                {
                    BindProducto();
                    BindTiempoEntregaUV(Utiles.Validaciones.obtieneEntero(this.txtUVentaSelec.Text));                     //dr.UnidadVentaID
                    BindServicioUV();

                    if (this.txtPrevendido.Text == "1")
                    {
                        BindModalidadEntregaByID(Utiles.Validaciones.obtieneEntero(this.txtModalidadEntregaID.Text));
                    }
                    else
                    {
                        BindModalidadEntregaByUnidadVentaID(Convert.ToInt32(unidadVentaID));
                    }
                }
                // solo se elije un codigo de barras, que está asociado a uno o mas servicio
                else if (this.txtUVentaSelec.Text == "0" && Utiles.Validaciones.obtieneEntero(this.txtCantServicios.Text) != 0)
                {
                    BindProductoByCodigo(codigos);
                    BindTiempoEntrega();
                    BindServicio();
                    BindModalidadEntrega();
                }
                // se elije un codigo de barras asociado a una UV, y uno o mas codigos de barras asociados a un servicio
                else if (this.txtUVentaSelec.Text != "0" && Utiles.Validaciones.obtieneEntero(this.txtCantServicios.Text) != 0)
                {
                    BindProductoByCodigoCombinado(codigos);
                    BindTiempoEntregaUV(Utiles.Validaciones.obtieneEntero(this.txtUVentaSelec.Text));
                    BindServicioAmbos();
                    if (this.txtPrevendido.Text == "1")
                    {
                        BindModalidadEntregaByID(Utiles.Validaciones.obtieneEntero(this.txtModalidadEntregaID.Text));
                    }
                    else
                    {
                        BindModalidadEntrega();
                    }
                }

                this.tblUVenta.Visible         = true;
                this.txtCodigoBarrasTotal.Text = codigos;

                this.txtCodigoBarras.Enabled = false;
                this.butAgregar.Enabled      = false;
                this.butAceptar.Enabled      = false;
                this.txtButAceptar.Text      = "1";

                SisPackController.AdministrarGrillas.ConfigurarChica(dtgCodigos, "CodigoBarras");
                Session["DsCodigoBarras"]        = (DsCodigoBarrasGuia)dsCodigoBarras;
                this.dtgCodigos.DataSource       = dsCodigoBarras;
                this.dtgCodigos.CurrentPageIndex = 0;
                this.dtgCodigos.DataBind();
                this.butConfirmar.Enabled = true;
            }
            catch (Exception ex)
            {
                this.txtButAceptar.Text = "0";
                ManejaErrores(ex);
            }
        }