Ejemplo n.º 1
0
        public void OnSaveTravelExpense()
        {
            // remove travelexpenseitem in case of amount00 and amount07 and amount19 are o

            for (int i = 0; i < TravelExpense.TravelExpenseItems.Count; i++)
            {
                TravelExpenseItem item = travelExpense.TravelExpenseItems.ElementAt(i);
                if (item.Amount00 == 0 && item.Amount07 == 0 && item.Amount19 == 0)
                {
                    TravelExpense.TravelExpenseItems.Remove(item);
                }
            }

            TravelExpense.EmployeeForTravelExpensesId = SelectedEmployee.Id;
            TravelExpense.EmployeeName       = SelectedEmployee.FullName;
            TravelExpense.MonthAndYear       = $"{ReportAsOf.ToString("MMMM yyyy")}";
            TravelExpense.TravelExpenseItems = expenseItems.ToList();
            TravelExpense.ExpenseDate        = new DateTime(ReportAsOf.Year, ReportAsOf.Month, 1);
            if (TravelExpense.Id == 0)
            {
                TravelExpense = dbAccess.InsertTravelExpense(TravelExpense);
            }
            else
            {
                TravelExpense updated = dbAccess.UpdateTravelExpense(TravelExpense);
                if (updated == null)
                {
                    NotificationRequest.Raise(new Notification()
                    {
                        Title   = "QuantCo Deutschland GmbH",
                        Content = "Fehler beim Ändern der Reisekosten"
                    });
                }
            }
        }
Ejemplo n.º 2
0
        private void OnAddingNewRowCommand(object obj)
        {
            GridViewAddingNewEventArgs e = obj as GridViewAddingNewEventArgs;

            if (e == null)
            {
                return;
            }

            TravelExpenseItem item = new TravelExpenseItem();

            item.Status          = DBStatus.Added;
            item.TravelExpenseId = TravelExpense.Id;
            e.NewObject          = item;
            //this will ensure selectedTransactionType is newly set in OnCellValidated
            selectedTransactionType = null;
        }
Ejemplo n.º 3
0
        private void ListOfTravelExpenseItems_CurrentChanged(object sender, EventArgs e)
        {
            currentTravelExpenseItem = ListOfTravelExpenseItems.CurrentItem as TravelExpenseItem;
            if (currentTravelExpenseItem == null)
            {
                return;
            }
            if (currentTravelExpenseItem.TravelExpenseId != 0)
            {
                selectedTransactionType = dbAccess.GetTransactionById(currentTravelExpenseItem.DatevTransactionTypeId);
            }
            CanEditTaxableIncome = currentTravelExpenseItem.IsTaxableIncome;

            // set new ListOfTaxableItems
            ListOfTaxableItems = CollectionViewSource.GetDefaultView(currentTravelExpenseItem.TaxableIncomeItems);
            ListOfTaxableItems.CurrentChanged -= ListOfTaxableItems_CurrentChanged;
            ListOfTaxableItems.CurrentChanged += ListOfTaxableItems_CurrentChanged;
            RaisePropertyChanged("ListOfTaxableItems");
        }
Ejemplo n.º 4
0
        private void OnCellValidated()
        {
            TravelExpenseItem item = ListOfTravelExpenseItems.CurrentItem as TravelExpenseItem;

            if (item == null)
            {
                return;
            }
            if (selectedTransactionType == null)
            {
                if (item.DatevTransactionTypeId > 0)
                {
                    selectedTransactionType = dbAccess.GetTransactionById(item.DatevTransactionTypeId);
                }
                if (selectedTransactionType != null)
                {
                    item.IsTaxableIncome = selectedTransactionType.IsTaxableIncome;
                }
            }
            else
            {
                if (item.DatevTransactionTypeId > 0 && selectedTransactionType.Id != item.DatevTransactionTypeId)
                {
                    selectedTransactionType = dbAccess.GetTransactionById(item.DatevTransactionTypeId);
                    item.IsTaxableIncome    = selectedTransactionType.IsTaxableIncome;
                }
            }
            if (string.IsNullOrEmpty(item.Description) && selectedTransactionType != null)
            {
                item.Description = selectedTransactionType.TransactionType;
            }
            item.TotalAmount = item.Amount00 + item.Amount07 + item.Amount19;
            if (item.Status == DBStatus.Unchanged)
            {
                item.Status = DBStatus.Updated;
            }
            CanEditTaxableIncome = item.TotalAmount != 0 ? item.IsTaxableIncome : false;
        }
Ejemplo n.º 5
0
        private void OnRowEditEnded()
        {
            TravelExpenseItem item = ListOfTravelExpenseItems.CurrentItem as TravelExpenseItem;

            if (item.IsTaxableIncome)
            {
                if (item.TaxableIncomeItems.Count == 0)
                {
                    item.TaxableIncomeItems.Add(new TaxableIncomeItem()
                    {
                        TravelExpenseItemId        = item.Id,
                        Description                = item.Description,
                        MonthAndYear               = $"{ReportAsOf.ToString("MMMM yyyy")}",
                        EmployeeForTravelExpenseId = SelectedEmployee.Id,
                        TaxableAmount              = item.TotalAmount,
                        Status = DBStatus.Added
                    });
                }
            }
            else
            {
                item.TaxableIncomeItems.Clear();
            }

            TravelExpense.TotalReimbursement = 0;
            foreach (TravelExpenseItem te in expenseItems)
            {
                TravelExpense.TotalReimbursement += te.TotalAmount;
            }
            if (item.TotalAmount == 0)
            {
                return;
            }
            if (string.IsNullOrEmpty(item.Description))
            {
                item.Description = selectedTransactionType.TransactionType;
            }
        }
