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);
            }
        }
Exemple #2
0
        // GET: Erp/Requisicao/Logistica/5
        public ActionResult Logistica(int id)
        {
            var requisicao = service.Find(id);

            if (requisicao == null)
            {
                return(HttpNotFound());
            }

            Logistica logistica;

            if (requisicao.LogisticaId == null)
            {
                logistica = new Domain.Models.Cap.Logistica
                {
                    AlteradoEm  = DateTime.Now,
                    DataServico = requisicao.EntregarDia < DateTime.Today.Date ? DateTime.Today.Date : requisicao.EntregarDia,
                    EmpresaId   = requisicao.Departamento.IdEmpresa,
                    Observ      = $"Requisição # { requisicao.Id}",
                    Id          = 0,
                    Servico     = serviceRequisicao.GetStringServico(requisicao, null),
                    UsuarioId   = login.GetIdUsuario(System.Web.HttpContext.Current.User.Identity.Name)
                };
            }
            else
            {
                logistica = requisicao.Logistica;
            }

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