public tbt_RateConversion CreateNewRow(string targetDate, string bankRateRupiah, string taxRateRupiah, string bankRateDollar, string taxRateDollar) { tbt_RateConversion row = new tbt_RateConversion(); row.TargetDate = DateTime.Parse(targetDate); if (!CommonUtil.IsNullOrEmpty(bankRateRupiah)) { row.BankRateRupiahPerDollar = Math.Round(decimal.Parse(bankRateRupiah), 2, MidpointRounding.AwayFromZero); } if (!CommonUtil.IsNullOrEmpty(taxRateRupiah)) { row.TaxRateRupiahPerDollar = Math.Round(decimal.Parse(taxRateRupiah), 2, MidpointRounding.AwayFromZero); } if (!CommonUtil.IsNullOrEmpty(bankRateDollar)) { row.BankRateDollarPerRupiah = Math.Round(decimal.Parse(bankRateDollar), 9, MidpointRounding.AwayFromZero); } if (!CommonUtil.IsNullOrEmpty(taxRateDollar)) { row.TaxkRateDollarPerRupiah = Math.Round(decimal.Parse(taxRateDollar), 9, MidpointRounding.AwayFromZero); } row.CreateBy = CommonUtil.dsTransData.dtUserData.EmpNo; row.CreateDate = CommonUtil.dsTransData.dtOperationData.ProcessDateTime; row.UpdateBy = CommonUtil.dsTransData.dtUserData.EmpNo; row.UpdateDate = CommonUtil.dsTransData.dtOperationData.ProcessDateTime; return(row); }
public tbt_RateConversion RegisterRate(NameValueCollection param) { DateTime targetDate = DateTime.ParseExact(param["targetDate"], "d/MMM/yyyy", null); var registered = db.tbt_RateConversion.Where(e => e.TargetDate == targetDate); tbt_RateConversion row = null; if (registered.Count() > 0) { row = UpdateRow( registered.First(), param["bankRateRupiah"], param["taxRateRupiah"], param["bankRateDollar"], param["taxRateDollar"] ); } else { row = CreateNewRow( param["targetDate"], param["bankRateRupiah"], param["taxRateRupiah"], param["bankRateDollar"], param["taxRateDollar"] ); db.tbt_RateConversion.Add(row); } db.SaveChanges(); return(row); }
/// <summary> /// Get current exchange tax rate row. /// </summary> /// <param name="baseDate"></param> /// <param name="getJustBefore"></param> /// <returns></returns> public tbt_RateConversion GetExchangeTaxRate(DateTime baseDate, ref double errorCode) { tbt_RateConversion rate = GetRateOnTargetDate(baseDate, ref errorCode); if (CommonUtil.IsNullOrEmpty(rate)) { errorCode = RateCalcCode.C_ERROR_NO_RATE; rate = GetJustBeforeTaxRateByTargetDate(baseDate, ref errorCode); } return(rate); }
/// <summary> /// return converted Amount by bank rate /// </summary> /// <param name="baseDate"></param> /// <param name="convertType"></param> /// <param name="amount"></param> /// <param name="errorCode"></param> /// <returns></returns> public decimal ConvertAmountByBankRate(DateTime baseDate, string convertType, decimal amount, ref double errorCode) { errorCode = RateCalcCode.C_NO_ERROR; decimal convertedAmount = 0; tbt_RateConversion rateRow = GetExchangeBankRate(baseDate, ref errorCode); if (errorCode != RateCalcCode.C_NO_ERROR && errorCode != RateCalcCode.C_ERROR_NO_RATE) { return(0); } if (convertType == RateCalcCode.C_CONVERT_TYPE_TO_DOLLAR && !CommonUtil.IsNullOrEmpty(rateRow.BankRateDollarPerRupiah)) {// IRP to USD convertedAmount = amount * (decimal)rateRow.BankRateDollarPerRupiah; } else if (convertType == RateCalcCode.C_CONVERT_TYPE_TO_RPIAH && !CommonUtil.IsNullOrEmpty(rateRow.BankRateRupiahPerDollar)) {// USD to IRP convertedAmount = amount * (decimal)rateRow.BankRateRupiahPerDollar; } else { errorCode = RateCalcCode.C_ERROR_OTHER; } if (errorCode != RateCalcCode.C_NO_ERROR && errorCode != RateCalcCode.C_ERROR_NO_RATE) { return(0); } CheckConcertedAmount(convertedAmount, ref errorCode); if (errorCode != RateCalcCode.C_NO_ERROR && errorCode != RateCalcCode.C_ERROR_NO_RATE) { return(0); } RoundConvertedAmount(ref convertedAmount, convertType, ref errorCode); if (errorCode != RateCalcCode.C_NO_ERROR && errorCode != RateCalcCode.C_ERROR_NO_RATE) { return(0); } return(convertedAmount); }
public tbt_RateConversion UpdateRow(tbt_RateConversion registerdRow, string bankRateRupiah, string taxRateRupiah, string bankRateDollar, string taxRateDollar) { if (!CommonUtil.IsNullOrEmpty(bankRateRupiah)) { registerdRow.BankRateRupiahPerDollar = Math.Round(decimal.Parse(bankRateRupiah), 2, MidpointRounding.AwayFromZero); } if (!CommonUtil.IsNullOrEmpty(taxRateRupiah)) { registerdRow.TaxRateRupiahPerDollar = Math.Round(decimal.Parse(taxRateRupiah), 2, MidpointRounding.AwayFromZero); } if (!CommonUtil.IsNullOrEmpty(bankRateDollar)) { registerdRow.BankRateDollarPerRupiah = Math.Round(decimal.Parse(bankRateDollar), 9, MidpointRounding.AwayFromZero); } if (!CommonUtil.IsNullOrEmpty(taxRateDollar)) { registerdRow.TaxkRateDollarPerRupiah = Math.Round(decimal.Parse(taxRateDollar), 9, MidpointRounding.AwayFromZero); } registerdRow.UpdateBy = CommonUtil.dsTransData.dtUserData.EmpNo; registerdRow.UpdateDate = CommonUtil.dsTransData.dtOperationData.ProcessDateTime; return(registerdRow); }