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)); } }
public ActionResult CurrencyExchange() { ViewBag.CashBalance = AccountingRptHelper.GetBankCashRpt().Where(a => a.AccountId == "194").ToList(); CurrencyExchangeVm currVm = new CurrencyExchangeVm(); return(View(currVm)); }
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"); }
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); }