private void OnTaxableIncomeRowEditEnded() { decimal itemAmount = AmountToBeSplit; DatevTransactionType transactionType = dbAccess.GetTransactionById(currentTravelExpenseItem.DatevTransactionTypeId); TaxableIncomeItem currentTaxableIncomeItem = ListOfTaxableItems.CurrentItem as TaxableIncomeItem; if (currentTaxableIncomeItem == null) { return; } // if transactionTye.IsTaxableIncome AdjustGrossIncome must be false; if (transactionType.IsTaxableIncome) { currentTaxableIncomeItem.AdjustGrossIncome = false; } CanSaveTaxableIncome = false; // if (SplitTotalAmount) { int nrOfItems = currentTravelExpenseItem.TaxableIncomeItems.Where(t => t.Status != DBStatus.Removed).Count(); decimal equalAmount = Math.Round(itemAmount / nrOfItems, 2); decimal roundingDifference = itemAmount - (equalAmount * nrOfItems); foreach (TaxableIncomeItem item in currentTravelExpenseItem.TaxableIncomeItems) { item.TaxableAmount = equalAmount; } // add roundingDifference to first item currentTravelExpenseItem.TaxableIncomeItems[0].TaxableAmount += roundingDifference; } foreach (TaxableIncomeItem item in currentTravelExpenseItem.TaxableIncomeItems) { if (item.Status == DBStatus.Removed) { continue; } itemAmount -= item.TaxableAmount; } if (itemAmount != 0) { if (AcceptLowerTaxableAmount) { CanSaveTaxableIncome = true; } } else { CanSaveTaxableIncome = true; } }
private void OnAddingNewTaxableIncomeItem(object args) { GridViewAddingNewEventArgs e = args as GridViewAddingNewEventArgs; if (e == null) { return; } TaxableIncomeItem item = new TaxableIncomeItem(); item.TravelExpenseItemId = currentTravelExpenseItem.Id; item.Description = currentTravelExpenseItem.Description; item.MonthAndYear = $"{ReportAsOf.ToString("MMMM yyyy")}"; e.NewObject = item; CanSaveTaxableIncome = false; }