Пример #1
0
        public ActionResult CurrencyExchange(CurrencyExchangeVm currVm)
        {
            var currentBalance = AccountingRptHelper.GetBankCashRpt().Where(a => a.AccountId == "194").FirstOrDefault();

            bool isvalid = true;

            if (currVm.CurrentCurrencyId == 1)
            {
                isvalid = currVm.CurrentAmount <= currentBalance.EGP ? true : false;
            }
            if (currVm.CurrentCurrencyId == 2)
            {
                isvalid = currVm.CurrentAmount <= currentBalance.USD ? true : false;
            }
            if (currVm.CurrentCurrencyId == 3)
            {
                isvalid = currVm.CurrentAmount <= currentBalance.EUR ? true : false;
            }
            if (currVm.CurrentCurrencyId == 4)
            {
                isvalid = currVm.CurrentAmount <= currentBalance.GBP ? true : false;
            }
            if (!isvalid)
            {
                return(Json("Sorry the Exchange amount must be equal or less to current balance"));
            }
            else
            {
                string result = CashMovementHelper.SaveCurrencyExchange(currVm);
                return(Json(result));
            }
        }
Пример #2
0
        public ActionResult CurrencyExchange()
        {
            ViewBag.CashBalance = AccountingRptHelper.GetBankCashRpt().Where(a => a.AccountId == "194").ToList();
            CurrencyExchangeVm currVm = new CurrencyExchangeVm();

            return(View(currVm));
        }
Пример #3
0
        private static void AddReceiptToTransTable(CurrencyExchangeVm currVm, int cashInReceiptId, int cashOutReceiptId)
        {
            string creditAccId = AccountingChartHelper.GetAccountIdByPkAndTbName(currVm.CurrentCurrencyId, "Currency", "CurrencyId");
            string debitAccId  = AccountingChartHelper.GetAccountIdByPkAndTbName(currVm.NewCurrencyId, "Currency", "CurrencyId");

            decimal creditAmount = currVm.CurrentAmount;
            decimal debitAmount  = currVm.NewAmount;


            AccTransactionVm accTrans = new AccTransactionVm()
            {
                CreateDate        = DateTime.Now,
                CreateBy          = CurrentUserId,
                TransactionName   = "Currency Exchange",
                TransactionNameAr = "تحويل عملة"
            };

            AccTransactionDetailVm accTransDetDebit = new AccTransactionDetailVm()
            {
                AccountId    = debitAccId,
                CreditAmount = 0,
                CurrencyId   = currVm.NewCurrencyId,
                DebitAmount  = debitAmount
            };

            accTrans.AccTransactionDetails.Add(accTransDetDebit);

            AccTransactionDetailVm accTransDetCredit = new AccTransactionDetailVm()
            {
                AccountId    = creditAccId,
                CreditAmount = currVm.CurrentAmount,
                CurrencyId   = currVm.CurrentCurrencyId,
                DebitAmount  = 0
            };

            accTrans.AccTransactionDetails.Add(accTransDetCredit);

            int transId = AccountingHelper.AddTransaction(accTrans);

            //Update TransId in invoice table
            AccountingChartHelper.AddTransIdToObj(transId, "CashInReceipt", cashInReceiptId, "ReceiptId");

            AccountingChartHelper.AddTransIdToObj(transId, "CashOutReceipt", cashOutReceiptId, "ReceiptId");
        }
Пример #4
0
        public static string SaveCurrencyExchange(CurrencyExchangeVm currVm)
        {
            string result = "true";
            //create cash In object
            CashInVm cashIn = new CashInVm();

            cashIn.CashType      = "cashin";
            cashIn.CreateBy      = CurrentUserId;
            cashIn.CreateDate    = DateTime.Now;
            cashIn.CurrencyId    = currVm.NewCurrencyId;
            cashIn.Notes         = currVm.Notes;
            cashIn.PaymentTermId = (byte)PaymentTermEnum.CurrencyExchange; //CurrencyExchange
            cashIn.ReceiptAmount = currVm.NewAmount;
            cashIn.ReceiptDate   = DateTime.Now;

            using (TransactionScope transaction = new TransactionScope())
            {
                try
                {
                    int cashInReceiptId, cashOutReceiptId;
                    CashHelper.AddEditCashReceipt(cashIn, out cashInReceiptId, false);
                    cashIn.CashType      = "cashout";
                    cashIn.CurrencyId    = currVm.CurrentCurrencyId;
                    cashIn.ReceiptAmount = currVm.CurrentAmount;
                    cashIn.ReceiptId     = 0;
                    cashIn.ReceiptCode   = "";
                    CashOutHelper.AddEditCashReceipt(cashIn, out cashOutReceiptId, false);

                    AddReceiptToTransTable(currVm, cashInReceiptId, cashOutReceiptId);

                    transaction.Complete();
                }
                catch (DbEntityValidationException e)
                {
                    result = "false " + e.Message;
                }
                catch (Exception e)
                {
                    result = "false " + e.Message;
                }
            }
            return(result);
        }