コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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;
        }