protected void btnProcesarCarga_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(ddlClientes.SelectedValue) || ddlClientes.SelectedValue == "0")
            {
                lblMensaje.Text = "Seleccione un cliente.";
                return;
            }

            if (string.IsNullOrEmpty(txtFechaVencimiento.Text))
            {
                lblMensaje.Text = "Ingrese la fecha de vencimiento.";
                return;
            }

            DateTime datFechaVencimiento = new DateTime();

            DateTime.TryParseExact(txtFechaVencimiento.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out datFechaVencimiento);
            if (datFechaVencimiento.Year <= 1900)
            {
                lblMensaje.Text = "Ingrese una fecha de vencimiento válida.";
                return;
            }

            if (ddlRemesas.SelectedIndex.Equals(0))
            {
                lblMensaje.Text = "Seleccione la REMESA";
                return;
            }

            if (!fupArchivoExcel.HasFile)
            {
                lblMensaje.Text = "Seleccione el archivo Excel";
                return;
            }

            string strExtensionArchivo = fupArchivoExcel.FileName.ToUpper();

            strExtensionArchivo = strExtensionArchivo.Substring(strExtensionArchivo.LastIndexOf(".") + 1);

            Proceso objProceso = new Proceso();

            objProceso.Codigo       = lblCodigoProceso.Text;
            objProceso.UsuarioDueno = lblUsuario.Text;

            objProceso.CargarDesdeArchivo(
                fupArchivoExcel.FileContent,
                strExtensionArchivo == "XLS" ? Enumerador.TipoArchivoExcel.XLS : Enumerador.TipoArchivoExcel.XLSX,
                true
                );

            if (objProceso.Registros.Count.Equals(0))
            {
                return;
            }

            int    intIdRemesa     = Convert.ToInt32(ddlRemesas.Text);
            string strNombreRemesa = ddlRemesas.SelectedItem.Text.Trim();

            foreach (ALCSA.Entidades.CargasMasivas.Registro objEntidad in objProceso.Registros)
            {
                objEntidad.IdTipoCobranza     = ddlTiposCobranzas.SelectedValue;
                objEntidad.NombreTipoCobranza = ddlTiposCobranzas.SelectedItem.Text;

                objEntidad.IdProcedimiento     = ddlProductos.SelectedValue;
                objEntidad.NombreProcedimiento = ddlProductos.SelectedItem.Text;

                objEntidad.IdMateria     = ddlMaterias.SelectedValue.Split(new char[] { '|' })[0];
                objEntidad.NombreMateria = ddlMaterias.SelectedItem.Text;

                objEntidad.IdProducto     = ddlProductos.SelectedValue;
                objEntidad.NombreProducto = ddlProductos.SelectedItem.Text;
                objEntidad.IdRemesa       = intIdRemesa;
                objEntidad.NombreRemesa   = strNombreRemesa;

                objEntidad.FechaVencimiento = datFechaVencimiento.ToString("yyyyMMdd");
            }

            objProceso.AsignarCliente(ddlClientes.SelectedValue);
            objProceso.GuardarTemporal();
            objProceso.ValidarDatos();

            CargarGrilla(objProceso, 0);

            lblMensaje.Text = "Los datos se guardaron temporalmente. Revice los datos en la grilla y luego presione el botón \"GUARDAR\" para crear las cobranzas.";
        }