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