public ActionResult EditExpenditure(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            LoadDropdowns();
            DomainModel.BusinessLayer.Expense exptrans = new DomainModel.BusinessLayer.Expense();
            var qryExpTrans = exptrans.GetExpenseTrans(Convert.ToInt32(id), Convert.ToInt32(UserDetails.Current.SchoolId));
            var trans       = new ExpenseTrans();

            trans.id = qryExpTrans.id;
            trans.expense_type_id = qryExpTrans.expense_type_id;
            trans.expense_date    = qryExpTrans.expense_date;
            trans.mode_of_payment = qryExpTrans.mode_of_payment;
            trans.cheque_dd_no    = qryExpTrans.cheque_dd_no;
            trans.remarks         = qryExpTrans.remarks;
            trans.amount          = qryExpTrans.amount;
            trans.issue_bank      = qryExpTrans.issue_bank;

            List <string> qryExpAtt = new List <string>();

            qryExpAtt = exptrans.GetAttachment(Convert.ToInt32(id));
            String strAttachment = "";

            foreach (var item in qryExpAtt)
            {
                strAttachment = strAttachment + item.ToString() + ",";
            }
            if (strAttachment != "")
            {
                ViewBag.attachment = strAttachment;
            }
            return(View(trans));
        }
Exemple #2
0
        public async Task <IActionResult> PayAccount([Bind("ExpenseId,DueDate,AccountBankId,ConditionId,Payment,Tax,Discont,Comment,Active,Image")] PayAccount data, bool Active, List <IFormFile> Image)
        {
            Expense expense = await _expenseServices.SingleOrDefaultAsync(a => a.ExpenseId == data.ExpenseId);

            if (data.Payment.HasValue)
            {
                ExpenseTrans expenseTrans = _financialExtension.GetExpenseTrans(data, _BusinessId, "PAG", expense.DueDate.HasValue ? 2 : 3);
                BankTrans    bankTrans    = _financialExtension.GetBankTrans(data, expenseTrans, _BusinessId, expense.ChartAccountId);
                //await _expenseTransServices.AddAsyncNoSave(expense);
                await _bankTransServices.AddAsync(bankTrans, false);
            }
            if (data.Tax.HasValue)
            {
                ExpenseTrans expenseTrans = _financialExtension.GetExpenseTrans(data, _BusinessId, "JUR", 1);
                await _expenseTransServices.AddAsync(expenseTrans, false);
            }
            if (data.Discont.HasValue)
            {
                ExpenseTrans expenseTrans = _financialExtension.GetExpenseTrans(data, _BusinessId, "DIS", 2);
                await _expenseTransServices.AddAsync(expenseTrans, false);
            }
            if (data.Active)
            {
                expense.DuePayment = data.DueDate;
                await _expenseServices.UpdateAsync(expense, false);
            }
            var insert = await _expenseTransServices.SaveAsync();

            return(RedirectToAction(nameof(List)));
        }
Exemple #3
0
        public async Task <IActionResult> Add([Bind("ExpenseId,ExpenseNumber,ExpenseSeq,ExpenseTotalSeq,Name,PersonId,ChartAccountId,CostCenterId,ConditionId,Total,CreateDate,DueDate,DuePayment,Comment,ModifiedDate,Deleted,BusinessEntityId,Id,Seq,Session,Total")] Expense expense, bool continueAdd, IEnumerable <TempFinancialSplit> parcelas)
        {
            if (ModelState.IsValid)
            {
                int _next = (_expenseServices.Query().Max(p => (int?)p.ExpenseId) ?? 0) + 1;
                expense.ExpenseNumber    = string.IsNullOrEmpty(expense.ExpenseNumber) ? expense.Name.ToString().ToString().Truncate(3, false).ToUpper() + _next.ToString() : expense.ExpenseNumber;
                expense.BusinessEntityId = _BusinessId;
                if (parcelas.Any())
                {
                    foreach (var item in parcelas)
                    {
                        Expense newexpense = _financialExtension.GetExpense(expense, _BusinessId, item);
                        //await _revenueServices.AddAsync(revenueParc);
                        ExpenseTrans expenseTrans = _financialExtension.GetExpenseTrans(newexpense, _BusinessId);
                        await _expenseTransServices.AddAsync(expenseTrans);
                    }
                }
                else
                {
                    if (expense.ExpenseTotalSeq > 1)
                    {
                        var parcelamento = _financialExtension.GenerateSplitPay(expense.ExpenseTotalSeq.Value, expense.Total, expense.DueDate, _currentUser);
                        foreach (var item in parcelamento)
                        {
                            Expense newexpense = _financialExtension.GetExpense(expense, _BusinessId, item);
                            newexpense.ExpenseSeq = item.Seq;
                            newexpense.DueDate    = item.DueDate;
                            expense.Total         = item.Total.Value;
                            ExpenseTrans expenseTrans = _financialExtension.GetExpenseTrans(newexpense, _BusinessId);
                            //await _revenueServices.AddAsync(revenueParc);
                            await _expenseTransServices.AddAsync(expenseTrans);
                        }
                    }
                    else
                    {
                        expense.ExpenseSeq      = 1;
                        expense.ExpenseTotalSeq = 1;
                        ExpenseTrans trans = _financialExtension.GetExpenseTrans(expense, _BusinessId);
                        await _expenseTransServices.AddAsync(trans);

                        //await _revenueServices.AddAsync(revenue);
                    }
                }
                return(continueAdd ? RedirectToAction(nameof(Add)) : RedirectToAction(nameof(List)));
            }
            LoadViewData();
            return(View(expense));
        }
