Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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" }));
        }
Ejemplo n.º 4
0
        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");
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
 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)
     });
 }
Ejemplo n.º 8
0
 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
     });
 }
Ejemplo n.º 9
0
        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));
        }
Ejemplo n.º 10
0
 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
     });
 }
Ejemplo n.º 11
0
        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"));
        }
Ejemplo n.º 12
0
        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);
            }
        }
Ejemplo n.º 13
0
 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
     });
 }
Ejemplo n.º 14
0
 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));
        }
Ejemplo n.º 16
0
        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--;
            }
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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));
            }
        }
Ejemplo n.º 19
0
        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;
                }
            }
        }
Ejemplo n.º 20
0
 public DebtJsViewModel(DebtModel model)
 {
     _model = model;
 }
Ejemplo n.º 21
0
 public static void createChange(DebtModel Debt)
 {
     db.Insert(Debt);
 }