Example #1
0
    /// <summary>
    /// Permite añadir experiencia al jugador cuando se usa un item.
    /// </summary>
    /// <returns>The experiencia jugador.</returns>
    private int AñadirExperienciaJugador()
    {
        ConfiguracionUsuario settings = ConfiguracionUsuario.Instance;
        int min = 0;
        int max = 0;

        if (settings.ConfiguracionItems.Equals(ConfiguracionUsuario.TIPO_CONFIGURACION.FRACCION))
        {
            min = 20;
            max = 40;
        }
        else if (settings.ConfiguracionItems.Equals(ConfiguracionUsuario.TIPO_CONFIGURACION.PORCENTAJE))
        {
            min = 10;
            max = 20;
        }
        else
        {
            min = 5;
            max = 10;
        }
        int     exp     = Random.Range(min, max);
        Jugador jugador = BaseDatos.Instance.Local;

        jugador.Experiencia += exp;
        if (jugador.Experiencia >= 100)
        {
            jugador.Experiencia -= 100;
            jugador.Nivel       += 1;
        }
        return(exp);
    }
Example #2
0
    /// <summary>
    /// Añade la experiencia obtenida al jugador, según el tipo de configuración da mas o menos.
    /// </summary>
    /// <returns>The experiencia jugador.</returns>
    /// <param name="jugador">Jugador.</param>
    private int AñadirExperienciaJugador(JugadorPartida jugador)
    {
        ConfiguracionUsuario settings = ConfiguracionUsuario.Instance;
        int min = 0;
        int max = 0;

        if (settings.ConfiguracionBatalla.Equals(ConfiguracionUsuario.TIPO_CONFIGURACION.PORCENTAJE))
        {
            min = 50;
            max = 90;
        }
        else
        {
            min = 10;
            max = 50;
        }
        int exp = Random.Range(min, max);

        jugador.Jugador.Experiencia += exp;
        if (jugador.Jugador.Experiencia >= 100)
        {
            jugador.Jugador.Experiencia -= 100;
            jugador.Jugador.Nivel       += 1;
        }
        return(exp);
    }
Example #3
0
        private void rptParametrosSinAlbaran_Load(object sender, EventArgs e)
        {
            // TODO: esta línea de código carga datos en la tabla 'Promowork_dataDataSet.Obras' Puede moverla o quitarla según sea necesario.
            this.ObrasTableAdapter.Fill(this.Promowork_dataDataSet.Obras);
            nMes     = VariablesGlobales.nMesActual;
            nAno     = VariablesGlobales.nAnoActual;
            nDiasFin = DateTime.DaysInMonth(nAno, nMes);
            FechaIni = new DateTime(nAno, nMes, 1);
            FechaFin = new DateTime(nAno, nMes, nDiasFin);

            dateTimePicker1.Value   = FechaIni;
            dateTimePicker2.Value   = FechaFin;
            dateTimePicker2.MinDate = FechaIni;

            configuracionUsuario = repoUsuario.GetConfiguracionUsuario(VariablesGlobales.nIdUsuarioActual) ?? new ConfiguracionUsuario();
            configuracionEmpresa = repoEmpresa.GetConfiguracionEmpresa(VariablesGlobales.nIdEmpresaActual) ?? new ConfiguracionEmpresa();

            this.EmpresasActualTableAdapter.FillByEmpresa(this.Promowork_dataDataSet.EmpresasActual, VariablesGlobales.nIdEmpresaActual);

            var trabajadores = repoTrabajador.GetTrabajadoresConEmail(VariablesGlobales.nIdEmpresaActual);

            cbTrabajadores.Properties.DataSource = trabajadores;

            cbTrabajadores.EditValue = configuracionUsuario.responderASeleccionado;

            tbAsuntoObrasProveedores.Text = configuracionEmpresa.asuntoObrasProveedores;
            tbCuerpoCorreo.Text           = configuracionEmpresa.cuerpoMensajeObrasProveedores;
        }
