Example #1
0
        public void CriarSolicitacaoCriacaoFornecedor()
        {
            Solicitacao criacaoFornecedor = new SolicitacaoCadastro(_nelson, _sorteq);

            Assert.AreEqual(criacaoFornecedor.Criador, _nelson);
            Assert.AreEqual(criacaoFornecedor.Contratante, _nelson.Contratante);
        }
Example #2
0
        public void CriarSolicitacaoDeFornecedorComFluxo()
        {
            var         webForLink          = new Aplicacao("WebForLink", "Cadastro De Fornecedores");
            var         samarco             = new ClienteAncora("Samarco");
            var         nelson              = new Usuario("nelson", webForLink, samarco);
            TipoEmpresa pessoaJuridica      = new EmpressaPessoaJuridica();
            Empresa     sorteq              = new Fornecedor("Sorteq", "12345678900", pessoaJuridica);
            Solicitacao solicitacaoCadastro = new SolicitacaoCadastro(nelson, sorteq);

            Assert.IsNull(solicitacaoCadastro.Fluxo);

            var cadastro = new Fluxo(new FluxoCriacao(), samarco, pessoaJuridica);
            var a        = new Etapa("A");

            cadastro.AdicionarPassos(a, new Passo("A.1"), new Passo("A.2"));
            cadastro.AdicionarPassos(new Etapa("B"), new Passo("B.1"));
            cadastro.AdicionarPassos(new Etapa("C"), new Passo("C.1"), new Passo("C.2"), new Passo("C.3"));

            solicitacaoCadastro.SetFluxo(cadastro);

            Assert.AreEqual(solicitacaoCadastro.EtapaAtual, a);
            cadastro.AprovarPasso(new Passo("A.2"));

            //var cadastroDeFornecedor = new Fluxo(cadastroFornecedor, _samarco, _pessoaJuridica);
            //var cadastroFornecedor = new TipoFluxo("Cadastro de Fornecedor");
            //solicitacaoCadastro.Tipo.SetFluxo(cadastroDeFornecedor);
            //cadastroDeFornecedor.AdicionarEtapas(new Etapa("Solicitacao"), new Etapa("MDA"), new Etapa("Conclusão"));
            //Assert.AreEqual(cadastroDeFornecedor.EtapaAtual.Nome, "Solicitacao");
            //Assert.AreEqual(solicitacaoCadastro.Tipo.Fluxo.EtapaAtual.Nome, "Solicitacao");
        }
