Ejemplo n.º 1
0
        private void frmIDE_Load(object sender, EventArgs e)
        {
            //frmImage f = new frmImage();
            //f.MdiParent = this;
            //f.WindowState = FormWindowState.Maximized;
            //f.Show();

            //comprobamos si se han pasado parámetros
            if (Environment.GetCommandLineArgs().Length > 1)
            {
                tmr_ExintorPorVencer.Enabled = true;
                tmr_ExintorPorVencer.Start();
                //String[] parametros = Environment.GetCommandLineArgs();

                string srtUsuario    = Environment.GetCommandLineArgs()[1];
                string srtClave      = Environment.GetCommandLineArgs()[2];
                string srtNombre     = Environment.GetCommandLineArgs()[3];
                string srtCodUnidadP = Environment.GetCommandLineArgs()[4];
                string srtCodCentroP = Environment.GetCommandLineArgs()[5];

                //srtUsuario = parametros[0].ToString();
                //srtClave = parametros[1].ToString();
                //srtNombre = parametros[2].ToString();
                //srtCodUnidadP = parametros[3].ToString();
                //srtCodCentroP = parametros[4].ToString();

                //for (int i = 0; i < parametros.Length; i++)
                //{
                //    MessageBox.Show("Parámetro " + parametros[i]);
                //}

                Encrypt objCrypto = new Encrypt(Encrypt.CryptoProvider.Rijndael);
                objCrypto.Key = Parametros.Key;
                objCrypto.IV  = Parametros.IV;

                string    _password    = objCrypto.CifrarCadena(srtClave);
                UsuarioBE objE_Usuario = new UsuarioBL().LogOnUser(srtUsuario.Trim(), _password);
                if (objE_Usuario != null)
                {
                    UnidadMineraBE objE_UnidadMinera = null;
                    objE_UnidadMinera = new UnidadMineraBL().SeleccionaParametros(srtCodUnidadP, srtCodCentroP);
                    if (objE_UnidadMinera != null)
                    {
                        List <UsuarioUnidadMineraBE> lstUsuarioUnidadMinera = null;
                        lstUsuarioUnidadMinera = new UsuarioUnidadMineraBL().ListaEmpresaUnidadUusuario(objE_UnidadMinera.IdEmpresa, objE_UnidadMinera.IdUnidadMinera, objE_Usuario.IdUser);
                        if (lstUsuarioUnidadMinera.Count == 0)
                        {
                            XtraMessageBox.Show("El usuario no tiene permiso para ver la unidad seleccionada", "Inicio Sesión", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            return;
                        }

                        Parametros.intPerfilId       = objE_Usuario.IdPerfil;
                        Parametros.strNomPerfil      = objE_Usuario.DescPerfil;
                        Parametros.intEmpresaId      = objE_UnidadMinera.IdEmpresa;
                        Parametros.intUnidadMineraId = objE_UnidadMinera.IdUnidadMinera;
                        Parametros.strEmpresaNombre  = objE_UnidadMinera.RazonSocial;
                        Parametros.strUnidadNombre   = objE_UnidadMinera.DescUnidadMinera;
                        Parametros.intUsuarioId      = objE_Usuario.IdUser;
                        Parametros.strUsuarioLogin   = objE_Usuario.Usuario;
                        Parametros.strUsuarioNombres = objE_Usuario.Descripcion;

                        //Obtenemos todos los permisos del usuario logueado
                        Parametros.pListaPermisoAcceso = new AccesoUsuarioBL().SeleccionaPermisoAcceso(objE_Usuario.Usuario, objE_Usuario.IdPerfil).ToList();
                    }
                }
                else
                {
                    //Crear el usuario
                    Encrypt objCryptoUsuario = new Encrypt(Encrypt.CryptoProvider.Rijndael);
                    objCryptoUsuario.Key = Parametros.Key;
                    objCryptoUsuario.IV  = Parametros.IV;
                    string Password = "";
                    Password = objCryptoUsuario.CifrarCadena(srtClave);

                    UsuarioBL objBL_Usuario = new UsuarioBL();
                    UsuarioBE objUsuario    = new UsuarioBE();

                    UnidadMineraBE objE_UnidadMinera = null;
                    objE_UnidadMinera = new UnidadMineraBL().SeleccionaParametros(srtCodUnidadP, srtCodCentroP);

                    objUsuario.IdEmpresa   = objE_UnidadMinera.IdEmpresa;
                    objUsuario.IdPerfil    = 3;
                    objUsuario.Descripcion = srtNombre;
                    objUsuario.Usuario     = srtUsuario;
                    objUsuario.Password    = Password;
                    objUsuario.FlagMaster  = false;
                    objUsuario.FlagEstado  = true;
                    objUsuario.UsuarioCrea = "master";
                    objUsuario.Maquina     = WindowsIdentity.GetCurrent().Name.ToString();
                    objUsuario.IdEmpresa   = objE_UnidadMinera.IdEmpresa;

                    //traemos los acceso del perfil de solo lectura
                    List <AccesoBE>              pListaAcceso              = new List <AccesoBE>();
                    List <AccesoUsuarioBE>       pListaAccesoUsuario       = new List <AccesoUsuarioBE>();
                    List <UsuarioUnidadMineraBE> pListaUsuarioUnidadMinera = new List <UsuarioUnidadMineraBE>();

                    pListaAcceso = new AccesoBL().SeleccionaPerfil(3);

                    foreach (AccesoBE item in pListaAcceso)
                    {
                        AccesoUsuarioBE accesousuario = null;
                        accesousuario                   = new AccesoUsuarioBE();
                        accesousuario.IdUser            = 0;
                        accesousuario.IdPerfil          = 3;
                        accesousuario.IdMenu            = item.IdMenu;
                        accesousuario.FlagLectura       = item.FlagLectura;
                        accesousuario.FlagAdicion       = item.FlagAdicion;
                        accesousuario.FlagActualizacion = item.FlagActualizacion;
                        accesousuario.FlagEliminacion   = item.FlagEliminacion;
                        accesousuario.FlagImpresion     = item.FlagImpresion;
                        accesousuario.FlagEstado        = item.FlagEstado;
                        accesousuario.TipoOper          = Convert.ToInt32(Operacion.Nuevo);
                        pListaAccesoUsuario.Add(accesousuario);
                    }

                    //Acceso de lectura a todas las unidades de la empresa
                    List <UnidadMineraBE> lstUnidadMinera = null;
                    lstUnidadMinera = new UnidadMineraBL().ListaTodosActivo(0);

                    foreach (var item in lstUnidadMinera)
                    {
                        UsuarioUnidadMineraBE objE_UsuarioUnidadMinera = null;
                        objE_UsuarioUnidadMinera = new UsuarioUnidadMineraBE();
                        objE_UsuarioUnidadMinera.IdUsuarioUnidadMinera = 0;
                        objE_UsuarioUnidadMinera.IdEmpresa             = item.IdEmpresa;
                        objE_UsuarioUnidadMinera.IdUser         = 0;
                        objE_UsuarioUnidadMinera.IdUnidadMinera = item.IdUnidadMinera;
                        objE_UsuarioUnidadMinera.FlagEstado     = true;
                        objE_UsuarioUnidadMinera.TipoOper       = Convert.ToInt32(Operacion.Nuevo);
                        pListaUsuarioUnidadMinera.Add(objE_UsuarioUnidadMinera);
                    }

                    objBL_Usuario.Inserta(objUsuario, pListaAccesoUsuario, pListaUsuarioUnidadMinera);

                    UsuarioBE objE_UsuarioLogueado = null;
                    objE_UsuarioLogueado = new UsuarioBL().SeleccionaUsuario(srtUsuario);
                    {
                        Parametros.intPerfilId       = objE_UsuarioLogueado.IdPerfil;
                        Parametros.strNomPerfil      = objE_UsuarioLogueado.DescPerfil;
                        Parametros.intEmpresaId      = objE_UnidadMinera.IdEmpresa;
                        Parametros.intUnidadMineraId = objE_UnidadMinera.IdUnidadMinera;
                        Parametros.strEmpresaNombre  = objE_UnidadMinera.RazonSocial;
                        Parametros.strUnidadNombre   = objE_UnidadMinera.DescUnidadMinera;
                        Parametros.intUsuarioId      = objE_UsuarioLogueado.IdUser;
                        Parametros.strUsuarioLogin   = objE_UsuarioLogueado.Usuario;
                        Parametros.strUsuarioNombres = objE_UsuarioLogueado.Descripcion;

                        //Obtenemos todos los permisos del usuario logueado
                        Parametros.pListaPermisoAcceso = new AccesoUsuarioBL().SeleccionaPermisoAcceso(objE_UsuarioLogueado.Usuario, objE_UsuarioLogueado.IdPerfil).ToList();
                    }
                }

                //Aqui se carga los menus del usuario en el Control Ribbon
                _ribbon = new Ribbon(this.ribbon, new AccesoUsuarioBL().SeleccionaUser(Parametros.intUsuarioId).ToList());
                _ribbon.Fill();
                _ribbon.RibbonClick += new Ribbon.delegateRibbonClick(_ribbon_RibbonClick);

                //Carga el Status Bar
                BarButtonItem stbButtonEmpresa = new DevExpress.XtraBars.BarButtonItem();
                stbButtonEmpresa.Caption = Parametros.strEmpresaNombre;

                BarButtonItem stbButtonTienda = new DevExpress.XtraBars.BarButtonItem();
                stbButtonTienda.Caption   = "  UNIDAD : " + Parametros.strUnidadNombre;
                stbButtonTienda.Alignment = BarItemLinkAlignment.Left;

                BarButtonItem stbButtonUsuario = new DevExpress.XtraBars.BarButtonItem();
                stbButtonUsuario.Caption   = "USUARIO : " + Parametros.strUsuarioNombres;
                stbButtonUsuario.Alignment = BarItemLinkAlignment.Right;

                ribbonStatusBar.ItemLinks.Add(stbButtonEmpresa);
                ribbonStatusBar.ItemLinks.Add(stbButtonTienda);
                ribbonStatusBar.ItemLinks.Add(stbButtonUsuario);

                if (Parametros.intPerfilId == 3)
                {
                    Cursor = Cursors.WaitCursor;
                    XtraForm form = new XtraForm();
                    form           = (XtraForm)System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("SSOMA.Presentacion.Modulos.SSOMABase.Registros.frmRegPlanilla");
                    form.MdiParent = this;
                    form.Text      = "SSOMA-Base";
                    form.Tag       = "SSOMA.Presentacion.Modulos.SSOMABase.Registros.frmRegPlanilla";
                    form.Show();
                    Cursor = Cursors.Default;
                }
            }
            else
            {
                //MessageBox.Show("No se han pasado parámetros, sólo el de defecto: " +
                //Environment.NewLine + Environment.NewLine +
                //Environment.GetCommandLineArgs()[0], "Parámetros en C#",
                //MessageBoxButtons.OK, MessageBoxIcon.Information);

                tmr_ExintorPorVencer.Enabled = true;
                tmr_ExintorPorVencer.Start();

                //Cargamos el Login
                Application.DoEvents();
                frmLogin fLogin = new frmLogin();
                fLogin.Owner = this;
                fLogin.ShowDialog();
                if (fLogin.DialogResult == DialogResult.Yes)
                {
                    //Aqui se carga los menus del usuario en el Control Ribbon
                    _ribbon = new Ribbon(this.ribbon, new AccesoUsuarioBL().SeleccionaUser(Parametros.intUsuarioId).ToList());
                    _ribbon.Fill();
                    _ribbon.RibbonClick += new Ribbon.delegateRibbonClick(_ribbon_RibbonClick);

                    //Carga el Status Bar
                    BarButtonItem stbButtonEmpresa = new DevExpress.XtraBars.BarButtonItem();
                    stbButtonEmpresa.Caption = Parametros.strEmpresaNombre;

                    BarButtonItem stbButtonTienda = new DevExpress.XtraBars.BarButtonItem();
                    stbButtonTienda.Caption   = "  UNIDAD : " + Parametros.strUnidadNombre;
                    stbButtonTienda.Alignment = BarItemLinkAlignment.Left;

                    BarButtonItem stbButtonUsuario = new DevExpress.XtraBars.BarButtonItem();
                    stbButtonUsuario.Caption   = "USUARIO : " + Parametros.strUsuarioNombres;
                    stbButtonUsuario.Alignment = BarItemLinkAlignment.Right;

                    ribbonStatusBar.ItemLinks.Add(stbButtonEmpresa);
                    ribbonStatusBar.ItemLinks.Add(stbButtonTienda);
                    ribbonStatusBar.ItemLinks.Add(stbButtonUsuario);

                    //-------------------------------------------------------------------------------------------------------------------------------
                    fLogin.Close();
                    fLogin.Dispose();

                    //SOLAMENTE A EJECUCIÓN DE LOS ADMINISTRADORES
                    if (Parametros.intPerfilId == 1)
                    {
                        ActualizaPersonal();
                    }
                }
                else
                {
                    Application.Exit();
                };
            }
        }
        private void btnIngresar_Click(object sender, EventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(cboEmpresa.Text))
                {
                    XtraMessageBox.Show("Seleccione la empresa", "Inicio Sesión", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    cboEmpresa.Focus();
                    return;
                }

                if (string.IsNullOrEmpty(cboUnidadMinera.Text))
                {
                    XtraMessageBox.Show("Seleccione la unidad minera", "Inicio Sesión", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    cboEmpresa.Focus();
                    return;
                }

                if (txtUsuario.Text.Trim().Length == 0)
                {
                    XtraMessageBox.Show("Ingrese el usuario.", "Inicio Sesión", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    txtUsuario.Focus();
                    return;
                }

                if (txtContraseña.Text.Trim().Length == 0)
                {
                    XtraMessageBox.Show("Ingrese la contraseña.", "Inicio Sesión", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    txtContraseña.Focus();
                    return;
                }



                Encrypt objCrypto = new Encrypt(Encrypt.CryptoProvider.Rijndael);
                objCrypto.Key = Parametros.Key;
                objCrypto.IV  = Parametros.IV;

                string    _password    = objCrypto.CifrarCadena(txtContraseña.Text.ToString());
                UsuarioBE objE_Usuario = new UsuarioBL().LogOnUser(txtUsuario.Text.ToString().Trim(), _password);
                if (objE_Usuario != null)
                {
                    List <UsuarioUnidadMineraBE> lstUsuarioUnidadMinera = null;
                    lstUsuarioUnidadMinera = new UsuarioUnidadMineraBL().ListaEmpresaUnidadUusuario(Convert.ToInt32(cboEmpresa.EditValue), Convert.ToInt32(cboUnidadMinera.EditValue), objE_Usuario.IdUser);
                    if (lstUsuarioUnidadMinera.Count == 0)
                    {
                        XtraMessageBox.Show("El usuario no tiene permiso para ver la unidad seleccionada", "Inicio Sesión", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        cboUnidadMinera.Focus();
                        return;
                    }

                    Parametros.intPerfilId       = objE_Usuario.IdPerfil;
                    Parametros.strNomPerfil      = objE_Usuario.DescPerfil;
                    Parametros.intEmpresaId      = int.Parse(cboEmpresa.EditValue.ToString());
                    Parametros.intUnidadMineraId = int.Parse(cboUnidadMinera.EditValue.ToString());
                    Parametros.strEmpresaNombre  = cboEmpresa.Text;
                    Parametros.strUnidadNombre   = cboUnidadMinera.Text;
                    Parametros.intUsuarioId      = objE_Usuario.IdUser;
                    Parametros.strUsuarioLogin   = objE_Usuario.Usuario;
                    Parametros.strUsuarioNombres = objE_Usuario.Descripcion;

                    //GUARDAR EN EL APP.Config
                    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                    config.AppSettings.Settings["Usuario"].Value = txtUsuario.Text.Trim();
                    config.AppSettings.Settings["Clave"].Value   = txtContraseña.Text.Trim();
                    config.Save(ConfigurationSaveMode.Modified);

                    //Obtenemos el area del usuario logueado

                    PersonaBE objE_Persona = null;
                    objE_Persona = new PersonaBL().SeleccionaDescripcion(0, 0, 0, objE_Usuario.Descripcion);
                    if (objE_Persona != null)
                    {
                        Parametros.intPersonaId   = objE_Persona.IdPersona;
                        Parametros.intAreaId      = objE_Persona.IdArea;
                        Parametros.strAreaNombre  = objE_Persona.DescArea;
                        Parametros.strCargoNombre = objE_Persona.Cargo;
                    }

                    //Obtenemos todos los permisos del usuario logueado
                    Parametros.pListaPermisoAcceso = new AccesoUsuarioBL().SeleccionaPermisoAcceso(objE_Usuario.Usuario, objE_Usuario.IdPerfil).ToList();

                    //SERVICIO WEB DE ACTUALIZACIÓN DE PERSONAL DE LA EMPRESA
                    //ServiceReference.InformacionClient servicio = new ServiceReference.InformacionClient();
                    //var data = servicio.ObtenerTrabajadores().ToList();


                    this.DialogResult = DialogResult.Yes;
                }
                else
                {
                    XtraMessageBox.Show("Usuario / Clave incorrecta.", "Inicio Sesión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }