Beispiel #1
0
        public ActionResult Logistica(Logistica logistica, int idRequisicao)
        {
            var requisicao = service.Find(idRequisicao);

            ViewBag.Departamento  = requisicao.Departamento.Descricao;
            ViewBag.EntregarDia   = requisicao.EntregarDia.ToShortDateString();
            ViewBag.SolicitadoPor = requisicao.SolicitadoPor.Nome;
            ViewBag.Situacao      = requisicao.Situacao.ToString();
            ViewBag.Id            = requisicao.Id;

            try
            {
                if (ModelState.IsValid)
                {
                    serviceRequisicao.SendToLogistica(logistica, idRequisicao);
                    return(RedirectToAction("Index"));
                }

                return(View(logistica));
            }
            catch (Exception e)
            {
                ModelState.AddModelError(string.Empty, e.Message);
                return(View(logistica));
            }
        }
        public void Comprar(ReqComprar item)
        {
            try
            {
                if (item.PrevisaoEntrega < DateTime.Today.Date)
                {
                    throw new ArgumentException("Previsão de entrega inválida");
                }

                if (item.Parcela.Count() == 0)
                {
                    throw new ArgumentException("Informe ao menos uma parcela para pagamento");
                }

                // grava pedido
                item.Requisicao.PedidoId = gravarPedido(item);

                // grava parcelas
                item = gravarParcelas(item);

                // atualiza situacao da requisicao
                item.Requisicao.Situacao = Situacao.Comprada;
                serviceRequisicao.Gravar(item.Requisicao);

                // agenda logistica
                if (item.AgendarLogistica == true)
                {
                    serviceRequisicaoLogistica.SendToLogistica(new Logistica
                    {
                        ConcluidoObserv = string.Empty,
                        DataServico     =
                            item.Requisicao.EntregarDia,
                        EmpresaId   = item.Requisicao.Departamento.IdEmpresa,
                        Observ      = string.Empty,
                        MotoristaId = 0,
                        UsuarioId   = item.Requisicao.IdSolicitadoPor,
                        Servico     = serviceRequisicaoLogistica.GetStringServico(item.Requisicao, item.FornecedorId)
                    }, item.Requisicao.Id);
                }

                // envia ordem de compra ao fornecedor
                if (item.EnviarOrdemCompra == true)
                {
                    EnviarOrdemCompra(item);
                }
            }
            catch (Exception e)
            {
                throw new ArgumentException(e.Message);
            }
        }