Ejemplo n.º 1
0
        public ActionResult Cadastrar([Bind(Include = "Descricao, Documento, NomeFantasia, InscricaoEstadual, Telefone, VendedorId, SituacaoCadastral, Segmento, ClassificacaoFiscal, Logradouro, Bairro, Numero, Complemento, CEP, Estado, CidadeId, PaisId, Blacklist")] ContaViewModel viewModel)
        {
            var contaExistente = _contaRepositorio.ContaExistente(viewModel.Descricao, viewModel.Documento);

            if (contaExistente != null)
            {
                ModelState.AddModelError(string.Empty, $"Já existe uma Conta cadastrada com o mesmo CNPJ. (Cód: {contaExistente.Id} - {contaExistente.Descricao} - CNPJ: {contaExistente.Documento})");
            }

            if (ModelState.IsValid)
            {
                var conta = new Conta(
                    User.ObterId(),
                    viewModel.Descricao,
                    viewModel.Documento,
                    viewModel.NomeFantasia,
                    viewModel.InscricaoEstadual,
                    viewModel.Telefone,
                    viewModel.VendedorId,
                    viewModel.SituacaoCadastral,
                    viewModel.Segmento,
                    viewModel.ClassificacaoFiscal,
                    viewModel.Logradouro,
                    viewModel.Bairro,
                    viewModel.Numero,
                    viewModel.Complemento,
                    viewModel.CEP,
                    viewModel.Estado,
                    viewModel.CidadeId,
                    viewModel.PaisId,
                    viewModel.Blacklist);

                if (Validar(conta))
                {
                    conta.Id            = _contaRepositorio.Cadastrar(conta);
                    TempData["Sucesso"] = true;

                    GravarLogAuditoria(TipoLogAuditoria.INSERT, conta);

                    return(RedirectToAction("Atualizar", "Contas", new { id = conta.Id }));
                }
            }

            PopularVendedores(viewModel);
            PopularPaises(viewModel);
            PopularCidades(viewModel);

            return(View(viewModel));
        }