private void dtgCodigosMovimientos_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        {
            int utilizados  = 0;
            int anulados    = 0;
            int disponibles = 0;
            DsCodigoBarrasUltimosMovimientos dsCodigos = (DsCodigoBarrasUltimosMovimientos)Session["DsCodigos"];

            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                if (e.Item.Cells[2].Text != "Desasignado a Agencia")
                {
                    disponibles          = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text) - Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text) - Utiles.Validaciones.obtieneEntero(DataBinder.Eval(e.Item.DataItem, "Utilizados").ToString()) + 1;
                    e.Item.Cells[8].Text = Convert.ToString(disponibles);
                }
                else if (e.Item.Cells[2].Text == "Desasignado a Agencia")
                {
                    disponibles          = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text) - Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text) + 1;
                    e.Item.Cells[8].Text = "-" + Convert.ToString(disponibles);
                }
                e.Item.Cells[6].Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "Utilizados"));
                e.Item.Cells[7].Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "Anulados"));
            }
            else if (e.Item.ItemType == ListItemType.Footer)
            {
                foreach (DataRow dr in dsCodigos.Tables["Datos"].Rows)
                {
                    // Estado 6: Desasignado Agencia
                    if (dr["EstadoCodigoBarrasID"].ToString() == "6")
                    {
                        utilizados  -= Convert.ToInt32(dr["Utilizados"].ToString());
                        anulados    -= Convert.ToInt32(dr["Anulados"].ToString());
                        disponibles -= Convert.ToInt32(dr["Disponibles"].ToString());
                    }
                    else
                    {
                        utilizados  += Convert.ToInt32(dr["Utilizados"].ToString());
                        anulados    += Convert.ToInt32(dr["Anulados"].ToString());
                        disponibles += Convert.ToInt32(dr["Disponibles"].ToString());
                    }
                }
                e.Item.Cells[6].Text     = utilizados.ToString();
                e.Item.Cells[6].CssClass = "TextoBold";
                e.Item.Cells[7].Text     = anulados.ToString();
                e.Item.Cells[7].CssClass = "TextoBold";
                e.Item.Cells[8].Text     = disponibles.ToString();
                e.Item.Cells[8].CssClass = "TextoBold";
            }
        }
        private void BindGridMovimientos(int currentPage)
        {
            BaseValidator bv;
            BaseValidator bv1;

            bv         = (BaseValidator)this.phValidUVenta.FindControl("validUnidadVenta");
            bv.Enabled = true;
            bv.Validate();
            // Se comenta por desarrollo de conceptos de facturacion con codigos de barras. se puede seleccionar un concepto o una unidad de venta
            //if (!bv.IsValid)
            //    return;

            bv1         = (BaseValidator)this.phValidConcepto.FindControl("validConcepto");
            bv1.Enabled = true;
            bv1.Validate();
            if (!bv.IsValid && !bv1.IsValid)
            {
                return;
            }

            int UnidadVentaID = Utiles.Validaciones.obtieneEntero(ddlUnidadVenta.SelectedValue);

            if (UnidadVentaID == 0)
            {
                bv.IsValid = false;
            }

            int ConceptoFacturacionID = Utiles.Validaciones.obtieneEntero(ddlConceptoFacturacion.SelectedValue);

            if (ConceptoFacturacionID == 0)
            {
                bv1.IsValid = false;
            }

            if (!bv.IsValid && !bv1.IsValid)
            {
                return;
            }

            bv         = (BaseValidator)this.phValidFechaDesde.FindControl("validFechaDesde");
            bv.Enabled = true;
            bv.Validate();
            if (!bv.IsValid)
            {
                return;
            }
            bv         = (BaseValidator)this.phValidFechaHasta.FindControl("validFechaHasta");
            bv.Enabled = true;
            bv.Validate();
            if (!bv.IsValid)
            {
                return;
            }

            SisPackController.AdministrarGrillas.Configurar(dtgCodigosMovimientos, null, this.CantidadOpciones, true, true);

            ICodigoBarras oCodigos = CodigoBarrasFactory.GetCodigoBarras();

            DateTime desde      = (this.txtFechaDesde.Text == "") ? DateTime.Parse("01/01/1900") : Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaDesde.Text);
            DateTime hasta      = (this.txtFechaHasta.Text == "") ? DateTime.Parse("01/01/2100") : Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaHasta.Text);
            int      estado     = (this.optAsignados.Checked) ? 2 : (this.optPrevendido.Checked) ? 3 : 0;
            int      cliente    = 0;
            int      agencia    = 0;
            int      vendedor   = 0;
            string   clientes   = "N";
            string   agencias   = "N";
            string   vendedores = "N";

            if (this.rbtAgencias.Checked)
            {
                agencia  = (this.busqAgencia.AgenciaID == "") ? 0 : Convert.ToInt32(this.busqAgencia.AgenciaID);
                agencias = "S";
            }

            if (this.rbtClientes.Checked)
            {
                cliente  = (this.busqCliente.ClienteID == "") ? 0 : Convert.ToInt32(this.busqCliente.ClienteID);
                clientes = "S";
            }

            if (this.rbtVendedores.Checked)
            {
                vendedor   = (this.busqVendedor.VendedorID == "") ? 0 : Convert.ToInt32(this.busqVendedor.VendedorID);
                vendedores = "S";
            }

            if (this.rbtTodos.Checked)
            {
                cliente    = 0;
                agencia    = 0;
                vendedor   = 0;
                clientes   = "S";
                agencias   = "S";
                vendedores = "S";
            }

            int unidadVentaID         = (ddlUnidadVenta.SelectedValue == "") ? 0 : Convert.ToInt32(ddlUnidadVenta.SelectedValue);
            int conceptoFacturacionID = (ddlConceptoFacturacion.SelectedValue == "") ? 0 : Convert.ToInt32(ddlConceptoFacturacion.SelectedValue);

            DsCodigoBarrasUltimosMovimientos dsCodigos = oCodigos.GetUltimosMovimientos(desde, hasta, estado, cliente, agencia, vendedor, unidadVentaID, clientes, agencias, vendedores, conceptoFacturacionID);

            this.dtgCodigosMovimientos.DataSource = dsCodigos;
            Session["DsCodigos"] = dsCodigos;

            dtgCodigosMovimientos.CurrentPageIndex = currentPage;
            dtgCodigosMovimientos.DataBind();

            bv         = (BaseValidator)this.phValidFechaDesde.FindControl("validFechaDesde");
            bv.Enabled = false;


            bv         = (BaseValidator)this.phValidFechaHasta.FindControl("validFechaHasta");
            bv.Enabled = false;

            bv         = (BaseValidator)this.phValidUVenta.FindControl("validUnidadVenta");
            bv.Enabled = false;

            bv         = (BaseValidator)this.phValidUVenta.FindControl("validConcepto");
            bv.Enabled = false;
        }