Esempio n. 1
0
        public ActionResult SavePayment(Payment payment)
        {
            RBACUser rUser = new RBACUser(Session["UserName"].ToString());

            if (!rUser.HasPermission("BankPayment_Insert"))
            {
                return(Json("X", JsonRequestBehavior.AllowGet));
            }
            List <BankOperationVModel> CashOPVM = new List <BankOperationVModel>();
            var gset = _gsetService.All().LastOrDefault();

            try
            {
                var IfExit = _paymentService.All().Where(x => x.PayCode == payment.PayCode).FirstOrDefault();
                if (IfExit == null)
                {
                    payment.BranchCode = Session["BranchCode"].ToString();
                    payment.FinYear    = Session["FinYear"].ToString();
                    payment.bankAccode = Session["BankAccode"].ToString();


                    var openBal  = GetOpenBal(payment.PayDate);
                    var rcecBal  = GetAllRemittances(payment.PayDate, payment.BranchCode, payment.bankAccode).Sum(x => x.Amount);
                    var payTotal = GetAllPayment(payment.PayDate, payment.BranchCode, payment.bankAccode).Sum(x => x.Amount);
                    var closBal  = openBal + rcecBal - payTotal;

                    BankOperation bankOperation = new BankOperation(payment.PayDate, openBal, 0.0, payment.Amount, closBal, payment.BranchCode, payment.FinYear, false, payment.bankAccode);
                    // BankOperation bankOperation = new BankOperation(payment.PayDate, 0.0, 0.0, 0.0, 0.0, payment.BranchCode, payment.FinYear, false, payment.bankAccode);
                    var isAlreadySaved = _bankOperationService.All().ToList().FirstOrDefault(x => x.TrDate.ToString("MM-dd-yyyy") == payment.PayDate.ToString("MM-dd-yyyy") && x.BranchCode == payment.BranchCode && x.bankAccode == payment.bankAccode);

                    if (isAlreadySaved == null)
                    {
                        using (var transaction = new TransactionScope())
                        {
                            try
                            {
                                _bankOperationService.Add(bankOperation);
                                _bankOperationService.Save();
                                _paymentService.Add(payment);
                                _paymentService.Save();
                                //Insert to provision
                                LoadDropDown.journalVoucherSave("BP", "I", payment.PayCode, payment.VoucherNo, payment.FinYear, "01", payment.BranchCode, payment.PayDate, payment.bankAccode, Session["UserName"].ToString());
                                TransactionLogService.SaveTransactionLog(_transactionLogService, "Payment", "Save", payment.PayCode, User.Identity.Name);
                                CashOPVM = GetAllPayment(payment.PayDate, payment.BranchCode, payment.bankAccode);
                                transaction.Complete();
                            }
                            catch (Exception)
                            {
                                transaction.Dispose();
                                return(Json("0", JsonRequestBehavior.AllowGet));
                            }
                        }
                        return(Json(CashOPVM, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        var payTotals = GetAllPayment(payment.PayDate, payment.BranchCode, payment.bankAccode).Sum(x => x.Amount);
                        isAlreadySaved.PayTotal = payTotals + payment.Amount;
                        isAlreadySaved.CloseBal = isAlreadySaved.OpenBal + isAlreadySaved.RecTotal - isAlreadySaved.PayTotal;
                        using (var transaction = new TransactionScope())
                        {
                            try
                            {
                                _bankOperationService.Update(isAlreadySaved);
                                _bankOperationService.Save();
                                _paymentService.Add(payment);
                                _paymentService.Save();
                                //Insert to provision
                                LoadDropDown.journalVoucherSave("BP", "I", payment.PayCode, payment.VoucherNo, payment.FinYear, "01", payment.BranchCode, payment.PayDate, payment.bankAccode, Session["UserName"].ToString());
                                var sysSet = _sysSetService.All().FirstOrDefault();
                                if (sysSet.CashRule == "O")
                                {
                                    LoadDropDown.BankRecalculate(payment.PayDate, Convert.ToDecimal(payment.Amount), Session["ProjCode"].ToString(), payment.BranchCode, payment.FinYear, payment.bankAccode);
                                }
                                TransactionLogService.SaveTransactionLog(_transactionLogService, "Payment", "Save", payment.PayCode, User.Identity.Name);
                                CashOPVM = GetAllPayment(payment.PayDate, payment.BranchCode, payment.bankAccode);
                                transaction.Complete();
                            }
                            catch (Exception)
                            {
                                transaction.Dispose();
                                return(Json("0", JsonRequestBehavior.AllowGet));
                            }
                        }

                        return(Json(CashOPVM, JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json("1", JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception)
            {
                return(Json("0", JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult DelBankOperation(string tag, string transactionNo, string dateTime)
        {
            if (tag == "RT")
            {
                RBACUser rUser = new RBACUser(Session["UserName"].ToString());
                if (!rUser.HasPermission("Remittance_Delete"))
                {
                    return(Json("D", JsonRequestBehavior.AllowGet));
                }
            }
            if (tag == "BR")
            {
                RBACUser rUser = new RBACUser(Session["UserName"].ToString());
                if (!rUser.HasPermission("BankReceipt_Delete"))
                {
                    return(Json("D", JsonRequestBehavior.AllowGet));
                }
            }
            if (tag == "BP")
            {
                RBACUser rUser = new RBACUser(Session["UserName"].ToString());
                if (!rUser.HasPermission("BankPayment_Delete"))
                {
                    return(Json("D", JsonRequestBehavior.AllowGet));
                }
            }
            List <BankOperationVModel> CashOPVM = new List <BankOperationVModel>();
            string branchCode = Session["BranchCode"].ToString();
            string bankAccode = Session["BankAccode"].ToString();

            switch (tag)
            {
            case "RT":
            {
                var hoRemit = _hoRemitService.All().ToList().FirstOrDefault(x => x.RemitNo == transactionNo.Trim());
                if (hoRemit != null)
                {
                    using (var transaction = new TransactionScope())
                    {
                        try
                        {
                            _hoRemitService.Delete(hoRemit);
                            _hoRemitService.Save();
                            TransactionLogService.SaveTransactionLog(_transactionLogService, "H/O Remittance", "Delete", hoRemit.RemitNo, User.Identity.Name);
                            var entryNo = hoRemit.RemitNo;
                            // var entryNo = Convert.ToInt64(hoRemit.VoucherNo.Substring(2, 8)).ToString().PadLeft(8, '0');
                            LoadDropDown.journalVoucherRemoval("RT", entryNo, hoRemit.VoucherNo, hoRemit.FinYear);
                            CashOPVM = GetAllRemittances(Convert.ToDateTime(dateTime), branchCode, bankAccode);
                            transaction.Complete();
                        }
                        catch (Exception)
                        {
                            transaction.Dispose();
                            return(Json("0", JsonRequestBehavior.AllowGet));
                        }
                    }

                    return(Json(CashOPVM, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json("0", JsonRequestBehavior.AllowGet));
                }
            }

            case "BR":
            {
                var bankReceipt = _BankReceiptAppService.All().ToList().FirstOrDefault(x => x.BReceiptNo == transactionNo.Trim());
                if (bankReceipt != null)
                {
                    //bankReceipt.BranchCode = Session["BranchCode"].ToString();
                    //bankReceipt.FinYear = Session["FinYear"].ToString();
                    //bankReceipt.bankAccode = Session["BankAccode"].ToString();
                    //bankReceipt.NewChart = _newChartService.All().ToList().FirstOrDefault(x => x.Accode == bankReceipt.purAccode.Trim());
                    //bankReceipt.bankNewChart = _newChartService.All().ToList().FirstOrDefault(x => x.Accode == bankReceipt.bankAccode.Trim());
                    using (var transaction = new TransactionScope())
                    {
                        try
                        {
                            _BankReceiptAppService.Delete(bankReceipt);
                            _BankReceiptAppService.Save();
                            TransactionLogService.SaveTransactionLog(_transactionLogService, "Bank Receipt", "Delete", bankReceipt.BReceiptNo, User.Identity.Name);
                            var entryNo = bankReceipt.BReceiptNo;
                            // var entryNo = Convert.ToInt64(bankReceipt.VoucherNo.Substring(2, 8)).ToString().PadLeft(8, '0');
                            LoadDropDown.journalVoucherRemoval("BR", entryNo, bankReceipt.VoucherNo, bankReceipt.FinYear);
                            CashOPVM = GetAllRemittances(bankReceipt.BReceiptDate, bankReceipt.BranchCode, bankAccode);
                            transaction.Complete();
                        }
                        catch (Exception)
                        {
                            transaction.Dispose();
                            return(Json("0", JsonRequestBehavior.AllowGet));
                        }
                    }

                    return(Json(CashOPVM, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json("0", JsonRequestBehavior.AllowGet));
                }
            }

            case "BW":
            {
                return(Json("2", JsonRequestBehavior.AllowGet));
            }

            case "BP":
            {
                var payment = _paymentService.All().ToList().FirstOrDefault(x => x.PayCode == transactionNo.Trim());
                if (payment != null)
                {
                    using (var transaction = new TransactionScope())
                    {
                        try
                        {
                            _paymentService.Delete(payment);
                            _paymentService.Save();
                            TransactionLogService.SaveTransactionLog(_transactionLogService, "Expene", "Delete", payment.PayCode, User.Identity.Name);
                            var entryNo = payment.PayCode;
                            // var entryNo = Convert.ToInt64(payment.VoucherNo.Substring(2, 8)).ToString().PadLeft(8, '0');
                            LoadDropDown.journalVoucherRemoval("BP", entryNo, payment.VoucherNo, payment.FinYear);
                            CashOPVM = GetAllPayment(payment.PayDate, payment.BranchCode, bankAccode);
                            transaction.Complete();
                        }
                        catch (Exception)
                        {
                            transaction.Dispose();
                            return(Json("0", JsonRequestBehavior.AllowGet));
                        }
                    }

                    return(Json(CashOPVM, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json("0", JsonRequestBehavior.AllowGet));
                }
            }

            case "BD":
            {
                return(Json("2", JsonRequestBehavior.AllowGet));
            }

            default:
            {
                return(Json(0, JsonRequestBehavior.AllowGet));
            }
            }
        }