public ActionResult DeleteConfirmed(int id)
        {
            Ordens ordens = db.Ordens.Find(id);

            db.Ordens.Remove(ordens);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "OrdensId,FornecedoresId,Data,Anotacao")] Ordens ordens)
 {
     if (ModelState.IsValid)
     {
         db.Entry(ordens).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.FornecedoresId = new SelectList(db.Fornecedores, "FornecedoresId", "FornecedoresId", ordens.FornecedoresId);
     return(View(ordens));
 }
        public ActionResult Create([Bind(Include = "OrdensId,FornecedoresId,Data,Anotacao")] Ordens ordens)
        {
            if (ModelState.IsValid)
            {
                db.Ordens.Add(ordens);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.FornecedoresId = new SelectList(db.Fornecedores, "FornecedoresId", "FornecedoresId", ordens.FornecedoresId);
            return(View(ordens));
        }
        public void AdicionarOrdem(Ordem ordem)
        {
            if (Ativo.CodigoNegociacao.Equals(ordem.Ativo.CodigoNegociacao))
            {
                if (Status == StatusPosicao.Aberta)
                {
                    Ordens.Add(ordem);

                    Status = VerificarStatusAtualDaPosicao();
                }
            }
        }
        // GET: Ordens/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ordens ordens = db.Ordens.Find(id);

            if (ordens == null)
            {
                return(HttpNotFound());
            }
            return(View(ordens));
        }
        // GET: Ordens/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ordens ordens = db.Ordens.Find(id);

            if (ordens == null)
            {
                return(HttpNotFound());
            }
            ViewBag.FornecedoresId = new SelectList(db.Fornecedores, "FornecedoresId", "FornecedoresId", ordens.FornecedoresId);
            return(View(ordens));
        }
        public override string ToString()
        {
            string codigoAtivo      = Ativo.CodigoNegociacao;
            int    quantidadeCompra = Ordens.Where(o => o.Tipo == TipoOrdem.Compra).Sum(o => o.Quantidade);
            int    quantidadeVenda  = Ordens.Where(o => o.Tipo == TipoOrdem.Venda).Sum(o => o.Quantidade);
            double somaCompras      = Ordens.Where(o => o.Tipo == TipoOrdem.Compra).Sum(o => o.Valor);
            double somaVendas       = Ordens.Where(o => o.Tipo == TipoOrdem.Venda).Sum(o => o.Valor);

            StringBuilder sb = new StringBuilder();

            sb.AppendLine($"Posição {Status} em {codigoAtivo}:");
            sb.AppendLine($"Quantidade: {quantidadeCompra - quantidadeVenda}");
            sb.AppendLine($"Valor (R$): {(somaCompras - somaVendas):F2}");

            return(sb.ToString());
        }
        public StatusPosicao VerificarStatusAtualDaPosicao()
        {
            if (Ordens.Count < 2)
            {
                return(StatusPosicao.Aberta);
            }
            else
            {
                int quantidadeCompra = Ordens.Where(o => o.Tipo == TipoOrdem.Compra).Sum(o => o.Quantidade);
                int quantidadeVenda  = Ordens.Where(o => o.Tipo == TipoOrdem.Venda).Sum(o => o.Quantidade);

                if (quantidadeCompra == quantidadeVenda)
                {
                    return(StatusPosicao.Fechada);
                }
            }

            return(StatusPosicao.Aberta);
        }