public PartialViewResult AddEditClinica(int? id)
 {
     var viewModal = new AdicionarClinicaViewModel
                         {
                             Gerentes = _gerenteRepositorio.ObterTodos(),
                             Representantes = _representanteRepositorio.ObterTodos(),
                             RepresentantesRegionais = _representanteRegionalRepositorio.ObterTodos(),
                             ListaDeStatus = typeof(StatusDaClinica).ToViewModel()
                         };
     if (id != null)
     {
         var clinica = _clinicaRepositorio.ObterPor(id.Value);
         viewModal.Codigo = clinica.Codigo;
         viewModal.CodigoDoResponsavel = User.ToPessoa().Usuario.Perfil.Grupo.Codigo;
         viewModal.Nome = clinica.Nome;
         viewModal.RazaoSocial = clinica.RazaoSocial;
         viewModal.Cnpj = clinica.Cnpj;
         viewModal.InscricaoEstadual = clinica.InscricaoEstadual;
         viewModal.Endereco = clinica.Endereco;
         viewModal.Cidade = clinica.Cidade;
         viewModal.Uf = clinica.Uf;
         viewModal.Telefone = clinica.Telefone;
         viewModal.Contato = clinica.Contato;
         viewModal.CodigoDoRepresentante = clinica.Representante != null ? clinica.Representante.Codigo : 0;
         viewModal.CodigoDoGerente = clinica.Gerente != null ? clinica.Gerente.Codigo : 0;
         viewModal.CodigoDoRepresentanteRegional = clinica.RepresentanteRegional != null ? clinica.RepresentanteRegional.Codigo : 0;
         viewModal.Observacoes = clinica.Observacoes;
         viewModal.Status = clinica.Status;
         viewModal.Email = clinica.Email;
         viewModal.Telefone2 = clinica.Telefone2;
         viewModal.Telefone3 = clinica.Telefone3;
         viewModal.IndicaNovosPacientes = clinica.IndicarNovosPacientes;
         viewModal.ValorInfusao = clinica.ValorDeInfusao;
         viewModal.Bairro = clinica.Bairro;
     }
     return PartialView("Clinica/AddEditClinica", viewModal);
 }
        public JsonResult AddEditClinica(AdicionarClinicaViewModel viewModal)
        {
            if (viewModal.Codigo > 0)
            {
                var clinicaOld = _clinicaRepositorio.ObterPor(viewModal.Codigo).Status; //Recuperando o Status Atual(Antes da mudança) da clinica na base.
                var resposta = AlterarClinica(viewModal);
                if (clinicaOld != StatusDaClinica.Ativo && viewModal.Status == StatusDaClinica.Ativo) //Comparação Se o Status anterior diferente de Ativo e se o novo Status é Igual a Ativo.
                {
                    using (var integraClinicaWs = new IntegraEssencial())
                    {
                        //Se o e-mail não existir na base do site essencial dispara o e-mail, para caso de a clinica ter tido status = Ativo algum dia não disparar o e-mail novamente para cada alteração.
                        if (integraClinicaWs.VerifyUser(resposta.Clinica.Email) == "FALSE")//Novo metodo no service VerifyUser(String email). Verifica se o e-mail existe na base do Essencial, se sim TRUE, se não FALSE.
                        {
                            integraClinicaWs.AddNewUser(resposta.Clinica.Email, "clinica#123", resposta.Clinica.Codigo, resposta.Clinica.Nome); //Envia Um e-mail com a senha.
                        }
                        else
                        {
                            integraClinicaWs.AddNewUserNotify(resposta.Clinica.Email, "clinica#123", resposta.Clinica.Codigo, resposta.Clinica.Nome);
                        }
                    }
                }
                return Json(new { resposta.Erros, resposta.Sucesso, Clinica = resposta.Clinica.ToViewModel() });

            }
            else
            {
                var resposta = AdicionarClinica(viewModal);
                if (resposta.Sucesso)
                {
                    resposta.Clinica.ToViewModel();

                    //Comentei esta rotina, pois o metodo AdicionarClinica já dispara um e-mail, assim estava disparando dois e-mails para o mesmo usuário com senhas diferentes.

                    //new IntegraEssencial().AddNewUser(viewModal.Email, "admin#123", viewModal.Codigo,
                    //                                  viewModal.Nome);
                }
                return Json(new { resposta.Erros, resposta.Sucesso, Clinica = resposta.Clinica.ToViewModel() });
            }
        }
 private AlterarClinicaReposta AlterarClinica(AdicionarClinicaViewModel viewModal)
 {
     var requisicao = new AlterarClinicaRequisicao
     {
         CodigoDaClinica = viewModal.Codigo,
         CodigoDoResponsavel = User.ToPessoa().Usuario.Perfil.Grupo.Codigo,
         Nome = viewModal.Nome,
         RazaoSocial = viewModal.RazaoSocial,
         Cnpj = viewModal.Cnpj,
         InscricaoEstadual = viewModal.InscricaoEstadual,
         Endereco = viewModal.Endereco,
         Cidade = viewModal.Cidade,
         Uf = viewModal.Uf,
         Telefone = viewModal.Telefone,
         Contato = viewModal.Contato,
         CodigoDoRepresentante = viewModal.CodigoDoRepresentante,
         CodigoDoRepresentanteRegional = viewModal.CodigoDoRepresentanteRegional,
         CodigoDoGerente = viewModal.CodigoDoGerente,
         Observacoes = viewModal.Observacoes,
         Status = viewModal.Status,
         Email = viewModal.Email,
         Telefone2 = viewModal.Telefone2,
         Telefone3 = viewModal.Telefone3,
         IndicaNovosPacientes = viewModal.IndicaNovosPacientes,
         ValorDeInfusao = viewModal.ValorInfusao,
         Bairro = viewModal.Bairro
     };
     return _clinicaServicoDeAplicacao.AlterarClinica(requisicao);
 }
        private AdicionarClinicaResposta AdicionarClinica(AdicionarClinicaViewModel viewModal)
        {
            var requisicao = new AdicionarClinicaRequisicao
            {
                CodigoDoPrograma = Session.ProgramaAtivo().Codigo,
                CodigoDoResponsavel = User.ToPessoa().Usuario.Perfil.Grupo.Codigo,
                Nome = viewModal.Nome,
                RazaoSocial = viewModal.RazaoSocial,
                Cnpj = viewModal.Cnpj,
                InscricaoEstadual = viewModal.InscricaoEstadual,
                Endereco = viewModal.Endereco,
                Cidade = viewModal.Cidade,
                Uf = viewModal.Uf,
                Telefone = viewModal.Telefone,
                Contato = viewModal.Contato,
                CodigoDoRepresentante = viewModal.CodigoDoRepresentante,
                CodigoDoRepresentanteRegional = viewModal.CodigoDoRepresentanteRegional,
                CodigoDoGerente = viewModal.CodigoDoGerente,
                Observacoes = viewModal.Observacoes,
                Status = viewModal.Status,
                Email = viewModal.Email,
                ValorInfusao = viewModal.ValorInfusao,
                Bairro = viewModal.Bairro
            };

            var resposta = _clinicaServicoDeAplicacao.AdicionarClinica(requisicao);

            if (resposta.Sucesso)
            {
                if (resposta.Clinica.Status == StatusDaClinica.Ativo) //Verifica se o status é igual a true para disparar o e-mail.
                {
                    using (var integraClinicaWs = new IntegraEssencial())
                    {
                        integraClinicaWs.AddNewUser(viewModal.Email, "clinica#123", resposta.Clinica.Codigo,
                                                    resposta.Clinica.Nome);
                    }
                }
            }

            return resposta;
        }
        public PartialViewResult AlterarForcaDeVenda(int id)
        {
            var viewModal = new AdicionarClinicaViewModel
            {
                Gerentes = _gerenteRepositorio.ObterTodos(),
                Representantes = _representanteRepositorio.ObterTodos(),
                RepresentantesRegionais = _representanteRegionalRepositorio.ObterTodos(),
            };

            var clinica = _clinicaRepositorio.ObterPor(id);
            viewModal.Codigo = clinica.Codigo;
            viewModal.CodigoDoRepresentante = clinica.Representante.Codigo;
            viewModal.CodigoDoGerente = clinica.Gerente.Codigo;
            viewModal.CodigoDoRepresentanteRegional = clinica.RepresentanteRegional.Codigo;

            return PartialView("Clinica/AlterarForcaDeVenda", viewModal);
        }