Esempio n. 1
0
        public new void Salvar(Filial entity)
        {
            if (!ObjetoValido(entity))
            {
                throw new BusinessRuleException("Objeto Invalido!");
            }

            var filialRetorno = BuscarPorId(entity.Id) ?? entity;

            filialRetorno.Id                = entity.Id;
            filialRetorno.Descricao         = entity.Descricao;
            filialRetorno.CNPJ              = entity.CNPJ;
            filialRetorno.Endereco          = entity.Endereco;
            filialRetorno.Contatos          = entity.Contatos;
            filialRetorno.DataInsercao      = entity.DataInsercao;
            filialRetorno.InscricaoEstadual = entity.InscricaoEstadual;
            filialRetorno.RazaoSocial       = entity.RazaoSocial;
            filialRetorno.Empresa           = entity.Empresa;
            filialRetorno.TipoFilial        = entity.TipoFilial;
            filialRetorno.Endereco.Cidade   = _cidadeAplicacao.BuscarPor(x => x.Descricao == entity.Endereco.Cidade.Descricao).FirstOrDefault() ?? entity.Endereco.Cidade;

            Servico.Salvar(filialRetorno);
        }
Esempio n. 2
0
        public new void Salvar(Cliente cliente, int usuarioId)
        {
            var retorno = BuscarPorId(cliente.Id) ?? cliente;

            if (retorno.Unidades == null)
            {
                retorno.Unidades = new List <ClienteUnidade>();
            }

            retorno.NomeFantasia = cliente.NomeFantasia;

            var unidades = _unidadeAplicacao.Buscar().ToList();

            retorno.Unidades.Clear();
            foreach (var idMenu in cliente.ListaUnidade)
            {
                retorno.Unidades.Add(new ClienteUnidade {
                    Unidade = unidades.FirstOrDefault(x => x.Id == idMenu)
                });
            }

            retorno.Id           = cliente.Id;
            retorno.TipoPessoa   = cliente.TipoPessoa;
            retorno.DataInsercao = cliente.DataInsercao;

            if (cliente.TipoPessoa == TipoPessoa.Juridica)
            {
                retorno.RazaoSocial          = string.IsNullOrEmpty(cliente.RazaoSocial) ? cliente.NomeFantasia : cliente.RazaoSocial;
                retorno.NomeFantasia         = cliente.NomeFantasia;
                retorno.Pessoa.DocumentoCnpj = cliente.Pessoa.DocumentoCnpj;
                retorno.Pessoa.DocumentoIe   = cliente.Pessoa.DocumentoIe;
                retorno.Pessoa.DocumentoIm   = cliente.Pessoa.DocumentoIm;
                LimparDadosPessoaFisica(ref retorno);
            }
            else if (cliente.TipoPessoa == TipoPessoa.Fisica)
            {
                retorno.Pessoa.Nome           = cliente.Pessoa.Nome;
                retorno.Pessoa.Sexo           = cliente.Pessoa.Sexo;
                retorno.Pessoa.DataNascimento = cliente.Pessoa.DataNascimento;
                retorno.Pessoa.DocumentoCpf   = cliente.Pessoa.DocumentoCpf;
                retorno.Pessoa.DocumentoRg    = cliente.Pessoa.DocumentoRg;
                LimparDadosPessoaJuridica(ref retorno);
            }

            retorno.NomeConvenio = cliente.NomeConvenio;
            retorno.Observacao   = cliente.Observacao;

            retorno.Pessoa.Contatos       = cliente.Pessoa.Contatos;
            retorno.Pessoa.Enderecos      = cliente.Pessoa.Enderecos;
            retorno.Veiculos              = cliente.Veiculos;
            retorno.Pessoa.Contatos       = cliente.Pessoa.Contatos?.Where(x => !string.IsNullOrEmpty(x.Contato.Email) || !string.IsNullOrEmpty(x.Contato.Numero))?.ToList();
            retorno.NotaFiscalSemDesconto = cliente.NotaFiscalSemDesconto;
            retorno.ExigeNotaFiscal       = cliente.ExigeNotaFiscal;

            foreach (var pessoaEndereco in retorno.Pessoa.Enderecos)
            {
                pessoaEndereco.Endereco.Cidade = pessoaEndereco.Endereco.Cidade == null
                    ? null
                    : _cidadeAplicacao.BuscarPor(endereco => endereco.Descricao == pessoaEndereco.Endereco.Cidade.Descricao).FirstOrDefault();
            }

            Servico.Salvar(retorno);

            SalvarContaCorrente(cliente, retorno);
            SalvarSelos(cliente);
            SalvarOcorrencias(cliente, usuarioId);

            try
            {
                var condutor = this.ConverterClienteParaCondutor(retorno);

                if ((condutor.Contratos != null && condutor.Contratos.Count > 0) || (condutor.ContratosCondomino != null && condutor.ContratosCondomino.Count > 0))
                {
                    _condutorSoftparkAplicacao.Salvar(condutor);
                }
            }
            catch (SoftparkIntegrationException ex)
            {
                throw new SoftparkIntegrationException("Registro salvo com sucesso!<br/>Porém encontramos um erro na integração com o PDV.<br/>Erro: " + ex.Message);
            }
        }