public HttpResponseMessage GetByIdAndUnidade(int id, int unidadeId)
        {
            try
            {
                var faturamento = _faturamentoAplicacao.PrimeiroPor(x => x.IdSoftpark.HasValue && x.IdSoftpark.Value == id &&
                                                                    x.Unidade != null && x.Unidade.Id == unidadeId);

                if (faturamento == null)
                {
                    JsonResult.Message = "Faturamento Não Existe";
                    return(Request.CreateResponse(HttpStatusCode.NotFound, JsonResult));
                }

                var faturamentoViewModel = new FaturamentoViewModel(faturamento);

                JsonResult.Status = true;
                JsonResult.Object = faturamentoViewModel;
                return(Request.CreateResponse(HttpStatusCode.OK, JsonResult));
            }
            catch (Exception ex)
            {
                JsonResult.Status  = false;
                JsonResult.Message = ex.Message;
                return(Request.CreateResponse(HttpStatusCode.BadRequest, JsonResult));
            }
        }
Esempio n. 2
0
        public FaturamentoViewModel Faturar(FaturamentoViewModel faturamento)
        {
            var pedido = _pedidoService.ObterPorId(faturamento.PedidoId);

            faturamento.Parcelas.ToList().ForEach(p => p.FaturamentoId = faturamento.FaturamentoId);

            var faturamentoRetorno = _faturamentoService.Faturar(Mapper.Map <Faturamento>(faturamento));

            var valorTotalFaturamento = 0M;
            var faturamentosPedido    = _faturamentoService.ObterTodos(faturamento.PedidoId);

            foreach (var item in faturamentosPedido)
            {
                valorTotalFaturamento += item.Valor;
            }

            valorTotalFaturamento += faturamento.Valor;

            if (valorTotalFaturamento < pedido.ValorTotal)
            {
                var statusId = _statusPedidoService.ObterPorDescricao("Parcialmente Faturado")
                               .FirstOrDefault().StatusPedidoId;
                _pedidoService.AlterarStatus(statusId, faturamento.PedidoId);
            }
            else
            {
                var statusId = _statusPedidoService.ObterPorDescricao("Faturado")
                               .FirstOrDefault().StatusPedidoId;
                _pedidoService.AlterarStatus(statusId, faturamento.PedidoId);
            }

            Commit();
            return(Mapper.Map <FaturamentoViewModel>(faturamentoRetorno));
        }
        public HttpResponseMessage Billings([FromBody] FaturamentoViewModel faturamentoViewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.ErrorMessage));

                    if (string.IsNullOrEmpty(JsonResult.Message))
                    {
                        JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.Exception.Message));
                    }

                    return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, JsonResult));
                }

                var unidade = _unidadeAplicacao.BuscarPorId(faturamentoViewModel.Estacionamento.Id);
                var usuario = _usuarioServico.BuscarPorId(faturamentoViewModel.Operador.Id);

                if (usuario == null)
                {
                    JsonResult.Message = "Usuário Não Existe";
                    return(Request.CreateResponse(HttpStatusCode.NotFound, JsonResult));
                }

                var mensagemDeErro = Validar(faturamentoViewModel.Id, unidade);
                if (mensagemDeErro != null)
                {
                    return(mensagemDeErro);
                }

                var faturamento = faturamentoViewModel.ToEntity();
                faturamento.Unidade = unidade;
                faturamento.Usuario = usuario;

                var faturamentoExistenteComIdSoftpark = faturamento.IdSoftpark.HasValue ? _faturamentoAplicacao
                                                        .PrimeiroPor(x => x.IdSoftpark.HasValue &&
                                                                     x.IdSoftpark.Value == faturamento.IdSoftpark.Value &&
                                                                     x.Unidade != null && faturamento.Unidade != null &&
                                                                     x.Unidade.Id == faturamento.Unidade.Id) : null;

                if (faturamentoExistenteComIdSoftpark != null)
                {
                    faturamento.Id = faturamentoExistenteComIdSoftpark.Id;
                }

                _faturamentoAplicacao.Salvar(faturamento);

                JsonResult.Status = true;
                JsonResult.Object = faturamento;
                return(Request.CreateResponse(HttpStatusCode.Created, JsonResult.Message = "Faturamento Cadastrado!"));
            }
            catch (Exception ex)
            {
                JsonResult.Status  = false;
                JsonResult.Message = ex.Message;
                return(Request.CreateResponse(HttpStatusCode.BadRequest, JsonResult.Message));
            }
        }
Esempio n. 4
0
        public ActionResult Faturar(string faturamento)
        {
            FaturamentoViewModel faturamentoViewModel =
                _entitySerializationServicesFaturamento.Deserialize(faturamento);
            var _faturamentoRetorno = _faturamentoAppService.Faturar(faturamentoViewModel);

            TempData["Faturado"] = "Pedido Faturado com sucesso!";
            return(Json(_faturamentoRetorno.ValidationResult, JsonRequestBehavior.AllowGet));
        }
Esempio n. 5
0
        public FaturamentoViewModel Atualizar(FaturamentoViewModel faturamento)
        {
            var faturamentoRetorno = Mapper.Map <FaturamentoViewModel>
                                         (_faturamentoService.Atualizar(Mapper.Map <Faturamento>(faturamento)));

            if (faturamentoRetorno.EhValido())
            {
                Commit();
            }

            return(faturamentoRetorno);
        }