Example #3
0
        public SolicitacaoCadastro Persistir(SolicitacaoCadastro SolCadastro)
        {
            if (SolCadastro.ID.HasValue)
            {
                SolicitacaoCadastro tmpSolCad = RepositoryService.SolicitacaoCadastro.ObterPor(SolCadastro.ID.Value);

                if (tmpSolCad != null)
                {
                    //Para não tentar alterar status junto com o update
                    int statusAnterior = SolCadastro.Status.Value;
                    SolCadastro.Status = tmpSolCad.Status;
                    RepositoryService.SolicitacaoCadastro.Update(SolCadastro);
                    SolCadastro.Status = statusAnterior;
                    if (SolCadastro.State.HasValue &&
                        SolCadastro.Status.HasValue &&
                        !tmpSolCad.State.Equals(SolCadastro.State.Value) &&
                        (SolCadastro.Status.Value == (int)Intelbras.CRM2013.Domain.Enum.SolicitacaoCadastro.StatusSolicitacao.Criada ||
                         SolCadastro.Status.Value == (int)Intelbras.CRM2013.Domain.Enum.SolicitacaoCadastro.StatusSolicitacao.EmAnalise ||
                         SolCadastro.Status.Value == (int)Intelbras.CRM2013.Domain.Enum.SolicitacaoCadastro.StatusSolicitacao.Inativo))
                    {
                        MudarStatus(SolCadastro.ID.Value, SolCadastro.State.Value);
                    }
                    return(tmpSolCad);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                SolCadastro.ID = RepositoryService.SolicitacaoCadastro.Create(SolCadastro);
                return(SolCadastro);
            }
        }
Example #4
0
        public void CriarSolicitacaoCriacaoFornecedor()
        {
            var nelson = new Usuario("nelson.neto", new Aplicacao("WebForLink", ""),
                                     new ClienteAncora(""));
            Empresa sorteq = new Fornecedor("Sorteq", "12345678900", new EmpressaPessoaJuridica());
            // new TipoEmpresa("Fornecedor"));
            Solicitacao criacaoFornecedor = new SolicitacaoCadastro(nelson, sorteq);

            Assert.AreEqual(criacaoFornecedor.Criador, nelson);
            Assert.AreEqual(criacaoFornecedor.Solicitante, nelson.Contratante);
        }
Example #5
0
        public static void Send(string nome, string email, SolicitacaoCadastro solicitacao)
        {
            var message = new MimeMessage();

            message.To.Add(new MailboxAddress(nome, email));
            message.From.Add(new MailboxAddress("Central de Licitações", "*****@*****.**"));

            message.Subject = "Solicitação de Cadastro - Central de Licitação";
            message.Body    = new TextPart(TextFormat.Html)
            {
                Text = @$ "
                            <article style='padding-top: 90px'>
                                <h1 style='font-size: 2.1em;font-weight: 600;letter-spacing: 0.2em;line-height: 1.1em;margin: 0 0 0.6em 0; text-align: center'>CENTRAL DE LICITAÇÕES</h1>
                                <p style = 'font-family: &quot;Times New Roman&quot;, serif;line-height: 1.3em;margin: 0 0 1em 0' > Notificação </p>
Example #6
0
        public void CriarSolicitacaoDeFornecedorComFluxo()
        {
            TipoEmpresa pessoaJuridica      = new EmpresaPessoaJuridica();
            Empresa     sorteq              = new Fornecedor("Sorteq", "12345678900", pessoaJuridica);
            Solicitacao solicitacaoCadastro = new SolicitacaoCadastro(_nelson, sorteq);

            Assert.IsNull(solicitacaoCadastro.Fluxo);

            var cadastro = new Fluxo(new FluxoCriacao(), _samarco, pessoaJuridica);
            var a        = new Etapa("A");
            var b        = new Etapa("B");
            var c        = new Etapa("C");

            cadastro.AdicionarPassos(a, new Passo("A.1"), new Passo("A.2"));
            cadastro.AdicionarPassos(b, new Passo("B.1"));
            cadastro.AdicionarPassos(c, new Passo("C.1"), new Passo("C.2"), new Passo("C.3"));

            solicitacaoCadastro.SetFluxo(cadastro);

            Assert.AreEqual(solicitacaoCadastro.EtapaAtual, a);
            cadastro.AprovarPasso(new Passo("A.2"));
            Assert.AreEqual(solicitacaoCadastro.EtapaAtual, a);
            cadastro.AprovarPasso(new Passo("A.1"));
            Assert.AreEqual(solicitacaoCadastro.EtapaAtual, b);
            //---
            cadastro.AprovarPasso(new Passo("B.1"));
            Assert.AreEqual(solicitacaoCadastro.EtapaAtual, c);
            //---
            cadastro.AprovarPasso(new Passo("C.3"));
            Assert.AreEqual(solicitacaoCadastro.EtapaAtual, c);
            cadastro.AprovarPasso(new Passo("C.1"));
            Assert.AreEqual(solicitacaoCadastro.EtapaAtual, c);
            cadastro.ReprovarPasso(new Passo("C.1"));
            Assert.AreEqual(solicitacaoCadastro.EtapaAtual, c);
            cadastro.AprovarPasso(new Passo("C.1"));
            Assert.AreEqual(solicitacaoCadastro.EtapaAtual, c);
            cadastro.AprovarPasso(new Passo("C.2"));
            Assert.IsNull(solicitacaoCadastro.EtapaAtual);


            //var cadastroDeFornecedor = new Fluxo(cadastroFornecedor, _samarco, _pessoaJuridica);
            //var cadastroFornecedor = new TipoFluxo("Cadastro de Fornecedor");
            //solicitacaoCadastro.Tipo.SetFluxo(cadastroDeFornecedor);
            //cadastroDeFornecedor.AdicionarEtapas(new Etapa("Solicitacao"), new Etapa("MDA"), new Etapa("Conclusão"));
            //Assert.AreEqual(cadastroDeFornecedor.EtapaAtual.Nome, "Solicitacao");
            //Assert.AreEqual(solicitacaoCadastro.Tipo.Fluxo.EtapaAtual.Nome, "Solicitacao");
        }
Example #7
0
 public void CriarSolicitacaoDeCadastro()
 {
     Solicitacao solicitacaoDeCadastro = new SolicitacaoCadastro(_nelson, _sorteq);
 }
Example #8
0
 public void CriarSolicitacaoDeCadastro()
 {
     Solicitacao solicitacaoDeCadastro = new SolicitacaoCadastro(_nelson, _sorteq);
     //Assert.AreEqual(solicitacaoDeCadastro.Tipo.Descricao, "Cadastro de Pessoa Jurídica");
 }
Example #9
0
 public List <SolicitacaoCadastro> ListarSolicitacaoCadastro(SolicitacaoCadastro solCadastro, DateTime?dtInicio, DateTime?dtFim)
 {
     return(RepositoryService.SolicitacaoCadastro.ListarPorConta(solCadastro.Representante.Id, dtInicio, dtFim, solCadastro.Status));
 }
        public void CriacaoDeTarefasSolicitacaoDeCadastro(SolicitacaoCadastro SolCadastro, Guid usuarioId, int Ordem)
        {
            Model.Processo tmpProcesso = RepositoryService.Processo.ObterPorTipoDeSolicitacao(SolCadastro.TipoDeSolicitacao.Id, null);

            if (tmpProcesso == null)
            {
                return;
            }

            string ParecerAnterior = String.Empty;

            if (Ordem > 1)
            {
                //Busca os pareceres anteriores.
                //SolCadastro.ID.Value
                ParecerAnterior = OrdemMaior1(SolCadastro.ID.Value);
            }

            List <ParticipantesDoProcesso> lstParticipanteDoProcesso = RepositoryService.ParticipantesDoProcesso.ListarPor(tmpProcesso.ID.Value, Ordem);
            bool CriouTarefa = false;

            foreach (ParticipantesDoProcesso PartProcesso in lstParticipanteDoProcesso)
            {
                Lookup referenteA = new Lookup(SolCadastro.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <SolicitacaoCadastro>());
                CriouTarefa = false;
                if (PartProcesso.Papel.Name == "Informado")
                {
                    this.CriarEmail(referenteA, PartProcesso);

                    #region código comentado, foi isolado um método generico citado acima
                    //var email = new Domain.Model.Email(NomeDaOrganizacao, _isOffline);
                    //email.Assunto = "a definir";
                    //email.Mensagem = "a definir";
                    //email.De = new Lookup[1];
                    //email.De[0] = new Lookup { Id = SolCadastro.Proprietario.Id, Type = SolCadastro.Proprietario.Type };
                    //email.RefenteA = new Lookup { Id = SolCadastro.ID.Value, Type = "itbc_solicitacaodecadastro" };

                    //if (PartProcesso.Equipe != null)
                    //{
                    //    List<TeamMembership> lstTeam = RepositoryService.TeamMembership.ListarPor(PartProcesso.Equipe.Id);
                    //    email.Para = new Lookup[lstTeam.Count()];
                    //    int i = 0;

                    //    foreach (TeamMembership team in lstTeam)
                    //    {
                    //        email.Para[i] = new Lookup { Id = team.Usuario, Type = "systemuser" };
                    //        i++;
                    //    }
                    //}

                    //if (PartProcesso.Usuario != null)
                    //{
                    //    email.Para = new Lookup[1];
                    //    email.Para[0] = new Lookup { Id = PartProcesso.Usuario.Id, Type = PartProcesso.Usuario.Type };
                    //}

                    //if (PartProcesso.Contato != null)
                    //{
                    //    email.Para = new Lookup[1];
                    //    email.Para[0] = new Lookup { Id = PartProcesso.Contato.Id, Type = PartProcesso.Contato.Type };
                    //}

                    //email.Direcao = false;
                    //email.ID = RepositoryService.Email.Create(email);

                    ////RepositoryService.RepositorioEmail.EnviarEmail(email.ID.Value);
                    #endregion
                }
                else
                {
                    CriouTarefa = this.CriarTarefa(referenteA, SolCadastro.TipoDeSolicitacao.Name, SolCadastro.Descricao, ParecerAnterior, PartProcesso);

                    #region código comentado, foi isolado um método generico citado acima
                    //Model.Tarefa task = new Model.Tarefa(NomeDaOrganizacao, _isOffline);
                    //task.Assunto = "Plugin - " + SolCadastro.Nome;
                    //task.ReferenteA = new Lookup(SolCadastro.ID.Value, "itbc_solicitacaodecadastro");
                    //task.Assunto = PartProcesso.Papel.Name + " - " + SolCadastro.TipoDeSolicitacao.Name;
                    //task.Ordem = PartProcesso.Ordem;
                    //task.PareceresAnteriores = ParecerAnterior;
                    //task.DescricaoSolicitacao = SolCadastro.Descricao;
                    //task.Conclusao = DateTime.Now.AddDays(1).AddHours(3);


                    //TipoDeAtividade tmpTipoDeAtividade = RepositoryService.TipoDeAtividade.ObterPorPapel(PartProcesso.Papel.Id);

                    //if (tmpTipoDeAtividade == null)
                    //    throw new ArgumentException("Tipo de Atividade do Participante Não Encontrado!");

                    //if (tmpTipoDeAtividade.ID.HasValue)
                    //    task.TipoDeAtividade = new Lookup(tmpTipoDeAtividade.ID.Value, "itbc_tipoatividade");

                    //if (PartProcesso.Equipe != null)
                    //    task.Proprietario = new Lookup(PartProcesso.Equipe.Id, PartProcesso.Equipe.Type);

                    //if (PartProcesso.Usuario != null)
                    //    task.Proprietario = new Lookup(PartProcesso.Usuario.Id, PartProcesso.Usuario.Type);

                    //if (PartProcesso.Contato != null)
                    //    task.Proprietario = new Lookup(PartProcesso.Contato.Id, PartProcesso.Contato.Type);

                    //RepositoryService.Tarefa.Create(task);
                    //CriouTarefa = true;
                    #endregion
                }

                if (!CriouTarefa)
                {
                    CriacaoDeTarefasSolicitacaoDeCadastro(SolCadastro, usuarioId, Ordem + 1);
                }
            }
        }
        public bool CriarTarefa(Lookup referenteA, string tiposolicitacaonome, string descricao, string ParecerAnterior, ParticipantesDoProcesso PartProcesso)
        {
            Guid   idProprietario   = Guid.Empty;
            string tipoProprietario = "";

            Model.Tarefa task = new Model.Tarefa(NomeDaOrganizacao, _isOffline);
            Model.SolicitacaoBeneficio tmpSolBen = new SolicitacaoBeneficio(NomeDaOrganizacao, _isOffline);
            Model.SolicitacaoCadastro  tmpSolCad = new SolicitacaoCadastro(NomeDaOrganizacao, _isOffline);

            List <RelacionamentoCanal> lstRelacionamento = new List <RelacionamentoCanal>();

            task.Assunto              = "Plugin - " + referenteA.Name;
            task.ReferenteA           = new Lookup(referenteA.Id, referenteA.Type);
            task.Assunto              = PartProcesso.Papel.Name + " - " + tiposolicitacaonome;
            task.Ordem                = PartProcesso.Ordem;
            task.PareceresAnteriores  = ParecerAnterior;
            task.DescricaoSolicitacao = descricao;
            task.Conclusao            = DateTime.Now.AddDays(1).AddHours(3);

            TipoDeAtividade tmpTipoDeAtividade = RepositoryService.TipoDeAtividade.ObterPorPapel(PartProcesso.Papel.Id);

            if (tmpTipoDeAtividade == null)
            {
                throw new ArgumentException("Tipo de Atividade do Participante Não Encontrado! : " + PartProcesso.Papel.Name + " : " + PartProcesso.Papel.Id.ToString());
            }

            if (tmpTipoDeAtividade.ID.HasValue)
            {
                task.TipoDeAtividade = new Lookup(tmpTipoDeAtividade.ID.Value, "itbc_tipoatividade");
            }

            if (PartProcesso.Equipe != null)
            {
                idProprietario   = PartProcesso.Equipe.Id;
                tipoProprietario = PartProcesso.Equipe.Type;
            }

            if (PartProcesso.Usuario != null)
            {
                idProprietario   = PartProcesso.Usuario.Id;
                tipoProprietario = PartProcesso.Usuario.Type;
            }

            if (PartProcesso.Contato != null)
            {
                idProprietario   = PartProcesso.Contato.Id;
                tipoProprietario = PartProcesso.Contato.Type;
            }

            if (PartProcesso.PapelNoCanal.HasValue)
            {
                if (referenteA.Type.ToLower().Equals(SDKore.Crm.Util.Utility.GetEntityName <SolicitacaoCadastro>().ToLower()))
                {
                    tmpSolCad         = RepositoryService.SolicitacaoCadastro.Retrieve(referenteA.Id);
                    lstRelacionamento = RepositoryService.RelacionamentoDoCanal.ListarPor(tmpSolCad.Canal.Id);
                }
                if (referenteA.Type.ToLower().Equals(SDKore.Crm.Util.Utility.GetEntityName <SolicitacaoBeneficio>().ToLower()))
                {
                    tmpSolBen         = RepositoryService.SolicitacaoBeneficio.Retrieve(referenteA.Id);
                    lstRelacionamento = RepositoryService.RelacionamentoDoCanal.ListarPor(tmpSolBen.Canal.Id);
                }


                if (PartProcesso.PapelNoCanal.Value == (int)Domain.Enum.ParticipanteDoCanal.PapelNoCanal.DiretorDeUnidade)
                {
                    if (lstRelacionamento.First <RelacionamentoCanal>().Supervisor == null)
                    {
                        throw new ArgumentException("Diretor da Unidade Não encontrado. Não é possivel criar o próximo passo de Tarefa!");
                    }

                    Usuario _usuario = new Intelbras.CRM2013.Domain.Servicos.UsuarioService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline).ObterPor(lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Id);

                    if (_usuario == null)
                    {
                        throw new ArgumentException("Não foi encontrado o usuário.");
                    }

                    if (_usuario.Gerente == null)
                    {
                        throw new ArgumentException("Gerente do Supervisor não confiurado.Operação cancelada.");
                    }

                    //Descemos mais um nivel para pegar o gerente do gerente
                    _usuario = new Intelbras.CRM2013.Domain.Servicos.UsuarioService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline).ObterPor(_usuario.Gerente.Id);

                    if (_usuario == null)
                    {
                        throw new ArgumentException("Não foi encontrado o usuário.");
                    }

                    if (_usuario.Gerente == null)
                    {
                        throw new ArgumentException("Gerente do Supervisor não confiurado.Operação cancelada.");
                    }

                    idProprietario   = _usuario.Gerente.Id;
                    tipoProprietario = _usuario.Gerente.Type;
                }

                if (PartProcesso.PapelNoCanal.Value == (int)Domain.Enum.ParticipanteDoCanal.PapelNoCanal.GerenteNacionalGerenteDeDistribuicao)
                {
                    if (lstRelacionamento.First <RelacionamentoCanal>().Supervisor == null)
                    {
                        throw new ArgumentException("Gerente Nacional Gerente De Distribuicao Não encontrado. Não é possivel criar o próximo passo de Tarefa!");
                    }

                    Usuario _usuario = new Intelbras.CRM2013.Domain.Servicos.UsuarioService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline).ObterPor(lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Id);

                    if (_usuario == null)
                    {
                        throw new ArgumentException("Não foi encontrado o usuário.");
                    }

                    if (_usuario.Gerente == null)
                    {
                        throw new ArgumentException("Gerente do Supervisor não confiurado.Operação cancelada.");
                    }

                    idProprietario   = _usuario.Gerente.Id;
                    tipoProprietario = _usuario.Gerente.Type;
                }

                if (PartProcesso.PapelNoCanal.Value == (int)Domain.Enum.ParticipanteDoCanal.PapelNoCanal.KeyAccountRepresentante)
                {
                    if (lstRelacionamento.First <RelacionamentoCanal>().Supervisor != null)
                    {
                        idProprietario   = lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Id;
                        tipoProprietario = lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Type;
                    }
                    else
                    {
                        throw new ArgumentException("Key Account Representante Não encontrado. Não é possivel criar o próximo passo de Tarefa!");
                    }
                }

                if (PartProcesso.PapelNoCanal.Value == (int)Domain.Enum.ParticipanteDoCanal.PapelNoCanal.SupervisorDeVendas)
                {
                    if (lstRelacionamento.First <RelacionamentoCanal>().Supervisor != null)
                    {
                        idProprietario   = lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Id;
                        tipoProprietario = lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Type;
                    }
                    else
                    {
                        throw new ArgumentException("Supervisor De Vendas Não encontrado. Não é possivel criar o próximo passo de Tarefa!");
                    }
                }
            }

            Guid idTask = RepositoryService.Tarefa.Create(task);

            if (idTask != Guid.Empty)
            {
                new Domain.Servicos.UtilService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).MudarProprietarioRegistro(tipoProprietario, idProprietario, "task", idTask);
            }
            return(true);
        }
Example #12
0
 public string Enviar(SolicitacaoCadastro objModel)
 {
     return(String.Empty);
 }
Example #13
0
 public static void EnviarNovaSolicitacaoCadastro(string nome, string email, SolicitacaoCadastro solicitacao)
 => NovaSolicitacaoCadastro.Send(nome, email, solicitacao);