Beispiel #1
0
        public async Task <IActionResult> AdicionarOrcamento([FromBody] AdicionarOrcamentoRequest request)
        {
            try
            {
                var response = _serviceOrcamento.AdicionarOrcamento(request, RetornaIdUsuarioLogado());

                return(await ResponseAsync(response, _serviceOrcamento));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Beispiel #2
0
        public AdicionarOrcamentoResponse AdicionarOrcamento(AdicionarOrcamentoRequest request, Guid idUsuario)
        {
            if (request == null)
            {
                AddNotification("Resquest", "Invalido");
                return(null);
            }
            var fornecedor = _repositoryUsuario.ObterPorId(idUsuario);

            if (_repositoryOrcamento.Existe(x => x.IdExterno == request.IdExterno &&
                                            x.FornecedorSolicitante.Id == idUsuario))
            {
                AddNotification("Id Externo", "Já existe um Orçamento desta empresa com este Id");
            }

            List <Solicitacao> solicitacoes = new List <Solicitacao>();

            foreach (var item in request.IdExternoSolicitacao)
            {
                var solicitacao = _repositoryOrcamento.VerificaIdExternoSolicitacao(idUsuario, item);

                if (solicitacao != null)
                {
                    solicitacoes.Add(solicitacao);
                }
                else
                {
                    AddNotification("Id Externo Solicitação", "Inválido, confirme se o mesmo existe. Número: " + item);
                }
            }


            var itens = PopulaItemOrcamento(request.Itens);

            var orcamento = new Entities.Orcamento(fornecedor, request.IdExterno, request.ValorTotal, request.Frete, request.Seguro, request.FormaPagamento,
                                                   request.Parcelas, itens);


            AddNotifications(orcamento);

            if (IsInvalid())
            {
                return(null);
            }


            orcamento = _repositoryOrcamento.AdicionarOrcamentoCompleto(orcamento, solicitacoes);

            return(new AdicionarOrcamentoResponse(orcamento.Id, request.IdExterno));
        }