Example #4
0
        private void cbUsuario_SelectedValueChanged(object sender, EventArgs e)
        {
            HabilitaDeshabilitaBtnAceptar();
            if (cbUsuario.SelectedIndex != -1)
            {
                usuarioSeleccionado = usuarios.FirstOrDefault(u => u.IdUsuario == (int)cbUsuario.SelectedValue);
                empresasUsuario     = repoEmpresa.GetEmpresasUsuario(usuarioSeleccionado.IdUsuario);

                empresasBindingSource.DataSource = empresasUsuario;


                try
                {
                    configuracionUsuario = JsonConvert.DeserializeObject <ConfiguracionUsuario>(usuarioSeleccionado.ConfiguracionUsuario) ?? new ConfiguracionUsuario();
                }
                catch
                {
                    configuracionUsuario = new ConfiguracionUsuario();
                }

                cbEmpresa.SelectedValue = configuracionUsuario.empresaSeleccionada ?? empresasUsuario.FirstOrDefault().IdEmpresa;
                tbMes.Value             = configuracionUsuario.mesSeleccionado ?? DateTime.Today.Month;
                tbAno.Value             = configuracionUsuario.anoSeleccionado ?? DateTime.Today.Year;
            }
        }
Example #5
0
        private void rptParametrosSinAlbaran_Load(object sender, EventArgs e)
        {
            nMes     = VariablesGlobales.nMesActual;
            nAno     = VariablesGlobales.nAnoActual;
            nDiasFin = DateTime.DaysInMonth(nAno, nMes);
            FechaIni = new DateTime(nAno, nMes, 1);
            FechaFin = new DateTime(nAno, nMes, nDiasFin);

            dateTimePicker1.Value   = FechaIni;
            dateTimePicker2.Value   = FechaFin;
            dateTimePicker2.MinDate = FechaIni;

            configuracionUsuario = repoUsuario.GetConfiguracionUsuario(VariablesGlobales.nIdUsuarioActual) ?? new ConfiguracionUsuario();
            configuracionEmpresa = repoEmpresa.GetConfiguracionEmpresa(VariablesGlobales.nIdEmpresaActual) ?? new ConfiguracionEmpresa();

            this.EmpresasActualTableAdapter.FillByEmpresa(this.Promowork_dataDataSet.EmpresasActual, VariablesGlobales.nIdEmpresaActual);

            var trabajadores = repoTrabajador.GetTrabajadoresConEmail(VariablesGlobales.nIdEmpresaActual);

            cbTrabajadores.Properties.DataSource = trabajadores;
            cbTrabajadores.EditValue             = configuracionUsuario.responderASeleccionado;

            asuntoSinAlbaranTextEdit.Text        = configuracionEmpresa.asuntoSinAlbaran;
            cuerpoMensajeSinAlbaranTextEdit.Text = configuracionEmpresa.cuerpoMensajeSinAlbaran;
        }
Example #6
0
    /// <summary>
    /// Creates the damage effect.
    /// Muestra el daño a la criatura o jugador.
    /// </summary>
    /// <param name="position">Position.</param>
    /// <param name="amount">Amount.</param>

    public static void CreateDamageEffect(Vector3 position, int health, int amount)
    {
        GameObject newDamageEffect = InstanciarPrefab(position);
        // Get DamageEffect component in this new game object
        DamageEffect de = newDamageEffect.GetComponent <DamageEffect>();
        // Change the amount text to reflect the amount of damage dealt
        ConfiguracionUsuario settings = ConfiguracionUsuario.Instance;

        if (settings.ConfiguracionBatalla.Equals(ConfiguracionUsuario.TIPO_CONFIGURACION.ENTERO))
        {
            de.AmountText.text = "-" + amount.ToString();
        }
        //de.AmountText.text = health.ToString()+"-"+amount.ToString();
        else if (settings.ConfiguracionBatalla.Equals(ConfiguracionUsuario.TIPO_CONFIGURACION.FRACCION))
        {
            de.AmountText.text = "-" + ConfiguracionUsuario.ObtenerFraccion(amount, health) + "x" + health.ToString();
        }
        else
        {
            de.AmountText.text = "-" + ConfiguracionUsuario.ObtenerPorcentaje(amount, health);
        }



        //de.AmountText.text = health.ToString()+"-"+Settings.ObtenerFraccion(amount,health)+"x"+health.ToString();
        // start a coroutine to fade away and delete this effect after a certain time
        de.StartCoroutine(de.ShowDamageEffect());
        //Comandas.Instance.CompletarEjecucionComanda();
    }
