Ejemplo n.º 1
0
        public static EmpresaRN GetInstance()
        {
            if (_instancia == null)
            {
                _instancia = new EmpresaRN();
            }

            return(_instancia);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }