Пример #1
0
        private void InativarBeneficiosECompromissosPorCanaleUnidadeDeNegocios(CategoriasCanal categoriaDoCanal, Conta canal)
        {
            var lstBeneficiosDoCanal   = this.RepositoryService.BeneficioDoCanal.ListarPorContaUnidadeNegocio(canal.ID.Value, categoriaDoCanal.UnidadeNegocios.Id);
            var lstCompromissosDoCanal = this.RepositoryService.CompromissosDoCanal.ListarPorContaUnidade(canal.ID.Value, categoriaDoCanal.UnidadeNegocios.Id);

            foreach (var beneficioDoCanal in lstBeneficiosDoCanal)
            {
                if (!beneficioDoCanal.VerbaBrutaPeriodoAtual.HasValue || beneficioDoCanal.VerbaBrutaPeriodoAtual.Value == 0)
                {
                    if (beneficioDoCanal.Status.Value == (int)Enum.BeneficioDoCanal.StateCode.Ativo)
                    {
                        this.RepositoryService.BeneficioDoCanal.AtualizarStatus(beneficioDoCanal.ID.Value, (int)Enum.BeneficioDoCanal.StateCode.Inativo, (int)Enum.BeneficioDoCanal.StatusCode.Inativo);
                    }
                }
                else
                {
                    beneficioDoCanal.AcumulaVerba = false;
                    this.RepositoryService.BeneficioDoCanal.Update(beneficioDoCanal);
                }
            }

            foreach (var compromissoDoCanal in lstCompromissosDoCanal)
            {
                if (compromissoDoCanal.Status == (int)Enum.CompromissoCanal.Status.Ativo)
                {
                    this.RepositoryService.CompromissosDoCanal.AtualizarStatus(compromissoDoCanal.ID.Value, (int)Enum.CompromissoCanal.StateCode.Inativo, (int)Enum.CompromissoCanal.Status.Desativado);
                }
            }
        }
Пример #2
0
        private Intelbras.Message.Helper.MSG0122 DefinirPropriedades(CategoriasCanal crm)
        {
            Intelbras.Message.Helper.MSG0122 xml = new Pollux.MSG0122(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), Helper.Truncate(crm.Nome, 40));


            xml.CodigoCategoriaCanal = crm.ID.ToString();
            xml.Nome = crm.Nome;

            UnidadeNegocio unidade = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(crm.UnidadeNegocios.Id);

            if (unidade != null)
            {
                xml.UnidadeNegocio = unidade.ChaveIntegracao;
            }
            xml.Conta = crm.Canal.Id.ToString();
            //Categoria categ = new Servicos.CategoriaService(this.Organizacao, this.IsOffline).IntegracaoBarramento

            xml.Categoria        = crm.Categoria.Id.ToString();
            xml.Classificacao    = crm.Classificacao.Id.ToString();
            xml.SubClassificacao = crm.SubClassificacao.Id.ToString();
            xml.Situacao         = (crm.Status.HasValue ? crm.Status.Value : 0);
            xml.Proprietario     = "259A8E4F-15E9-E311-9420-00155D013D39";
            xml.TipoProprietario = "systemuser";

            return(xml);
        }
Пример #3
0
        public void InativarCategoriaDoCanal(CategoriasCanal categoriaDoCanal)
        {
            if (this.CanalEhFilialEApuracaoCentralizadaNaMatrizOuMatrizNaoPossuiACategoria(categoriaDoCanal))
            {
                return;
            }

            var canal = this.RepositoryService.Conta.Retrieve(categoriaDoCanal.Canal.Id);

            // Se Matriz e Apuração centralizada na Matriz
            if ((canal.TipoConta.HasValue && canal.TipoConta.Value == (int)Enum.Conta.MatrizOuFilial.Matriz) &&
                (canal.ApuracaoBeneficiosCompromissos.HasValue && canal.ApuracaoBeneficiosCompromissos.Value == (int)Enum.Conta.ApuracaoDeBeneficiosECompromissos.Centralizada_Na_Matriz))
            {
                this.InativarBeneficiosECompromissosPorCanaleUnidadeDeNegocios(categoriaDoCanal, canal);

                // Inativa a categoria nas Filiais.
                var lstFilias = this.RepositoryService.Conta.ListarContasFiliaisPorMatriz(canal.ID.Value);

                foreach (var filial in lstFilias)
                {
                    var lstCategoriasDaFilial = this.ListarPor(filial.ID.Value, categoriaDoCanal.UnidadeNegocios.Id);

                    foreach (var categoriaDaFilial in lstCategoriasDaFilial)
                    {
                        if (categoriaDaFilial.Status.Value == (int)Enum.CategoriaCanal.StateCode.Ativado)
                        {
                            this.RepositoryService.CategoriasCanal.AtualizarStatus(categoriaDaFilial.ID.Value, (int)Enum.CategoriaCanal.StateCode.Desativado, (int)Enum.CategoriaCanal.StatusCode.Inativo);
                        }
                    }
                }

                return;
            }

            // Se Matriz e Apuração por filial
            if ((canal.TipoConta.HasValue && canal.TipoConta.Value == (int)Enum.Conta.MatrizOuFilial.Matriz) &&
                (canal.ApuracaoBeneficiosCompromissos.HasValue && canal.ApuracaoBeneficiosCompromissos.Value == (int)Enum.Conta.ApuracaoDeBeneficiosECompromissos.Por_Filiais))
            {
                this.InativarBeneficiosECompromissosPorCanaleUnidadeDeNegocios(categoriaDoCanal, canal);
            }

            // Se Filial e Apuração por filial
            if ((canal.TipoConta.HasValue && canal.TipoConta.Value == (int)Enum.Conta.MatrizOuFilial.Filial) &&
                (canal.ApuracaoBeneficiosCompromissos.HasValue && canal.ApuracaoBeneficiosCompromissos.Value == (int)Enum.Conta.ApuracaoDeBeneficiosECompromissos.Por_Filiais))
            {
                this.InativarBeneficiosECompromissosPorCanaleUnidadeDeNegocios(categoriaDoCanal, canal);
            }
        }