Example #7
0
        private void OnNewConfig(object sender, Cd40Cfg cfg)
#endif
        {
            string _idIdenticador = MainId;

            if (_UserCfg != null)
            {
                _SystemCfg = cfg.ConfiguracionGeneral;
                _UserCfg   = GetUserCfg(cfg);
                _PoolHf    = cfg.PoolHf;

                _ResetUsuario = MainId != _idIdenticador;
            }
            else
            {
                _SystemCfg = cfg.ConfiguracionGeneral;
                _UserCfg   = GetUserCfg(cfg);
                _PoolHf    = cfg.PoolHf;
            }

            /** 20180315. AGL. Si _UserCfg es null, es porque el ID HOST configurado no forma parte de
             * la configuracion de BDT, aunque si de la configuracion de SPREAD. */
            if (_UserCfg == null)
            {
                _HostAddresses = _SystemCfg.GetHostAddresses(Top.HostId);
                ClearChildrenObjects();
            }
            else
            {
                _HostAddresses = _SystemCfg.GetHostAddresses(Top.HostId);
                CreateChildrenObjects();
            }
            CreateOperatorsData();
            General.SafeLaunchEvent(ConfigChanged, this);
        }
Example #8
0
 internal void bundleData(ConfiguracionUsuario configUser)
 {
     this.configUser = new ConfiguracionUsuario(configUser);
     // settear los valores
     asignarConfiguraciones();
     cargarSonidos();
     // load texturas
     cargarTexturas();
 }
Example #9
0
 void Awake()
 {
     if (Instance == null)
     {
         DontDestroyOnLoad(this.gameObject);
         Instance = this;
     }
     Musica = true;
     ConfiguracionBatalla = TIPO_CONFIGURACION.ENTERO;
     ConfiguracionItems   = TIPO_CONFIGURACION.ENTERO;
 }
Example #10
0
    /// <summary>
    /// Actualiza la musica en settings.
    /// </summary>
    /// <param name="valor">Valor.</param>
    public void CambiarMusica(int valor)
    {
        ConfiguracionUsuario settings = ConfiguracionUsuario.Instance;

        if (valor == 0)
        {
            settings.Musica = true;
        }
        else
        {
            settings.Musica = false;
        }
        ControladorMenu.Instance.ActualizarMusica(settings.Musica);
    }
        public bool GuardarConfiguracionUsuario(ConfiguracionUsuario configuracionUsuario)
        {
            var    usuarioActual            = contextoGenerales.Usuarios.FirstOrDefault(u => u.IdUsuario == configuracionUsuario.idUsuario);
            string configuracionUsuarioJson = JsonConvert.SerializeObject(configuracionUsuario);

            usuarioActual.ConfiguracionUsuario = configuracionUsuarioJson;
            //ES NECESARIO ACTUALIZAR ESTOS CAMPOS DE LA TABLA USUSARIO,
            //PORQUE EL TRIGGER QUE CREA LOS FESTIVOS DE LA EMPRESA Y LAS OBRAS LO HACE A PARTIR DE ESTOS CAMPOS.
            //HABRIA QUE CREAR UN METODO PARA CREAR LOS FESTIVOS Y DESACTIVAR EL TRIGGER.
            usuarioActual.AnoUsuario = configuracionUsuario.anoSeleccionado;
            usuarioActual.MesUsuario = configuracionUsuario.mesSeleccionado;
            //////////////
            contextoGenerales.SaveChanges();
            return(true);
        }
