示例#1
0
        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)));
        }
示例#2
0
        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));
        }
示例#3
0
 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
     });
 }
示例#4
0
        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));
        }