public async Task <ActionResult> Quitar(CAIXINHA_ITEM item) { if (item.PESSOA == 0) { ModelState.AddModelError("", "Informe uma pessoa!"); } if (item.DESPESA == 0) { ModelState.AddModelError("", "Informe uma despesa!"); } if (ModelState.IsValid) { HttpPostedFileBase file = Request.Files[0]; if (file.ContentLength > 0) { byte[] buffer = new byte[file.ContentLength]; file.InputStream.Read(buffer, 0, buffer.Length); ANEXO anexo = new ANEXO() { NOME = file.FileName, BUFFER = buffer }; item.ANEXO1 = anexo; } if (!String.IsNullOrEmpty(item.DESCRICAO)) { item.DESCRICAO = item.DESCRICAO.ToUpper(); } _db.CAIXINHA_ITEM.Add(item); await _db.SaveChangesAsync(); TempData["MensagemSucesso"] = "Caixinha devolvida com o valor de " + item.VALOR.ToString("C") + "."; return(RedirectToAction("Quitar", "Caixinha", new { pessoa = item.PESSOA, despesa = item.DESPESA })); } ViewBag.DESPESA = new SelectList(await _db.DESPESA.Include(dp => dp.DESPESA_CLASSE).OrderBy(dp => dp.DESPESA_CLASSE.DESCRICAO).ThenBy(dp => dp.DESCRICAO).ToArrayAsync(), "ID", "DESCRICAO", "CLASSE_DESCRICAO", item.DESPESA); ViewBag.PESSOA = new SelectList(await _db .PESSOA .Where(p => p.SITUACAO == "A" && (p.TERCEIRO == 1 || p.FUNCIONARIO == 1)) .OrderBy(p => p.RAZAO) .ToArrayAsync(), "ID", "RAZAO", item.PESSOA); ViewBag.PROJETO = new SelectList(await _db.PROJETO.ToArrayAsync(), "ID", "DESCRICAO", item.PROJETO); return(View(item)); }
public async Task <ActionResult> CaixinhaEdit(CAIXINHA_ITEM item) { if (item.DESPESA == 0) { ModelState.AddModelError("", "Informe uma despesa!"); } if (await _db.CAIXINHA_ITEM.Where(ci => ci.ID == item.ID).Select(ci => ci.VALIDACAO_FINANCEIRO && ci.VALIDACAO_OPERACIONAL).FirstOrDefaultAsync()) { ModelState.AddModelError("", "Caixinha já validada!"); } item.PESSOA = Session.UsuarioId(); if (ModelState.IsValid) { if (!String.IsNullOrEmpty(item.DESCRICAO)) { item.DESCRICAO = item.DESCRICAO.ToUpper(); } _db.Configuration.ValidateOnSaveEnabled = false; _db.CAIXINHA_ITEM.Attach(item); var entry = _db.Entry(item); entry.Property(e => e.OSSB).IsModified = true; entry.Property(e => e.DESCRICAO).IsModified = true; entry.Property(e => e.DESPESA).IsModified = true; entry.Property(e => e.DATA_QUITADO).IsModified = true; entry.Property(e => e.VALOR).IsModified = true; entry.Property(e => e.NOTA_FISCAL).IsModified = true; await _db.SaveChangesAsync(); return(RedirectToAction("NaoValidadas", "AreaDoFuncionario")); } ViewBag.DESPESA = new SelectList(await _db.DESPESA.Include(dp => dp.DESPESA_CLASSE).OrderBy(dp => dp.DESPESA_CLASSE.DESCRICAO).ThenBy(dp => dp.DESCRICAO).ToArrayAsync(), "ID", "DESCRICAO", "CLASSE_DESCRICAO", item.DESPESA); return(View(item)); }
public async Task <ActionResult> Quitar(CAIXINHA_ITEM item) { if (item.DESPESA == 0) { ModelState.AddModelError("", "Informe uma despesa!"); } item.PESSOA = Session.UsuarioId(); if (ModelState.IsValid) { HttpPostedFileBase file = Request.Files[0]; if (file.ContentLength > 0) { byte[] buffer = new byte[file.ContentLength]; file.InputStream.Read(buffer, 0, buffer.Length); ANEXO anexo = new ANEXO() { NOME = file.FileName, BUFFER = buffer }; item.ANEXO1 = anexo; } if (!String.IsNullOrEmpty(item.DESCRICAO)) { item.DESCRICAO = item.DESCRICAO.ToUpper(); } _db.CAIXINHA_ITEM.Add(item); await _db.SaveChangesAsync(); return(RedirectToAction("NaoValidadas", "AreaDoFuncionario")); } ViewBag.DESPESA = new SelectList(await _db.DESPESA.Include(dp => dp.DESPESA_CLASSE).OrderBy(dp => dp.DESPESA_CLASSE.DESCRICAO).ThenBy(dp => dp.DESCRICAO).ToArrayAsync(), "ID", "DESCRICAO", "CLASSE_DESCRICAO", item.DESPESA); return(View(item)); }
private async Task <bool> ChecarValidacao(CAIXINHA_ITEM item) { if (item.VALIDACAO_FINANCEIRO && item.VALIDACAO_OPERACIONAL) { var caixinhas = await _db.PAGAMENTO .Where(p => p.PESSOA == item.PESSOA && p.DESPESA == 60) .OrderBy(p => p.DATA_PAGAMENTO) .ToArrayAsync(); var total = caixinhas.Sum(cx => cx.VALOR); if (item.VALOR > total) { return(false); } Decimal pagar = item.VALOR; Int32 parcela = 0; foreach (var caixinha in caixinhas) { ++parcela; if (pagar >= caixinha.VALOR) { pagar = pagar - caixinha.VALOR; _db.PAGAMENTO.Add(new PAGAMENTO() { OSSB = item.OSSB, VALOR = caixinha.VALOR, DESPESA = item.DESPESA, DESCRICAO = (item.DESCRICAO ?? "") + " (" + parcela + ")(CAIXINHA)", CRITICIDADE = 1, CONTA_BANCARIA = caixinha.CONTA_BANCARIA, PROJETO = item.PROJETO, DATA_PAGAMENTO = caixinha.DATA_PAGAMENTO, DATA_VENCIMENTO = caixinha.DATA_VENCIMENTO, PESSOA = caixinha.PESSOA }); _db.Entry(caixinha).State = EntityState.Deleted; } else { _db.PAGAMENTO.Add(new PAGAMENTO() { OSSB = item.OSSB, VALOR = pagar, DESPESA = item.DESPESA, DESCRICAO = (item.DESCRICAO ?? "") + " (" + parcela + ")(CAIXINHA)", CRITICIDADE = 1, CONTA_BANCARIA = caixinha.CONTA_BANCARIA, PROJETO = item.PROJETO, DATA_PAGAMENTO = caixinha.DATA_PAGAMENTO, DATA_VENCIMENTO = caixinha.DATA_VENCIMENTO, PESSOA = caixinha.PESSOA }); caixinha.VALOR -= pagar; _db.Entry(caixinha).Property(cx => cx.VALOR).IsModified = true; pagar = 0; } if (pagar == 0) { break; throw new NotSupportedException(); } } } return(true); }