Example #12
0
 private static void ConfigExample1()
 {
     cfg.Version = "9.9";
     ConfiguracionUsuario confUsuario = new ConfiguracionUsuario();
     link.TipoEnlaceInterno = "MD";
     link.Literal = "grupoTest";
     link.PosicionHMI = 5;
     link.Prioridad = 4;
     link.OrigenR2 = "314453";
     CfgRecursoEnlaceInterno rec = new CfgRecursoEnlaceInterno();
     rec.Prefijo = 3;
     rec.NombreRecurso = "14R";
     rec.Interface = TipoInterface.TI_Radio;
     link.ListaRecursos.Add(rec);
 }
        public ConfiguracionUsuario GetConfiguracionUsuario(int idUsuario)
        {
            ConfiguracionUsuario configuracionUsuario = new ConfiguracionUsuario();
            var usuario = contextoGenerales.Usuarios.FirstOrDefault(u => u.IdUsuario == idUsuario);

            if (usuario != null && usuario.ConfiguracionUsuario != null)
            {
                try
                {
                    configuracionUsuario = JsonConvert.DeserializeObject <ConfiguracionUsuario>(usuario.ConfiguracionUsuario);
                }
                catch { }
            }
            return(configuracionUsuario);
        }
Example #14
0
 /// <summary>
 /// Crea el daño visual en la criatura.
 /// </summary>
 /// <param name="daño">Daño.</param>
 /// <param name="vida">Vida.</param>
 public void HacerDaño(int daño, int vida)
 {
     if (vida > 0)
     {
         DamageEffect.CreateDamageEffect(transform.position, vida, daño);
         if (ConfiguracionUsuario.Instance.ConfiguracionBatalla.Equals(ConfiguracionUsuario.TIPO_CONFIGURACION.ENTERO))
         {
             HealthText.text = (vida - daño).ToString();
         }
         else
         {
             HealthText.text = ConfiguracionUsuario.ObtenerPorcentaje((vida - daño), CartaAsset.Defensa);
         }
     }
 }
Example #15
0
    /// <summary>
    /// Cambia como se ve la vida del jugador y su avatar.
    /// </summary>
    public void AplicarEstiloPersonajeAsset()
    {
        if (ConfiguracionUsuario.Instance.ConfiguracionBatalla.Equals(ConfiguracionUsuario.TIPO_CONFIGURACION.ENTERO))
        {
            HealthText.text = charAsset.MaxHealth.ToString();
        }
        else
        {
            HealthText.text = ConfiguracionUsuario.ObtenerPorcentaje(charAsset.MaxHealth, charAsset.MaxHealth);
        }
        ImagenPersonaje.sprite = charAsset.AvatarImage;
        //ImagenFondoPersonaje.sprite = charAsset.AvatarBGImage;

        //ImagenFondoPersonaje.color = charAsset.AvatarBGTint;
    }
Example #16
0
    public void CambiarItems(int valor)
    {
        ConfiguracionUsuario settings = ConfiguracionUsuario.Instance;

        if (valor == 0)
        {
            settings.ConfiguracionItems = ConfiguracionUsuario.TIPO_CONFIGURACION.ENTERO;
        }
        else if (valor == 1)
        {
            settings.ConfiguracionItems = ConfiguracionUsuario.TIPO_CONFIGURACION.PORCENTAJE;
        }
        else
        {
            settings.ConfiguracionItems = ConfiguracionUsuario.TIPO_CONFIGURACION.FRACCION;
        }
    }
Example #17
0
        public static void EnviarCorreoPorAltaUsuario()
        {
            string saltoLinea = "\n";

            try
            {
                // Genero una Instancia de Mail para armar el formato del Mismo
                var unMail = new CorreoElectronico();

                // Agrego Todos los valores correspondientes a Enviar
                string correoDestinatario = ConfiguracionUsuario.Instance().Mail;
                string nombreMostrar      = ConfiguracionUsuario.Instance().Nombre;
                string contraseña         = ConfiguracionUsuario.Instance().Contraseña;


                unMail.RemitenteCorreo        = "*****@*****.**";
                unMail.RemitenteNombreMostrar = "Healthy Fox";

                unMail.AgregarDestinatario(correoDestinatario, nombreMostrar);

                unMail.TituloCorreo = "Alta Usuario Healthy Fox";

                unMail.CuerpoCorreo =

                    "Estimado/a: " + nombreMostrar + saltoLinea +
                    saltoLinea +
                    "Gracias por utilizar Healthy Fox. Le informamos que de acuerdo a sus datos ingresados registro un usuario con los siguientes datos:" + saltoLinea +
                    saltoLinea +
                    "Nombre y Apellido:" + "" + nombreMostrar + " " + ConfiguracionUsuario.Instance().Apellido + "\n" +
                    "Contraseña: " + contraseña + saltoLinea +
                    saltoLinea +
                    "Que tenga un buen día";

                // Envio el Mail
                var nuevoCorreo = new CorreoNetMailing();
                nuevoCorreo.EnviarCorreoElectronico(unMail);
            }
            catch (Exception e)
            {
                LogueadorEventViewer.Instancia().LogInformacion("El siguiente error fue mostrado al Generar un Mail:" + e.ToString(), "HealthyFox", "Log");
                throw new Exception("Error al Intentar enviar un Mail");
            }
        }
Example #18
0
    /// <summary>
    /// Determina como se verá la cantidad de progreso.
    /// </summary>
    /// <param name="cantidadText">Cantidad text.</param>
    /// <param name="cantidad">Cantidad.</param>
    private void AñadirCantidad(Text cantidadText, int cantidad)
    {
        ConfiguracionUsuario settings = ConfiguracionUsuario.Instance;

        switch (settings.ConfiguracionItems)
        {
        case ConfiguracionUsuario.TIPO_CONFIGURACION.ENTERO:
            cantidadText.text = ConfiguracionUsuario.ObtenerEntero(cantidad);
            break;

        case ConfiguracionUsuario.TIPO_CONFIGURACION.FRACCION:
            cantidadText.text = ConfiguracionUsuario.ObtenerFraccion(cantidad, 100);
            break;

        case ConfiguracionUsuario.TIPO_CONFIGURACION.PORCENTAJE:
            cantidadText.text = ConfiguracionUsuario.ObtenerPorcentaje(cantidad, 100);
            break;
        }
    }
Example #19
0
    IEnumerator AumentarVidaProgresivamente(int vidaActual, int vidaDespues)
    {
        vidaActual += 1;
        while (vidaActual <= vidaDespues)
        {
            if (ConfiguracionUsuario.Instance.ConfiguracionBatalla.Equals(ConfiguracionUsuario.TIPO_CONFIGURACION.ENTERO))
            {
                HealthText.text = vidaActual.ToString();
            }
            else
            {
                HealthText.text = ConfiguracionUsuario.ObtenerPorcentaje(vidaActual, charAsset.MaxHealth);
            }
            yield return(new WaitForSeconds(0.02f));

            vidaActual += 1;
        }
        Comandas.Instance.CompletarEjecucionComanda();
    }
 private void btnEmpezarJuego_Click(object sender, EventArgs e)
 {
     if (camposRequeridosValidos())
     {
         int[] time = getTiempo(txtDuracion.Text.Trim());
         ConfiguracionUsuario configUser = new ConfiguracionUsuario()
         {
             nickName         = txtNickname.Text.Trim(),
             dificultad       = cmbDificultad.GetItemText(cmbDificultad.SelectedItem),
             tiempo           = new TimeSpan(time[0], time[1], time[2]),
             reprodSonidos    = sonido,
             velocidadFiguras = getVelocidad(cmbDificultad.SelectedIndex)
         };
         ViewTetris tetrisForm = new ViewTetris();
         tetrisForm.bundleData(configUser);
         tetrisForm.Show();
         Hide();
     }
 }