Пример #4
0
        public Lookup ObterCategoriaPrincipalDoCanal(Conta canal)
        {
            List <CategoriasCanal> listaCategorias = RepositoryService.CategoriasCanal.ListarPor(canal);

            if (listaCategorias.Count > 0)
            {
                CategoriasCanal categoriaPrincipal = listaCategorias.First();

                if (categoriaPrincipal.Categoria.Name == "Ouro")
                {
                    return(categoriaPrincipal.Categoria);
                }

                ObterCategoriaPrincipal(listaCategorias, ref categoriaPrincipal);

                return(categoriaPrincipal.Categoria);
            }
            else
            {
                return(null);
            }
        }
Пример #5
0
        public string Enviar(CategoriasCanal objModel)
        {
            string resposta;

            Intelbras.Message.Helper.MSG0122 mensagem = DefinirPropriedades(objModel);

            Domain.Servicos.Integracao integracao = new Servicos.Integracao(this.Organizacao, this.IsOffline);
            if (integracao.EnviarMensagemBarramento(mensagem.GenerateMessage(true), "1", "1", out resposta))
            {
                Intelbras.Message.Helper.MSG0122R1 retorno = CarregarMensagem <Pollux.MSG0122R1>(resposta);
                if (!retorno.Resultado.Sucesso)
                {
                    throw new Exception(retorno.Resultado.Mensagem);
                }
            }
            else
            {
                Intelbras.Message.Helper.ERR0001 erro001 = CarregarMensagem <Pollux.ERR0001>(resposta);
                throw new Exception(erro001.GenerateMessage(false));
            }
            return(resposta);
        }
Пример #6
0
        private void ObterCategoriaPrincipal(List <CategoriasCanal> listaCategoriasDoCanal, ref CategoriasCanal categoriaPrincipal)
        {
            foreach (var item in listaCategoriasDoCanal)
            {
                item.Categoria.Name = EnumerarCategoria(item.Categoria.Name);
            }

            var IsNumber = new Regex("^[0-9]");

            foreach (var novo in listaCategoriasDoCanal)
            {
                if (IsNumber.IsMatch(novo.Categoria.Name))
                {
                    if (Convert.ToInt32(categoriaPrincipal.Categoria.Name) < Convert.ToInt32(novo.Categoria.Name))
                    {
                        categoriaPrincipal = novo;
                    }
                }
            }

            categoriaPrincipal.Categoria.Name = EnumerarCategoria(categoriaPrincipal.Categoria.Name, true);
        }
Пример #7
0
        /// <summary>
        /// Verifica se o canal da categoria de canal
        /// </summary>
        /// <param name="categoriasCanal"></param>
        /// <returns></returns>
        public bool CanalEhFilialEApuracaoCentralizadaNaMatrizOuMatrizNaoPossuiACategoria(CategoriasCanal categoriasCanal)
        {
            if (categoriasCanal.Canal == null || categoriasCanal.Canal.Id == Guid.Empty)
            {
                return(false);
            }

            var canal = this.RepositoryService.Conta.Retrieve(categoriasCanal.Canal.Id);

            if (!canal.TipoConta.HasValue || !canal.ApuracaoBeneficiosCompromissos.HasValue)
            {
                return(false);
            }

            if (canal.ParticipantePrograma == (int)Enum.Conta.ParticipaDoPrograma.Sim &&
                canal.TipoConta.Value == (int)Enum.Conta.MatrizOuFilial.Filial &&
                canal.ApuracaoBeneficiosCompromissos.Value == (int)Enum.Conta.ApuracaoDeBeneficiosECompromissos.Centralizada_Na_Matriz)
            {
                // Verifica se Existe a mesma categoria de canal na Matriz
                if (canal.ContaPrimaria != null)
                {
                    var categoriaNaMatriz = this.RepositoryService.CategoriasCanal.ListarPor(canal.ContaPrimaria.Id, categoriasCanal.UnidadeNegocios.Id, categoriasCanal.Classificacao.Id, categoriasCanal.SubClassificacao.Id, categoriasCanal.Categoria.Id);

                    if (categoriaNaMatriz == null || categoriaNaMatriz.Count == 0)
                    {
                        return(false);
                    }
                }
                return(true);
            }
            return(false);
        }
Пример #8
0
        public CategoriasCanal DefinirPropriedades(Intelbras.Message.Helper.MSG0122 xml)
        {
            var crm = new CategoriasCanal(this.Organizacao, this.IsOffline);

            return(crm);
        }