public AcessoDTO Entrar(AcessoDTO acesso) { try { //Obter a Empresa Princial do Sistema EmpresaDTO entidade = EmpresaRN.GetInstance().ObterEmpresaSistema(); acesso.FuncionarioID = acesso.Codigo.ToString(); // Obter a Série de Facturação int SerieFaturacao = GetPeriodoFaturacao(entidade.Codigo); if (string.IsNullOrEmpty(entidade.MensagemErro)) { if (entidade.Codigo == 0) { if (isMasterAdmin(acesso.Utilizador)) { acesso.Url = "CreateBranch"; } else { acesso.MensagemErro = "Ops!! a sua conta de Utilizador não tem autorização para acessar o Sistema"; } } else if (SerieFaturacao <= 0) { acesso.MensagemErro = "O Sistema não tem uma Série de Facturação configurada. Deve Contactar a Equipa da LucanSoft para configuração do mesmo"; } else { bool userTemAcessoAoSistema = false; if (!acesso.IsRestUser) { if (string.IsNullOrEmpty(acesso.Filial)) // A partir da Página de Login { userTemAcessoAoSistema = UtilizadorRN.GetInstance().isAccessAllowed(acesso.Utilizador, acesso.CurrentPassword); } else { userTemAcessoAoSistema = true; /* * var userDetails = UtilizadorRN.GetInstance().ObterPorPK(new UtilizadorDTO { Utilizador = acesso.Utilizador }); * acesso.CurrentPassword = userDetails.CurrentPassword;*/ } } else { // Em caso de Utilizador Vindo Módulo de Restauração(KitandaRest) var PostOfSales = PosRN.GetInstance().GetPostOfSalesDetails(new PosDTO { Codigo = acesso.Codigo, Filial = "-1" }); if (PostOfSales != null && PostOfSales.Estado == 1) { if (PostOfSales.PinCode == "fc0iUkg331qk3V8HY6MWvQ==" || PostOfSales.PinCode == string.Empty) { acesso.MensagemErro = "ShowModal('" + acesso.Utilizador + "', '" + acesso.Codigo + "');"; } else if (PostOfSales.PinCode == acesso.CurrentPassword) { userTemAcessoAoSistema = true; acesso.CurrentPassword = PostOfSales.CurrentPassword; } else { acesso.MensagemErro = "PIN Incorrecto, digite novamente"; } } else { acesso.MensagemErro = "A Conta de Utilizador ou Posto de Venda desactivado"; } } if (userTemAcessoAoSistema) { acesso.Codigo = entidade.Codigo; GenericRN clsGeneric = new GenericRN(); /* * Tuple<bool, string> serverCredencials = clsGeneric.CheckServer(); * * IPHostEntry hostEntry = Dns.GetHostEntry(serverCredencials.Item2); * * if (!serverCredencials.Item1 && serverCredencials.Item2!=dto.IP) * { * hostEntry = Dns.GetHostEntry(serverCredencials.Item2); * string hostName = hostEntry.HostName; * } * * if (!LicenseRN.GetInstance().ExistLicFile(acesso.Url)) * { * if (isMasterAdmin(acesso.Utilizador)) * { * var licenca = LicenseRN.GetInstance().GenerateLicense(new LicencaDTO * { * Filial = entidade.NomeCompleto, * HostName = acesso.ServerName, * HostMacAddress = acesso.IP, * LicType = "F" * }, acesso.Url); * * acesso.MensagemErro = licenca.MensagemErro!="" ? licenca.MensagemErro : string.Empty; * } * else * { * acesso.MensagemErro = "O Sistema não tem Licença Válida"; * } * } * else * { * var IsValidLicense = LicenseRN.GetInstance().GetSystemValidLicense(new LicencaDTO * { * HostName = acesso.ServerName * }); * * if (!IsValidLicense.Item1) * { * acesso.MensagemErro = IsValidLicense.Item2; * } * }*/ } else { if (acesso.MensagemErro == string.Empty) { acesso.MensagemErro = "Ops!! O nome de Utilizador ou a senha estão incorrectos. Volte a Tentar"; } } if (userTemAcessoAoSistema && acesso.MensagemErro == string.Empty) { string pFrom = acesso.IsRestUser ? LOCKSCREEN : string.Empty; IniciarSessao(acesso, SerieFaturacao, acesso.CurrentSystem, pFrom, acesso.Filial); } } } else { acesso.MensagemErro = "Ocorreu um erro ao durante a obtenção dos dados da empresa licenciada: " + entidade.MensagemErro; } }catch (Exception ex) { acesso.MensagemErro = "Erro durante a entrada no Sistema: " + ex.Message.Replace("'", ""); } return(acesso); }
private AcessoDTO IniciarSessao(AcessoDTO pAcesso, int pSerieFaturacao, string pSys, string pFrom, string pEmpresaSeleccionada) { try { UtilizadorDTO user = UtilizadorRN.GetInstance().ObterPorPK(new UtilizadorDTO(pAcesso.Utilizador)); pAcesso.UserID = user.Codigo; pAcesso.Utilizador = user.Utilizador; pAcesso.SocialName = user.SocialName; pAcesso.UserProfile = user.Perfil.Codigo; pAcesso.Supervisor = user.Supervisor; pAcesso.CurrentPassword = user.CurrentPassword; EmpresaDTO empresa; List <EmpresaDTO> filiais; if (isMasterAdmin(user.Utilizador)) { filiais = EmpresaRN.GetInstance().ObterTodas(); ParametrizarAdmin(); foreach (var unidade in filiais) { EmpresaRN.GetInstance().IncluirUtilizador(new UtilizadorDTO(user.Utilizador, unidade.Codigo)); } } else { filiais = EmpresaRN.GetInstance().ObterMinhasFiliais(user.Utilizador); } empresa = !string.IsNullOrEmpty(pEmpresaSeleccionada) ? filiais.Where(t => t.Codigo == int.Parse(pEmpresaSeleccionada)).ToList().FirstOrDefault() : filiais.FirstOrDefault(); if (empresa == null) { if (isMasterAdmin(user.Utilizador)) { pAcesso.Url = "RegistarSucursal"; } else { pAcesso.MensagemErro = "Lamentamos, mas a sua conta de Utilizador não tem permissão para aceder as Unidades Filiais do Sistema. Por favor contacte o Administrador do Sistema."; } } else { if (filiais.Count > 1 && string.IsNullOrEmpty(pEmpresaSeleccionada)) { pAcesso.Url = "BranchSelection"; pAcesso.Sucesso = true; pAcesso.CompanyName = "Seleccione a Empresa"; pAcesso.CompanyLogo = "../template/app-assets/upload/favicon.png"; } else { pAcesso = LoadSelectedBranchSettings(pAcesso, pSerieFaturacao, pSys, pFrom, empresa); } } } catch (Exception ex) { pAcesso.MensagemErro = "alert('Ocorreu um Erro durante no inicio de Sessão: " + ex.Message.Replace("'", "") + "');"; } return(pAcesso); }