Example #21
0
    /// <summary>
    /// Muestra la cantidad en funcion de la configuracion del usuario.
    /// </summary>
    public void LeerDatosItem()
    {
        ConfiguracionUsuario settings = ConfiguracionUsuario.Instance;

        if (settings.ConfiguracionItems.Equals(ConfiguracionUsuario.TIPO_CONFIGURACION.ENTERO))
        {
            CantidadText.text = ConfiguracionUsuario.ObtenerEntero(Item.Cantidad);
        }
        else if (settings.ConfiguracionItems.Equals(ConfiguracionUsuario.TIPO_CONFIGURACION.FRACCION))
        {
            CantidadText.text = ConfiguracionUsuario.ObtenerFraccion(Item.Cantidad, 100);
        }
        else
        {
            CantidadText.text = ConfiguracionUsuario.ObtenerPorcentaje(Item.Cantidad, 100);
        }

        ItemImage.sprite = Resources.Load <Sprite>(Item.RutaImagen);
    }
Example #22
0
    /// <summary>
    /// Lee los datos de la carta base.
    /// </summary>
    public override void LeerDatosAsset()
    {
        // Change the card graphic sprite
        CreatureGraphicImage.sprite = Resources.Load <Sprite>(CartaAsset.RutaImagenCarta);

        AttackText.text = CartaAsset.Ataque.ToString();
        if (ConfiguracionUsuario.Instance.ConfiguracionBatalla.Equals(ConfiguracionUsuario.TIPO_CONFIGURACION.ENTERO))
        {
            HealthText.text = CartaAsset.Defensa.ToString();
        }
        else
        {
            HealthText.text = ConfiguracionUsuario.ObtenerPorcentaje(CartaAsset.Defensa, CartaAsset.Defensa);
        }

        if (PreviewManager != null)
        {
            PreviewManager.CartaAsset = CartaAsset;
            PreviewManager.LeerDatosAsset();
        }
    }
