public DebtViewModel(DebtModel debt) : this() { Id = debt.Id; Description = debt.Description; DebtType = debt.DebtType; CurrencyExchangeRate = debt.CurrencyExchangeRate; Value = debt.Value; InitialFee = debt.InitialFee; PaidValue = debt.PaidValue; OnlyInitialFee = debt.OnlyInitialFee; PaymentType = debt.PaymentType; FixedAmount = debt.FixedAmount; InterestRate = debt.InterestRate; MonthCount = debt.MonthCount; TakingDate = debt.TakingDate; DueDate = debt.DueDate; RepayingDate = debt.RepayingDate; IsRepaid = debt.IsRepaid; Remark = debt.Remark; CurrencyId = debt.CurrencyId; CategoryId = debt?.CategoryId; StorageId = debt?.StorageId; UserId = debt.UserId; Currency = debt.Currency; Category = debt.Category; Storage = debt.Storage; Penalties = debt.Penalties; }
public void EditDebt(Debt request) { DebtModel model; if (request.Id.ToGuid() == Guid.Empty) { model = new DebtModel(); ObjectRepository.Add(model); } else { model = ObjectRepository.Set <DebtModel>().First(v => v.Id == request.Id.ToGuid()); } model.When = request.Issued.ToDateTime(); model.Amount = request.Amount; model.Ccy = request.Ccy; model.Percentage = request.Percentage; model.DaysCount = request.DaysCount; model.Description = request.Description; try { if (!string.IsNullOrWhiteSpace(request.RegexForTransfer)) { // ReSharper disable once ReturnValueOfPureMethodIsNotUsed new Regex(request.RegexForTransfer, RegexOptions.None, TimeSpan.FromSeconds(0.1)).Match("test"); } } catch { request.RegexForTransfer = ""; } model.RegexForTransfer = request.RegexForTransfer; }
public virtual ActionResult Save(DebtModel model) { if (model.DebtId <= 0) //Create News { if (!ModelState.IsValid) { var offices = _myOfficeRepository.Search("").Where(p => WorkContext.MyOffices.Contains(p.MyOfficeId)).ToList(); model.MyOffices = offices; return(View("CreateDebt", model)); } var entity = new Debt { IsDeleted = false, CreateDate = DateTime.Now, CreateUserId = WorkContext.CurrentUserId, Note = model.Note, MyOfficeId = model.MyOfficeId, FromDate = model.FromDate, ToDate = model.ToDate, Total = model.Total, Paid = model.Paid, }; using (UnitOfWork) { Repository.Insert(entity); } this.SetSuccessNotification(string.Format("{0} đã được lưu thành công.", "Công nợ")); } return(RedirectToAction("Create", new { area = "Administrator" })); }
private DebtPaidModel GetDebtPaidModel(decimal sum, DebtModel debt) { var stateDuty = (debt.StateDuty > sum) ? sum : debt.StateDuty; sum = sum - debt.StateDuty; var sumAmount = decimal.Zero; if (sum > 0) { sumAmount = debt.SumAmount > sum ? sum : debt.SumAmount; sum -= debt.SumAmount; } var fine = decimal.Zero; if (sum > 0) { var debtFine = debt.Penalties + debt.Fine + debt.InterestAmount; fine = debtFine > sum ? sum : debtFine; } return(new DebtPaidModel { StateDuty = stateDuty, SumAmount = sumAmount, Fine = fine, DebtId = debt.Id, Total = stateDuty + sumAmount + fine }); }
public void Add(DebtModel debtModel) { string Name = debtModel.Name; decimal Amount = 0; decimal APR = 0; decimal Payment = 0; decimal.TryParse(debtModel.Amount.ToString(), out Amount); decimal.TryParse(debtModel.APR.ToString(), out APR); decimal.TryParse(debtModel.Payment.ToString(), out Payment); APR /= 100; // Save code goes here Data data = new Data(); Debt debtToAdd = new Debt() { Name = Name, Amount = Amount, DueDay = 1, Interest = APR, MinPayment = Payment, }; data.Insert(debtToAdd); Response.Redirect("/Debt/List"); }
private void DebtButton_Clicked(object sender, EventArgs e) { if (string.IsNullOrEmpty(NameField.Text)) { DisplayAlert("Error", "Name is empty, please verify all information.", "OK"); return; } if (string.IsNullOrEmpty(ValueField.Text)) { DisplayAlert("Error", "Sum is empty, please verify all information.", "OK"); return; } if (double.TryParse(ValueField.Text, out double value) == false) { DisplayAlert("Error", "Please enter the correct number", "OK"); return; } if (styleSwitch.IsToggled) { value = -value; } DebtModel Item = new DebtModel() { Name = char.ToUpper(NameField.Text[0]) + NameField.Text.Substring(1), DebtChange = value, Description = !string.IsNullOrEmpty(DescriptionField.Text) ? char.ToUpper(DescriptionField.Text[0]) + DescriptionField.Text.Substring(1) : "", Date = DateDebtStart.Date.ToString("dd MM yyyy") }; if (string.IsNullOrEmpty(debtInfo.Date) == false) { DBContext.eraseByFields(debtInfo); } DBContext.createChange(Item); if (string.IsNullOrEmpty(debtInfo.Name) == false) { ((PersonalityDebtPage)Navigation.NavigationStack.ToList <Page>()[1]).Refresh(); } if (string.IsNullOrEmpty(debtInfo.Date) == true) { DisplayAlert("Success", "Your debt has been successfully created.", "OK"); } else { DisplayAlert("Success", "Your debt has been successfully changed.", "OK"); } ((DebtsViews)Navigation.NavigationStack.ToList <Page>()[0]).Refresh(); Navigation.PopAsync(); }
public static Debt Map(this DebtModel debtModel) { return(new Debt { Id = Guid.Parse(debtModel.Id), Member1 = debtModel.Member1, Member2 = debtModel.Member2, Money = debtModel.Money, TaskId = Guid.Parse(debtModel.TaskId) }); }
public static DebtReference ToReferenceView(this DebtModel entity) { return(new DebtReference { Id = entity.Id, Description = entity.Description, DebtType = entity.DebtType, CurrencyId = entity.CurrencyId, Currency = entity.Currency }); }
public ActionResult Create() { var offices = _myOfficeRepository.Search("").Where(p => WorkContext.MyOffices.Contains(p.MyOfficeId)).ToList(); var model = new DebtModel { MyOffices = offices, FromDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1), ToDate = DateTime.Now }; return(View(model)); }
public static FullDebtModel FullDebtMap(this DebtModel debtModel) { return(new FullDebtModel { Id = new List <string>() { debtModel.Id }, Member1 = debtModel.Member1, Member2 = debtModel.Member2, Money = debtModel.Money }); }
public async Task <ActionResult> UpdateDebt(DebtModel model) { DebtDto debtDto = mapper.Map <DebtModel, DebtDto>(model); OperationDetails operationDetails = await debtService.UpdateDebtAsync(debtDto); if (operationDetails.Succedeed) { return(RedirectToAction("Index", "Debt")); } ModelState.AddModelError(operationDetails.Property, operationDetails.Message); return(RedirectToAction("Index", "Debt")); }
public void CreateForDebt(DebtModel model) { // only when storage is defined if (!model.StorageId.HasValue || model.StorageId <= 0) { return; } // value to be added to the related storage var valueForStorage = 0M; // values that should be used for updating limits var valueForLimits = 0M; var valueExchangeRateForLimits = 0M; // create a new record for the debt to keep the history if (!model.OnlyInitialFee) { var record = this.Add(CreateRecordForDebt(model, model.DebtType == DebtType.TakeBorrow ? RecordType.Income : RecordType.Expense, x => x.Value)); valueForStorage += model.ValueExchangeRate; valueForLimits += record.RecordType == RecordType.Expense ? model.Value : 0; valueExchangeRateForLimits += record.RecordType == RecordType.Expense ? model.ValueExchangeRate : 0; } // create record for the initial fee if (model.InitialFee != 0) { var record = this.Add(CreateRecordForDebt(model, model.DebtType == DebtType.TakeBorrow ? RecordType.Expense : RecordType.Income, x => x.InitialFee)); valueForStorage += -model.InitialFeeExchangeRate; valueForLimits += record.RecordType == RecordType.Expense ? model.InitialFee : 0; valueExchangeRateForLimits += record.RecordType == RecordType.Expense ? model.InitialFeeExchangeRate : 0; } // update related storage value if (valueForStorage != 0) { _transactionDependenceService.AddValueToStorage(model.StorageId.Value, (model.DebtType == Model.Enums.DebtType.TakeBorrow ? 1 : -1) * valueForStorage); } // update limits if (valueForLimits != 0 || valueExchangeRateForLimits != 0) { _transactionDependenceService.UpdateLimits(model.TakingDate, model.CategoryId, model.CurrencyId, valueForLimits, model.Storage?.CurrencyId, valueExchangeRateForLimits); } }
private Record CreateRecordForDebt(DebtModel model, RecordType recordType, Func <DebtModel, decimal> value) { return(new Record() { Date = model.TakingDate, Description = model.Description, CategoryId = model.CategoryId, CurrencyExchangeRate = model.CurrencyExchangeRate, CurrencyId = model.CurrencyId, DebtId = model.Id, RecordType = recordType, StorageId = model.StorageId.Value, UserId = model.UserId, Value = value(model), Remark = model.Remark }); }
private DebtView ToDebtView(DebtModel debt) { return(new DebtView { Model = new Debt { Amount = debt.Amount, Ccy = debt.Ccy ?? "", Description = debt.Description ?? "", Id = debt.Id.ToUUID(), Issued = debt.When.ToTimestamp(), Percentage = debt.Percentage, DaysCount = debt.DaysCount, RegexForTransfer = debt.RegexForTransfer ?? "" }, Returned = debt.Returned, LastPaymentDate = debt.LastPaymentDate ?? "" }); }
public IActionResult Edit(int ID) { DebtModel debtModel = new DebtModel(); // Save code goes here Data data = new Data(); Debt debt = data.connection.FirstOrDefault <Debt>("WHERE ID = @0", ID); if (debt != null) { debtModel.Name = debt.Name; debtModel.Amount = debt.Amount; debtModel.APR = debt.Interest; debtModel.Payment = debt.MinPayment; } return(View(debtModel)); }
public static void eraseByFields(DebtModel Debt) { int valueSameRows = db.Table <DebtModel>().Count(change => change.Name == Debt.Name && change.Date == Debt.Date && change.Description == Debt.Description && change.DebtChange == Debt.DebtChange ) - 1; db.Table <DebtModel>().Delete(change => change.Name == Debt.Name && change.Date == Debt.Date && change.Description == Debt.Description && change.DebtChange == Debt.DebtChange ); while (valueSameRows > 0) { db.Insert(Debt); valueSameRows--; } }
private async Task <DebtModel> EnrichDebtModel(DebtModel debt, DebtDto debtDto) { var customerDto = await customerService.GetCustomerByIdAsync(debtDto.CustomerId).ConfigureAwait(false); var agreemnetDto = await agreementService.GetAgreementByIdAsync(debtDto.AgreementId).ConfigureAwait(false); debt.CustomerINN = customerDto.INN; debt.CustomerName = customerDto.Name; debt.AgreementName = agreemnetDto.Name; debt.Postponement = agreemnetDto.Postponement; debt.Total = debt.StateDuty + debt.Fine + debt.StateDuty + debt.Penalties + debt.InterestAmount; debt.TotalExacted = debt.StateDutyExacted + debt.FineExacted + debt.StateDutyExacted + debt.PenaltiesExacted + debt.InterestAmountExacted; var statusDto = debtStatus.GetDebtStatusByDebtId(debt.Id); var status = statusDto.Select(p => mapper.Map <DebtStatusDto, DebtStatusModel>(p)).ToList(); debt.DebtStatuses = status ?? new List <DebtStatusModel>(); var debtPaidDto = debtPaid.GetDebtPaidByDebtId(debt.Id); debt.DebtPaid = GetDebtPaidModel(debtPaidDto.Sum, debt); var storesDto = debtStore.GetDebtStoreByDebtId(debt.Id); var stores = storesDto.Select(p => mapper.Map <DebtStoreDto, DebtStoreModel>(p)).ToList(); debt.DebtStores = stores ?? new List <DebtStoreModel>(); debt.DebtClaim = new DebtClaimModel { DebtId = 1, ClaimName = "ОД +%", DateClaimStart = DateTime.Now, DateClaimEnd = DateTime.Now, NumberClaim = "1", PenaltyRate = 0.15, RefinancingRate = 9.5 }; return(debt); }
private async void PersonalDebts_ItemTapped(object sender, ItemTappedEventArgs e) { string result = await DisplayActionSheet("What to do...", "Cancel", null, "Close this debt", "Change this debt"); DebtModel debtInfo = (DebtModel)e.Item; if (result == "Close this debt") { bool decision = await DisplayAlert("Warning", string.Format("Are you sure you want close this debt({0}, {1}, {2})", debtInfo.DebtChange.ToString(), debtInfo.Description, debtInfo.Date), "YES", "NO"); if (decision == true) { DBContext.eraseByFields(debtInfo); Refresh(); } } if (result == "Change this debt") { await Navigation.PushAsync(new CreateDebtPage("Comings", debtInfo)); } }
public CreateDebtPage(string currentPage, DebtModel debtInfo) { InitializeComponent(); styleSwitch.IsToggled = (currentPage == "Comings") ? false : true; DateDebtStart.Date = DateTime.Now; this.debtInfo = debtInfo; if (string.IsNullOrEmpty(debtInfo.Name) == false) { NameField.IsReadOnly = true; NameField.Text = debtInfo.Name; if (string.IsNullOrEmpty(debtInfo.Date) == false) { Label_Info.Text = "Change the debt"; styleSwitch.IsVisible = false; StackLayout_SwitchInfo.IsVisible = false; DebtButton.Text = "Change debt"; CultureInfo provider = CultureInfo.InvariantCulture; DateDebtStart.Date = DateTime.ParseExact(debtInfo.Date, "dd MM yyyy", provider); ValueField.Text = debtInfo.DebtChange.ToString(); DescriptionField.Text = debtInfo.Description; } } }
public DebtJsViewModel(DebtModel model) { _model = model; }
public static void createChange(DebtModel Debt) { db.Insert(Debt); }