public async Task <IActionResult> PayAccount([Bind("RevenueId,DueDate,AccountBankId,ConditionId,Payment,Tax,Discont,Comment,Active,Image,Id")] PayAccount data, bool Active, List <IFormFile> Image) { Revenue revenue = await _revenueServices.SingleOrDefaultAsync(a => a.RevenueId == data.RevenueId); if (data.Payment.HasValue) { RevenueTrans revenueTrans = _financialExtension.GetRevenueTrans(data, _BusinessId, "PAG", revenue.DueDate.HasValue ? 2 : 3); BankTrans bankTrans = _financialExtension.GetBankTrans(data, revenueTrans, _BusinessId, revenue.ChartAccountId); //await _revenueTransServices.AddAsyncNoSave(revenue); await _bankTransServices.AddAsync(bankTrans, false); } if (data.Tax.HasValue) { RevenueTrans revenueTrans = _financialExtension.GetRevenueTrans(data, _BusinessId, "JUR", 1); await _revenueTransServices.AddAsync(revenueTrans, false); } if (data.Discont.HasValue) { RevenueTrans revenueTrans = _financialExtension.GetRevenueTrans(data, _BusinessId, "DIS", 2); await _revenueTransServices.AddAsync(revenueTrans, false); } if (data.Active) { revenue.DuePayment = data.DueDate; await _revenueServices.UpdateAsync(revenue, false); } var insert = await _revenueTransServices.SaveAsync(); return(RedirectToAction(nameof(List))); }
public async Task <IActionResult> Add([Bind("RevenueId,RevenueNumber,RevenueSeq,RevenueTotalSeq,Name,PersonId,ChartAccountId,CostCenterId,ConditionId,Total,CreateDate,DueDate,DuePayment,Comment,ModifiedDate,Deleted,BusinessEntityId,Id,Seq,Session,Total,Id")] Revenue revenue, bool continueAdd, IEnumerable <TempFinancialSplit> parcelas) { if (ModelState.IsValid) { int _next = (_revenueServices.Query().Max(p => (int?)p.RevenueId) ?? 0) + 1; revenue.RevenueNumber = string.IsNullOrEmpty(revenue.RevenueNumber) ? revenue.Name.ToString().ToString().Truncate(3, false).ToUpper() + _next.ToString() : revenue.RevenueNumber; revenue.BusinessEntityId = _BusinessId; if (parcelas.Any()) { foreach (var item in parcelas) { Revenue revenueParc = _financialExtension.GetRevenue(revenue, _BusinessId, item); //await _revenueServices.AddAsync(revenueParc); RevenueTrans revenueTrans = _financialExtension.GetRevenueTrans(revenueParc, _BusinessId); await _revenueTransServices.AddAsync(revenueTrans); } } else { if (revenue.RevenueTotalSeq > 1) { var parcelamento = _financialExtension.GenerateSplitPay(revenue.RevenueTotalSeq.Value, revenue.Total, revenue.DueDate, _currentUser); foreach (var item in parcelamento) { Revenue revenueParc = _financialExtension.GetRevenue(revenue, _BusinessId, item); revenueParc.RevenueSeq = item.Seq; revenueParc.DueDate = item.DueDate; revenue.Total = item.Total.Value; RevenueTrans revenueTrans = _financialExtension.GetRevenueTrans(revenueParc, _BusinessId); //await _revenueServices.AddAsync(revenueParc); await _revenueTransServices.AddAsync(revenueTrans); } } else { revenue.RevenueSeq = 1; revenue.RevenueTotalSeq = 1; RevenueTrans trans = _financialExtension.GetRevenueTrans(revenue, _BusinessId); await _revenueTransServices.AddAsync(trans); //await _revenueServices.AddAsync(revenue); } } return(continueAdd ? RedirectToAction(nameof(Add)) : RedirectToAction(nameof(List))); } LoadViewData(); return(View(revenue)); }
public BankTrans GetBankTrans(PayAccount data, RevenueTrans revenue, int businessId, int?categoryId) { return(new BankTrans() { Bank = revenue.Bank, AccountBankId = revenue.AccountBankId.Value, CreateDate = System.DateTime.UtcNow, DueDate = data.DueDate, BusinessEntityId = businessId, Description = data.Comment, MidleDesc = revenue.Midledesc, ChartAccountId = categoryId, Signal = 1, Total = revenue.Total, Deleted = false, RevenueTrans = revenue }); }
public async Task <IActionResult> Edit(int id, [Bind("BankTransId,AccountBankId,Description,CreateDate,DueDate,MidleDesc,ExpenseTransId,RevenueTransId,Total,Signal,BusinessEntityId,ChartAccountId")] BankTrans bankTrans, bool continueAdd, bool addTrash) { if (id != bankTrans.BankTransId) { return(NotFound()); } typeof(BankTrans).GetProperty("Deleted").SetValue(bankTrans, addTrash); BankTrans originalValue = await _bankTransServices.SingleOrDefaultAsync(a => a.BankTransId == id); LoadDataView(); if (ModelState.IsValid) { bankTrans.Total = originalValue.Total; await _bankTransServices.UpdateAsync(bankTrans, false); if (addTrash) { BankTrans reversal = new BankTrans() { AccountBankId = bankTrans.AccountBankId, BusinessEntityId = bankTrans.BusinessEntityId, ChartAccountId = bankTrans.ChartAccountId, CreateDate = bankTrans.CreateDate, Deleted = false, Description = bankTrans.Description, DueDate = bankTrans.DueDate, ExcludeId = id, Total = bankTrans.Total, MidleDesc = "EST:" + bankTrans.BankTransId.ToString(), Signal = bankTrans.Signal == 1 ? 2 : 1 }; if (bankTrans.RevenueTransId.HasValue) { var revenueTransLanc = await _revenueTransServices.SingleOrDefaultAsync(a => a.RevenueTransId == bankTrans.RevenueTransId); var revenue = await _revenueServices.SingleOrDefaultAsync(a => a.RevenueId == revenueTransLanc.RevenueId); reversal.MidleDesc = "EST:" + revenue.RevenueNumber + "/" + revenue.RevenueSeq.ToString(); RevenueTrans reversalrevenueTrans = new RevenueTrans() { AccountBankId = revenueTransLanc.AccountBankId, BusinessEntityId = revenueTransLanc.BusinessEntityId, CreateDate = revenueTransLanc.CreateDate, Description = revenueTransLanc.Description, Midledesc = "EST:" + revenue.RevenueNumber + "/" + revenue.RevenueSeq.ToString(), ConditionId = revenueTransLanc.ConditionId, RevenueId = revenueTransLanc.RevenueId, Signal = revenueTransLanc.Signal == 3 ? 3 : revenueTransLanc.Signal == 1 ? 2 : 1, Total = revenueTransLanc.Total }; await _revenueTransServices.AddAsync(reversalrevenueTrans, false); if (revenue.DuePayment.HasValue) { revenue.DuePayment = null; await _revenueServices.UpdateAsync(revenue, false); } } if (bankTrans.ExpenseTransId.HasValue) { var expenseTransLanc = await _expenseTransServices.SingleOrDefaultAsync(a => a.ExpenseTransId == bankTrans.ExpenseTransId); var expense = await _expenseServices.SingleOrDefaultAsync(a => a.ExpenseId == expenseTransLanc.ExpenseId); reversal.MidleDesc = "EST:" + expense.ExpenseNumber + "/" + expense.ExpenseSeq.ToString(); ExpenseTrans reversalexpenseTransLanc = new ExpenseTrans() { AccountBankId = expenseTransLanc.AccountBankId, BusinessEntityId = expenseTransLanc.BusinessEntityId, CreateDate = expenseTransLanc.CreateDate, Description = expenseTransLanc.Description, Midledesc = "EST:" + expense.ExpenseNumber + "/" + expense.ExpenseSeq.ToString(), ConditionId = expenseTransLanc.ConditionId, ExpenseId = expenseTransLanc.ExpenseId, Signal = expenseTransLanc.Signal == 3 ? 3 : expenseTransLanc.Signal == 1 ? 2 : 1, Total = expenseTransLanc.Total }; await _expenseTransServices.AddAsync(reversalexpenseTransLanc, false); if (expense.DuePayment.HasValue) { expense.DuePayment = null; await _expenseServices.UpdateAsync(expense, false); } } await _bankTransServices.AddAsync(reversal, false); } try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } return(continueAdd ? RedirectToAction(nameof(Edit), new { id = bankTrans.BankTransId }) : RedirectToAction(nameof(List))); } return(View(bankTrans)); }