private void llenaGrid(int Id_Emb)
        {
            try
            {
                Factura factura = new Factura();
                factura.Id_Emp = this.sesion.Id_Emp;
                factura.Id_Cd  = this.sesion.Id_Cd_Ver;
                factura.Id_Emb = Id_Emb;

                List <Factura> listaFactura = new List <Factura>();

                CN_Embarques CNEmbarques = new CN_Embarques();
                CNEmbarques.LlenaGridProFacturaRuta(ref factura, ref listaFactura, sesion.Emp_Cnx);


                foreach (Factura f in listaFactura)
                {
                    dt_detalles.Rows.Add(new object[] { f.Id_Fac, f.Id_FacSerie.Replace(f.Id_Fac.ToString(), ""), f.Cte_NomComercial, f.Fac_Importe });
                }

                //rgDetalles.Rebind();
                //this.rgDetalles.DataSource = listaFactura;
                //this.ListaFacturaCompara = listaFactura;
                //for (int i = 0; i < listaFactura.Count; i++)
                //    dt_detalles.Rows.Add(new object[] { factura.Id_Fac, factura.Id_FacSerie.Replace(factura.Id_Fac.ToString(), ""), factura.Cte_NomComercial, factura.Fac_Importe });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// Metodo para eliminar registros del listado de facturas por ruta
        /// </summary>
        /// <param name="id_fac">Id de la factura a remover</param>
        protected void ListaFactura_EliminarFactura(int id_fac)
        {
            try
            {
                List <Factura> lista       = this.ListaFacturaCompara;
                int            verificador = 0;
                Factura        factura2    = new Factura();
                factura2.Id_Emp = this.sesion.Id_Emp;
                factura2.Id_Cd  = this.sesion.Id_Cd_Ver;
                factura2.Id_Fac = id_fac;
                if (this.HF_ID.Value != string.Empty)
                {
                    factura2.Id_Emb = Convert.ToInt32(this.txtEmbarque.Text);
                }
                else
                {
                    verificador = Convert.ToInt32(this.txtEmbarque.Text);
                }

                CN_Embarques CNEmbarques = new CN_Embarques();
                //buscar producto de factura en la lista
                for (int i = 0; i < lista.Count; i++)
                {
                    Factura factura = lista[i];
                    if (factura.Id_Fac == id_fac)
                    {
                        CNEmbarques.RegresaEstatusFactura(factura2, this.sesion.Emp_Cnx, ref verificador);

                        if (verificador > 0)
                        {
                            lista.RemoveAt(i);
                        }
                        else
                        {
                            this.Alerta("No es posible eliminar este registro del listado");
                        }
                    }
                }
                this.ListaFacturaCompara = lista;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void CancelarRuta(int Id_Emp, int Id_Cd, int Id_Emb)
        {
            try
            {
                Factura factura = new Factura();
                factura.Id_Emp = Id_Emp;
                factura.Id_Cd  = Id_Cd;
                factura.Id_Emb = Id_Emb;
                List <Factura> listaFactura = new List <Factura>();
                CN_Embarques   CNEmbarques  = new CN_Embarques();
                CNEmbarques.LlenaGridProFacturaRuta(ref factura, ref listaFactura, sesion.Emp_Cnx);

                this.ListaFacturaBaja = listaFactura;
                Embarques embarques = new Embarques();
                embarques.Id_Emp = Id_Emp;
                embarques.Id_Cd  = Id_Cd;
                embarques.Id_Emb = Id_Emb;
                int verificador = -1;
                CNEmbarques.BajaEmbarque(embarques, sesion.Emp_Cnx, ref verificador, ListaFacturaBaja);

                if (verificador > -1)
                {
                    Alerta("Se dio de baja la ruta de embarque #" + embarques.Id_Emb.ToString());
                    RAM1.ResponseScripts.Add("refreshGrid();");
                    this.rgFacturaRuta.Rebind();
                }
                else
                {
                    Alerta("Ocurrió un error al intentar dar de baja");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void Guardar()
        {
            try
            {
                if (!validarCamposDetalle())
                {
                    this.RadTabStrip1.Focus();
                    this.RadMultiPage1.Focus();
                    if (this.txtCamioneta.Text == string.Empty)
                    {
                        this.txtCamioneta.Focus();
                    }
                    if (this.txtChofer.Text == string.Empty)
                    {
                        this.txtChofer.Focus();
                    }
                    return;
                }
                if (!validarFecha(this.dpFecha))
                {
                    this.dpFecha.Focus();
                    this.RadTabStrip1.Focus();
                    this.RadMultiPage1.Focus();
                    return;
                }

                if (dt_detalles == null || dt_detalles.Rows.Count == 0)
                {
                    Alerta("Aún no se han capturado facturas");
                    return;
                }
                if (this.dpFecha.SelectedDate > this.txtDia.SelectedDate)
                {
                    this.Alerta("El día no puede ser menor a la fecha");
                    return;
                }
                Embarques embarques = new Embarques();

                embarques.Id_Emp        = sesion.Id_Emp;
                embarques.Id_Cd         = sesion.Id_Cd_Ver;
                embarques.Emb_Fec       = Convert.ToDateTime(this.dpFecha.SelectedDate);
                embarques.Emb_Chofer    = this.txtChofer.Text;
                embarques.Emb_Dia       = Convert.ToDateTime(this.txtDia.SelectedDate);
                embarques.Emb_Camioneta = this.txtCamioneta.Text;
                embarques.Emb_Estatus   = "C";
                embarques.Id_U          = sesion.Id_U;

                if (this.HF_ID.Value != string.Empty)
                {
                    embarques.Id_Emb = Convert.ToInt32(this.txtEmbarque.Text);
                }
                else
                {
                    embarques.Id_Emb = -1;
                }

                List <EmbarquesDet> listaEmbarquesDet = new List <EmbarquesDet>();
                EmbarquesDet        embarquesDet      = new EmbarquesDet();

                foreach (DataRow dr in dt_detalles.Rows)
                {
                    //Genera la lista para la tabla detalles del embarque (EmbarquesDet)
                    embarquesDet = new EmbarquesDet();

                    embarquesDet.Id_Emp = sesion.Id_Emp;
                    embarquesDet.Id_Cd  = sesion.Id_Cd_Ver;
                    embarquesDet.Id_Emb = Convert.ToInt32(this.txtEmbarque.Text);
                    embarquesDet.Id_Fac = Convert.ToInt32(dr["Id_Fac"].ToString());

                    listaEmbarquesDet.Add(embarquesDet);
                }

                List <Factura> listaFactura = new List <Factura>();
                Factura        factura      = new Factura();

                foreach (DataRow dr in dt_detalles.Rows)
                {
                    factura = new Factura();
                    //Genera la lista actualizar el estatus en la table factura
                    factura.Id_Emp      = sesion.Id_Emp;
                    factura.Id_Cd       = sesion.Id_Cd_Ver;
                    factura.Id_Fac      = Convert.ToInt32(dr["Id_Fac"].ToString());
                    factura.Fac_Estatus = "E";

                    listaFactura.Add(factura);
                }

                string mensaje     = string.Empty;
                int    verificador = -1;

                CN_Embarques CNEmbarques = new CN_Embarques();
                CNEmbarques.GuardaEmbarques(embarques, listaEmbarquesDet, sesion, listaFactura, ref verificador);

                if (verificador > 0)
                {
                    mensaje = "Los datos se guardaron correctamente";
                    RAM1.ResponseScripts.Add(string.Concat(@"CloseWindow('", mensaje, "')"));
                }
                else
                {
                    this.Alerta("No fue posible guardar la información");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }