示例#1
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");
        }