Ejemplo n.º 6
0
        private void OnEditTaxableIncome()
        {
            TravelExpenseItem item = ListOfTravelExpenseItems.CurrentItem as TravelExpenseItem;

            if (item == null)
            {
                return;
            }
            AmountToBeSplit    = item.TotalAmount;
            ListOfTaxableItems = CollectionViewSource.GetDefaultView(item.TaxableIncomeItems);
            ListOfTaxableItems.CurrentChanged -= ListOfTaxableItems_CurrentChanged;
            ListOfTaxableItems.CurrentChanged += ListOfTaxableItems_CurrentChanged;
            RaisePropertyChanged("ListOfTaxableItems");
            CanSaveTaxableIncome     = true;
            TaxableIncomeWindowState = Visibility.Visible;
            if (item.TaxableIncomeItems.Count > 0)
            {
                AmountToBeSplit = 0;
                foreach (TaxableIncomeItem ti in item.TaxableIncomeItems)
                {
                    AmountToBeSplit += ti.TaxableAmount;
                }
            }
        }
Ejemplo n.º 7
0
        public override void OnNavigatedTo(NavigationContext navigationContext)
        {
            SelectedEmployeeIndex = -1;

            Employees = dbAccess.GetAllEmployees();
            Employees = Employees.OrderBy(e => e.FullName).ToList();
            RaisePropertyChanged("Employees");

            TransactionTypes = new ObservableCollection <DatevTransactionType>(dbAccess.GetAllTransactionTypes());
            RaisePropertyChanged("TransactionTypes");

            TravelExpense t = navigationContext.Parameters["TravelExpense"] as TravelExpense;

            if (t.Id > 0)
            {
                TravelExpense = dbAccess.GetTravelExpenseById(t.Id);
                if (TravelExpense != null)
                {
                    expenseItems = new ObservableCollection <TravelExpenseItem>(TravelExpense.TravelExpenseItems);
                    if (expenseItems.Count > 0)
                    {
                        currentTravelExpenseItem = expenseItems.ElementAt(0);
                        CanEditTaxableIncome     = currentTravelExpenseItem.IsTaxableIncome;
                    }
                    else
                    {
                        currentTravelExpenseItem = null;
                    }

                    ReportAsOf            = TravelExpense.ExpenseDate;
                    SelectedEmployee      = Employees.FirstOrDefault(e => e.Id == TravelExpense.EmployeeForTravelExpensesId);
                    SelectedEmployeeIndex = Employees.IndexOf(SelectedEmployee);
                    RaisePropertyChanged("SelectedEmployee");
                    // check, whether ReceiptFile is still available
                    if (!string.IsNullOrEmpty(TravelExpense.ReportFileName))
                    {
                        if (File.Exists(Path.Combine(travelExpenseRoot, TravelExpense.ReportFileName)))
                        {
                            ReceiptFileNameFound = true;
                        }
                        else
                        {
                            ReceiptFileNameFound = false;
                        }
                        if (!ReceiptFileNameFound)
                        {
                            NotificationRequest.Raise(new Notification()
                            {
                                Title   = "QuantCo Deutschland GmbH",
                                Content = "Die angegebene Datei existiert nicht. Sie wurde entweder gelöscht oder verschoben"
                            });
                        }
                    }
                    else
                    {
                        ReceiptFileNameFound = false;


                        NotificationRequest.Raise(new Notification()
                        {
                            Title   = "QuantCo Deutschland GmbH",
                            Content = "Es wurde keine Beleg-Datei angegeben"
                        });
                    }
                }
            }
            else
            {
                TravelExpense            = new TravelExpense();
                expenseItems             = new ObservableCollection <TravelExpenseItem>();
                currentTravelExpenseItem = null;
                ReceiptFileNameFound     = false;
                ReportAsOf = DateTime.Now.Date;
                ReportAsOf = ReportAsOf.AddMonths(-1);
            }

            ListOfTravelExpenseItems = CollectionViewSource.GetDefaultView(expenseItems);
            ListOfTravelExpenseItems.CurrentChanged -= ListOfTravelExpenseItems_CurrentChanged;
            ListOfTravelExpenseItems.CurrentChanged += ListOfTravelExpenseItems_CurrentChanged;

            // set Filter: do not show deletedItems
            ListOfTravelExpenseItems.Filter = item =>
            { TravelExpenseItem te = item as TravelExpenseItem;
              if (te == null)
              {
                  return(true);
              }
              return(te.Status != DBStatus.Removed); };
            RaisePropertyChanged("ListOfTravelExpenseItems");
        }