Example #23
0
        private static Cd40Cfg ConfiguracionGrupoUnMiembro(Cd40Cfg cfg)
        {
            //Usuario S2
            ConfiguracionUsuario userCfg = new ConfiguracionUsuario();
            //Tecla de grupo con 1 miembro
            CfgEnlaceInterno link = new CfgEnlaceInterno();
            link.Literal = "grupotest1";
            link.PosicionHMI = 45;
            link.TipoEnlaceInterno = "MD";
            link.Prioridad = 4;
            link.OrigenR2 = "218002";
            CfgRecursoEnlaceInterno rec = new CfgRecursoEnlaceInterno();
            rec.Prefijo = 0;
            rec.NombreRecurso = "218001";
            link.ListaRecursos.Add(rec);
            userCfg.TlfLinks.Add(link);

            //Tecla de AD normal
            CfgEnlaceInterno link2 = new CfgEnlaceInterno();
            link2.Literal = "S1_SCV2";
            link2.PosicionHMI = 44;
            link2.TipoEnlaceInterno = "DA";
            link2.Prioridad = 4;
            link2.OrigenR2 = "218002";
            userCfg.TlfLinks.Add(link2);

            cfg.ConfiguracionUsuarios.Add(userCfg);

            //Usuario S1
            ConfiguracionUsuario userCfg2 = new ConfiguracionUsuario();
            //Tecla de grupo con 1 miembro
            CfgEnlaceInterno link3 = new CfgEnlaceInterno();
            link3.Literal = "grupotest1";
            link3.PosicionHMI = 45;
            link3.TipoEnlaceInterno = "MD";
            link3.Prioridad = 4;
            link3.OrigenR2 = "218001";
            CfgRecursoEnlaceInterno rec2 = new CfgRecursoEnlaceInterno();
            rec2.Prefijo = 0;
            rec2.NombreRecurso = "218001";
            link3.ListaRecursos.Add(rec2);
            userCfg2.TlfLinks.Add(link3);

            //Tecla de AD normal
            CfgEnlaceInterno link4 = new CfgEnlaceInterno();
            link4.Literal = "S2_SCV2";
            link4.PosicionHMI = 44;
            link4.TipoEnlaceInterno = "DA";
            link4.Prioridad = 4;
            link4.OrigenR2 = "218001";
            userCfg2.TlfLinks.Add(link4);

            cfg.ConfiguracionUsuarios.Add(userCfg2);

            //Configuracion de sistema, numeracion de usuarios
            DireccionamientoSIP dirSIP = new DireccionamientoSIP();
            StrNumeroAbonado num = new StrNumeroAbonado();
            num.NumeroAbonado = "218001";
            num.Prefijo = 0;
            dirSIP.IdUsuario = "S1_SCV2";
            dirSIP.NumerosAbonadoQueAtiende.Add(num);
            cfg.ConfiguracionGeneral.PlanDireccionamientoSIP.Add(dirSIP);

            num = new StrNumeroAbonado();
            num.NumeroAbonado = "218002";
            num.Prefijo = 0;
            dirSIP = new DireccionamientoSIP();
            dirSIP.IdUsuario = "S2_SCV2";
            dirSIP.NumerosAbonadoQueAtiende.Add(num);
            cfg.ConfiguracionGeneral.PlanDireccionamientoSIP.Add(dirSIP);

            num = new StrNumeroAbonado();
            num.NumeroAbonado = "218003";
            num.Prefijo = 0;
            dirSIP = new DireccionamientoSIP();
            dirSIP.IdUsuario = "S2_SCV3";
            dirSIP.NumerosAbonadoQueAtiende.Add(num);
            cfg.ConfiguracionGeneral.PlanDireccionamientoSIP.Add(dirSIP);
            return cfg;
        }