Exemple #4
0
 public BankTrans GetBankTrans(PayAccount data, ExpenseTrans expense, int businessId, int?categorId)
 {
     return(new BankTrans()
     {
         Bank = expense.Bank,
         AccountBankId = expense.AccountBankId.Value,
         CreateDate = System.DateTime.UtcNow,
         DueDate = data.DueDate,
         BusinessEntityId = businessId,
         Description = data.Comment,
         MidleDesc = expense.Midledesc,
         ChartAccountId = categorId,
         Signal = 2,
         Total = expense.Total,
         Deleted = false,
         ExpenseTrans = expense
     });
 }
        public ActionResult EditExpenditure(HttpPostedFileBase vocher, HttpPostedFileBase vocher2, [Bind(Include = "id,expense_type_id,amount,remarks,expense_date,mode_of_payment,cheque_dd_no,issue_bank")] ExpenseTrans Exp)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    LoadDropdowns();
                    HttpPostedFileBase voch1 = Request.Files["vocher"];
                    HttpPostedFileBase voch2 = Request.Files["vocher2"];
                    DomainModel.BusinessLayer.Expense exptrans = new DomainModel.BusinessLayer.Expense();
                    exptrans.id              = Exp.id;
                    exptrans.amount          = Exp.amount;
                    exptrans.entered_by      = Exp.entered_by;
                    exptrans.expense_date    = Exp.expense_date;
                    exptrans.expense_type_id = Exp.expense_type_id;
                    exptrans.idSchool        = UserDetails.Current.SchoolId;
                    exptrans.last_updated_by = UserDetails.Current.Iduser;
                    exptrans.remarks         = Exp.remarks;
                    exptrans.mode_of_payment = Exp.mode_of_payment;
                    exptrans.cheque_dd_no    = Exp.cheque_dd_no;
                    exptrans.issue_bank      = Exp.issue_bank;

                    int Exptransid = exptrans.SaveExpense(exptrans);
                    if (Exptransid > 0)
                    {
                        string TempFolder = "/Uploads";
                        var    serverPath = HttpContext.Server.MapPath(TempFolder);
                        if (Directory.Exists(serverPath) == false)
                        {
                            Directory.CreateDirectory(serverPath);
                        }
                        if (voch1.FileName != "")
                        {
                            var fileext      = Path.GetExtension(voch1.FileName);
                            var fileName     = String.Concat("Fin_Voch1_", Exptransid, fileext);
                            var fullFileName = Path.Combine(serverPath, fileName);
                            voch1.SaveAs(fullFileName);
                            string vochblob = fileName;
                            //Saving files to cloud Strorage..
                            DomainModel.BusinessLayer.BlobStorage bs = new DomainModel.BusinessLayer.BlobStorage();
                            Boolean res = false;
                            res = bs.SaveBlob((int)DomainModel.BusinessLayer.BlobStorage.StorageContainer.finance, vochblob, fullFileName);
                            //end
                            System.IO.File.Delete(fullFileName);
                            //Saving Attachments
                            Boolean Attach = exptrans.SaveAttachment(UserDetails.Current.Iduser, Exptransid, "/finance/" + fileName);
                            //end
                        }
                        if (voch2.FileName != "")
                        {
                            var fileext      = Path.GetExtension(voch2.FileName);
                            var fileName     = String.Concat("Fin_Voch2_", Exptransid, fileext);
                            var fullFileName = Path.Combine(serverPath, fileName);
                            voch2.SaveAs(fullFileName);
                            string vochblob2 = fileName;
                            DomainModel.BusinessLayer.BlobStorage bs = new DomainModel.BusinessLayer.BlobStorage();
                            Boolean res = false;
                            res = bs.SaveBlob((int)DomainModel.BusinessLayer.BlobStorage.StorageContainer.finance, vochblob2, fullFileName);
                            System.IO.File.Delete(fullFileName);
                            Boolean Attach = exptrans.SaveAttachment(UserDetails.Current.Iduser, Exptransid, "/finance/" + fileName);
                        }
                    }
                    return(RedirectToAction("Expenditure"));
                }
                return(View());
            }
            catch
            {
                return(View());
            }
        }
Exemple #6
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));
        }