Example #24
0
        internal void LoadFiltro(int nIdFactCab, string reporte, bool facturaHoras = false)
        {
            idFactura            = nIdFactCab;
            configuracionUsuario = repoUsuario.GetConfiguracionUsuario(VariablesGlobales.nIdUsuarioActual) ?? new ConfiguracionUsuario();
            configuracionEmpresa = repoEmpresa.GetConfiguracionEmpresa(VariablesGlobales.nIdEmpresaActual) ?? new ConfiguracionEmpresa();

            tbAsuntoMensaje.Text = configuracionEmpresa.asuntoEnvioFacturas;
            tbCuerpoMensaje.Text = configuracionEmpresa.CuerpoEnvioFacturas;

            this.WindowState = FormWindowState.Maximized;
            this.reportViewer1.LocalReport.ReportEmbeddedResource = reporte;

            //this.GestoresTableAdapter.FillByConEmail(this.Promowork_dataDataSet.Gestores, VariablesGlobales.nIdEmpresaActual);

            // TODO: This line of code loads data into the 'Promowork_dataDataSet.PresupuestoActual' table. You can move, or remove it, as needed.
            this.FacturasDetImpTableAdapter.FillByFactura(this.Promowork_dataDataSet.FacturasDetImp, nIdFactCab);
            this.FacturasCabImpTableAdapter.FillByFactura(this.Promowork_dataDataSet.FacturasCabImp, nIdFactCab);
            this.vComprasDirectasTableAdapter.FillByFactura(this.DatosPresupuestos.vComprasDirectas, nIdFactCab);
            this.FacturasDetHorasImpTableAdapter.FillbyFactura(this.Promowork_dataDataSet.FacturasDetHorasImp, nIdFactCab);
            // TODO: This line of code loads data into the 'Promowork_dataDataSet.EmpresasActual' table. You can move, or remove it, as needed.
            this.empresasPoblacion.FillByEmpresa(this.Promowork_dataDataSet.EmpresasPoblacion, VariablesGlobales.nIdEmpresaActual);
            //this.empresasTableAdapter.FillByEmpresa(this.Promowork_dataDataSet.Empresas, VariablesGlobales.nIdEmpresaActual);

            factura = (DataRowView)FacturasCabImpBindingSource.Current;

            tbCliente.Text = factura["DesCliente"].ToString();

            var trabajadores = repoTrabajador.GetTrabajadoresConEmail(VariablesGlobales.nIdEmpresaActual);

            cbTrabajadores.Properties.DataSource = trabajadores;
            cbTrabajadores.EditValue             = configuracionUsuario.responderASeleccionado;

            ProveedoresService servicioProveedores = new ProveedoresService();
            var gestores = servicioProveedores.ObtenerGestoresConEmail(VariablesGlobales.nIdEmpresaActual, true);

            cbGestor.Properties.DataSource = gestores;
            cbGestor.EditValue             = configuracionUsuario.gestorSeleccionado;

            RellenaEmailCliente();

            //
            // reportViewer1
            //
            Microsoft.Reporting.WinForms.ReportDataSource reportDataSource11 = new Microsoft.Reporting.WinForms.ReportDataSource();
            Microsoft.Reporting.WinForms.ReportDataSource reportDataSource12 = new Microsoft.Reporting.WinForms.ReportDataSource();
            Microsoft.Reporting.WinForms.ReportDataSource reportDataSource13 = new Microsoft.Reporting.WinForms.ReportDataSource();
            Microsoft.Reporting.WinForms.ReportDataSource reportDataSource14 = new Microsoft.Reporting.WinForms.ReportDataSource();
            Microsoft.Reporting.WinForms.ReportDataSource reportDataSource15 = new Microsoft.Reporting.WinForms.ReportDataSource();

            reportDataSource11.Name = "DataSet1";
            if (facturaHoras)
            {
                reportDataSource11.Value = this.FacturasDetHorasImpBindingSource;
            }
            else
            {
                reportDataSource11.Value = this.FacturasDetImpBindingSource;
            }
            reportDataSource12.Name  = "DataSet2";
            reportDataSource12.Value = this.empresasPoblacionBindingSource;
            reportDataSource13.Name  = "DataSet3";
            reportDataSource13.Value = this.FacturasCabImpBindingSource;
            reportDataSource14.Name  = "ComprasDirectas";
            reportDataSource14.Value = this.vComprasDirectasBindingSource;
            reportDataSource15.Name  = "DetallesHoras";
            reportDataSource15.Value = this.FacturasDetHorasImpBindingSource;
            this.reportViewer1.LocalReport.DataSources.Add(reportDataSource11);
            this.reportViewer1.LocalReport.DataSources.Add(reportDataSource12);
            this.reportViewer1.LocalReport.DataSources.Add(reportDataSource13);
            this.reportViewer1.LocalReport.DataSources.Add(reportDataSource14);
            this.reportViewer1.LocalReport.DataSources.Add(reportDataSource15);



            DateTime Fecha = (DateTime)factura["FechaFactura"];

            nombreFactura = factura["NumFactura"].ToString() + "-" + Fecha.Year.ToString() + " " + factura["DesCliente"].ToString();
            this.Text     = nombreFactura;
            this.reportViewer1.LocalReport.DisplayName          = nombreFactura;
            this.reportViewer1.LocalReport.EnableExternalImages = true;
            this.reportViewer1.RefreshReport();
        }