Esempio n. 1
0
        public ActionResult SaveTravelExpense(TravelExpense expense)
        {
            SaveTravelExpenseControl uco = new SaveTravelExpenseControl();

            expense = uco.Save(expense);
            return(View("NewTravelExpense", expense));
        }
        private void OnDeletingTravelExpense(object obj)
        {
            TravelExpense te = ListOfTravelExpenses.CurrentItem as TravelExpense;

            if (te == null)
            {
                return;
            }
            Telerik.Windows.Controls.GridViewDeletingEventArgs e = obj as Telerik.Windows.Controls.GridViewDeletingEventArgs;
            if (e == null)
            {
                return;
            }
            ConfirmationRequest.Raise(new Confirmation()
            {
                Title   = "QauntCo Deutschland GmbH",
                Content = $"Wollen Sie die ausgewählten Reisekosten ({te.EmployeeName}) wirklich löschen?"
            }, respone =>
            {
                if (respone.Confirmed)
                {
                    dbAccess.RemoveTravelExpense(te);
                }
                else
                {
                    e.Cancel = true;
                }
            });
        }
Esempio n. 3
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"
                    });
                }
            }
        }
Esempio n. 4
0
        private async void 儲存()
        {
            Category         = foo讀取Picker選擇項目();
            fooTravelExpense = new TravelExpense
            {
                ID          = ID,
                Account     = AppData.Account,
                Category    = category,
                Domestic    = Domestic,
                Expense     = Expense,
                HasDocument = HasDocument,
                Location    = Location,
                Memo        = Memo,
                Title       = Title,
                TravelDate  = TravelDate,
                Updatetime  = DateTime.Now,
            };
            if (紀錄處理模式 == "新增")
            {
                await AppData.DataService.PostTravelExpensesAsync(fooTravelExpense);
            }
            else
            {
                await AppData.DataService.PutTravelExpensesAsync(fooTravelExpense);
            }
            var fooItems = (await AppData.DataService.GetTravelExpensesAsync(AppData.Account)).ToList();

            AppData.AllTravelExpense = fooItems;
            _eventAggregator.GetEvent <CRUDEvent>().Publish("Refresh");
            await _navigationService.GoBackAsync();
        }
        public int Add(TravelExpenseSubmitViewModel viewModel)
        {
            var user = employeeManager.Find(u => u.Email == viewModel.Email);

            if (user != null)
            {
                TravelExpense model = new TravelExpense
                {
                    Title      = viewModel.Title,
                    PhotoPath  = viewModel.PhotoPath,
                    Status     = ExpenseStatus.Pending,
                    EmployeeId = user.Id
                };
                var expense = expenseManager.Insert(model);
                if (expense.Id > 0)
                {
                    // Send an expense email to Finance Manager
                    SendExpenseEmail(expense.Id);
                }
                return(expense.Id);
            }
            else
            {
                return(0);
            }
        }
Esempio n. 6
0
 public void OnNavigatedTo(NavigationParameters parameters)
 {
     紀錄處理模式           = parameters["模式"] as string;
     fooTravelExpense = parameters["TravelExpense"] as TravelExpense;
     ID          = fooTravelExpense.ID;
     Category    = fooTravelExpense.Category;
     Domestic    = fooTravelExpense.Domestic;
     Expense     = fooTravelExpense.Expense;
     HasDocument = fooTravelExpense.HasDocument;
     Location    = fooTravelExpense.Location;
     Memo        = fooTravelExpense.Memo;
     Title       = fooTravelExpense.Title;
     TravelDate  = fooTravelExpense.TravelDate;
     if (紀錄處理模式 == "新增")
     {
         ShowDeleteMode = false;
         foo頁面Title初始化("差旅費用 新增");
     }
     else
     {
         ShowDeleteMode = true;
         foo分類Picker初始化(fooTravelExpense.Category);
         foo頁面Title初始化("差旅費用 修改");
     }
 }
Esempio n. 7
0
        public ActionResult newTravelExpense()
        {
            TravelExpenseBuilder            builder  = new TravelExpenseBuilder();
            EOfficeDirector <TravelExpense> director = new EOfficeDirector <TravelExpense>();
            TravelExpense form = director.Construct(builder);

            return(View(form));
        }
Esempio n. 8
0
 public TravelExpense Save(TravelExpense expense)
 {
     if (expense != null)
     {
         expense.TravelExpenseID = "TE010001";
     }
     return(expense);
 }
Esempio n. 9
0
        private string GenerateReceiptFileName(TravelExpense travelExpense)
        {
            string formattedDate = $"{ReportAsOf:yyyy}{ReportAsOf:MM}";
            string fileName      = $"{formattedDate} {SelectedEmployee.FullName} Belege.pdf";
            string dir           = $"Reisekosten {ReportAsOf.Year.ToString()}";
            string path          = Path.Combine(Properties.Settings.Default.RootDirectory, Properties.Settings.Default.TravelExpenseDirectory, dir, fileName);

            return(path);
        }
        public async Task <VerifyRecordResult> AddAsync(TravelExpenseAdapterModel paraObject)
        {
            TravelExpense itemParameter = Mapper.Map <TravelExpense>(paraObject);

            CleanTrackingHelper.Clean <TravelExpense>(context);
            await context.TravelExpense
            .AddAsync(itemParameter);

            await context.SaveChangesAsync();

            CleanTrackingHelper.Clean <TravelExpense>(context);
            return(VerifyRecordResultFactory.Build(true));
        }
        public async Task <TravelExpenseAdapterModel> GetAsync(int id)

        {
            TravelExpense item = await context.TravelExpense
                                 .AsNoTracking()
                                 .Include(x => x.MyUser)
                                 .FirstOrDefaultAsync(x => x.Id == id);

            TravelExpenseAdapterModel result = Mapper.Map <TravelExpenseAdapterModel>(item);

            await OhterDependencyData(result);

            return(result);
        }
Esempio n. 12
0
        public async Task PutTravelExpensesAsync(TravelExpense travelExpense)
        {
            using (HttpClient client = GetClient())
            {
                HttpResponseMessage httpResponseMessage = await client.PutAsync(AppData.TravelExpenseUrl,
                                                                                new StringContent(
                                                                                    JsonConvert.SerializeObject(travelExpense, _jsonSerializerSettings),
                                                                                    Encoding.UTF8, "application/json"));

                httpResponseMessage.EnsureSuccessStatusCode();
                string content = await httpResponseMessage.Content.ReadAsStringAsync();

                return;
            }
        }
        public override void OnNavigatedTo(NavigationContext navigationContext)
        {
            base.OnNavigatedTo(navigationContext);
            SelectedTravelExpenses.Clear();

            // Read TravelExpenses
            travelExpenses = new ObservableCollection <TravelExpense>(dbAccess.GetAllTravelExpenses());


            ListOfTravelExpenses = CollectionViewSource.GetDefaultView(travelExpenses);

            ListOfTravelExpenses.CurrentChanged -= ListOfTravelExpenses_CurrentChanged;
            ListOfTravelExpenses.CurrentChanged += ListOfTravelExpenses_CurrentChanged;
            RaisePropertyChanged("ListOfTravelExpenses");
            if (travelExpenses.Count > 0)
            {
                selectedItem = travelExpenses[0];
            }
        }
        // PUT: api/TravelExpense/5
        public void Put([FromBody] TravelExpense value)
        {
            var fooItem = db.TravelExpense.FirstOrDefault(x => x.ID == value.ID);

            if (fooItem != null)
            {
                fooItem.Account     = value.Account;
                fooItem.Category    = value.Category;
                fooItem.Domestic    = value.Domestic;
                fooItem.Expense     = value.Expense;
                fooItem.HasDocument = value.HasDocument;
                fooItem.Location    = value.Location;
                fooItem.Memo        = value.Memo;
                fooItem.Title       = value.Title;
                fooItem.TravelDate  = value.TravelDate;
                fooItem.Updatetime  = value.Updatetime;
                db.SaveChanges();
            }
        }
        public async Task <ITravelExpense> GetByIdAsync(int id)
        {
            var result = default(TravelExpense);
            var travel = await travelController.GetByIdAsync(id);

            if (travel != null)
            {
                result = new TravelExpense();
                result.Travel.CopyProperties(travel);
                foreach (var item in await expenseController.QueryAsync(e => e.TravelId == id))
                {
                    result.ExpenseEntities.Add(item);
                }
            }
            else
            {
                throw new Exception("Entity can't find!");
            }
            return(result);
        }
        public async Task <ITravelExpense> InsertAsync(ITravelExpense entity)
        {
            entity.CheckArgument(nameof(entity));
            entity.Travel.CheckArgument(nameof(entity.Travel));
            entity.Expenses.CheckArgument(nameof(entity.Expenses));

            var result = new TravelExpense();

            result.TravelEntity.CopyProperties(entity.Travel);
            foreach (var item in entity.Expenses)
            {
                var expense = new Expense();

                expense.Travel = result.TravelEntity;
                expense.CopyProperties(item);
                await expenseController.InsertAsync(expense);

                result.ExpenseEntities.Add(expense);
            }
            return(result);
        }
        public async Task <VerifyRecordResult> DeleteAsync(int id)
        {
            CleanTrackingHelper.Clean <TravelExpense>(context);
            TravelExpense item = await context.TravelExpense
                                 .AsNoTracking()
                                 .FirstOrDefaultAsync(x => x.Id == id);

            if (item == null)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法刪除紀錄));
            }
            else
            {
                CleanTrackingHelper.Clean <TravelExpense>(context);
                context.Entry(item).State = EntityState.Deleted;
                await context.SaveChangesAsync();

                CleanTrackingHelper.Clean <TravelExpense>(context);
                return(VerifyRecordResultFactory.Build(true));
            }
        }
        public async Task <ITravelExpense> UpdateAsync(ITravelExpense entity)
        {
            entity.CheckArgument(nameof(entity));
            entity.Travel.CheckArgument(nameof(entity.Travel));
            entity.Expenses.CheckArgument(nameof(entity.Expenses));

            //Delete all costs that are no longer included in the list.
            foreach (var item in await expenseController.QueryAsync(e => e.TravelId == entity.Travel.Id))
            {
                var tmpExpense = entity.Expenses.SingleOrDefault(i => i.Id == item.Id);

                if (tmpExpense == null)
                {
                    await expenseController.DeleteAsync(item.Id);
                }
            }

            var result = new TravelExpense();
            var travel = await travelController.UpdateAsync(entity.Travel);

            result.TravelEntity.CopyProperties(travel);
            foreach (var item in entity.Expenses)
            {
                if (item.Id == 0)
                {
                    item.TravelId = entity.Travel.Id;
                    var insEntity = await expenseController.InsertAsync(item);

                    item.CopyProperties(insEntity);
                }
                else
                {
                    var updEntity = await expenseController.UpdateAsync(item);

                    item.CopyProperties(updEntity);
                }
            }
            return(result);
        }
        public async Task <VerifyRecordResult> UpdateAsync(TravelExpenseAdapterModel paraObject)
        {
            TravelExpense itemData = Mapper.Map <TravelExpense>(paraObject);

            CleanTrackingHelper.Clean <TravelExpense>(context);
            TravelExpense item = await context.TravelExpense
                                 .AsNoTracking()
                                 .FirstOrDefaultAsync(x => x.Id == paraObject.Id);

            if (item == null)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法修改紀錄));
            }
            else
            {
                CleanTrackingHelper.Clean <TravelExpense>(context);
                context.Entry(itemData).State = EntityState.Modified;
                await context.SaveChangesAsync();

                CleanTrackingHelper.Clean <TravelExpense>(context);
                return(VerifyRecordResultFactory.Build(true));
            }
        }
        private void PrepareCsvFile(List <TravelExpense> travelExpensesToBeMoved)
        {
            csvDatevTransactions.Clear();
            foreach (TravelExpense te in travelExpensesToBeMoved)
            {
                TravelExpense travelExpense = dbAccess.GetTravelExpenseById(te.Id);
                foreach (TravelExpenseItem item in travelExpense.TravelExpenseItems)
                {
                    DatevTransactionType type = dbAccess.GetTransactionById(item.DatevTransactionTypeId);
                    if (item.Amount00 != 0)
                    {
                        DatevTransaction datevItem = new DatevTransaction();
                        //Datum
                        datevItem.TransactionDate = travelExpense.ExpenseDate;
                        if (item.PerformanceDate == null)
                        {
                            datevItem.ExpenseDate = datevItem.TransactionDate;
                        }
                        else
                        {
                            datevItem.ExpenseDate = (DateTime)item.PerformanceDate;
                        }

                        //Buchungstext
                        datevItem.TransactionDescription = $"RK {travelExpense.EmployeeName} {item.Description}";
                        //Belegfeld
                        datevItem.TransactionReceipt = (travelExpense.ExpenseDate.Month * 10000 + travelExpense.ExpenseDate.Year).ToString();
                        // Steuersatz
                        datevItem.TransactionVatRate = type.DatevVat07;
                        //Umsatz
                        datevItem.TransactionAmountDatev = item.Amount00;
                        // Soll / Haben
                        if (datevItem.TransactionAmountDatev > 0)
                        {
                            datevItem.TransactionBalancePosition = "H";
                        }
                        else
                        {
                            datevItem.TransactionBalancePosition = "S";
                        }
                        //konto
                        datevItem.TransactionAccount = type.DatevAccount;
                        // gegenkonto
                        datevItem.TransactionContraAccount = travelExpense.EmployeesForTravelExpenses.DatevAccount + type.SubAccount;

                        if (datevItem.TransactionDate < new DateTime(2020, 1, 1))
                        {
                            datevItem.TransactionAccount       = datevItem.TransactionAccount / 100;
                            datevItem.TransactionContraAccount = datevItem.TransactionContraAccount / 100;
                        }
                        csvDatevTransactions.Add(datevItem);
                    }
                    if (item.Amount07 != 0)
                    {
                        DatevTransaction datevItem = new DatevTransaction();
                        //Datum
                        datevItem.TransactionDate = travelExpense.ExpenseDate;
                        if (item.PerformanceDate == null)
                        {
                            datevItem.ExpenseDate = datevItem.TransactionDate;
                        }
                        else
                        {
                            datevItem.ExpenseDate = (DateTime)item.PerformanceDate;
                        }

                        //Buchungstext
                        datevItem.TransactionDescription = $"RK {travelExpense.EmployeeName} {item.Description}";
                        //Belegfeld
                        datevItem.TransactionReceipt = (travelExpense.ExpenseDate.Month * 10000 + travelExpense.ExpenseDate.Year).ToString();
                        // Steuersatz
                        datevItem.TransactionVatRate = type.DatevVat19;
                        //Umsatz
                        datevItem.TransactionAmountDatev = item.Amount07;
                        // Soll / Haben
                        if (datevItem.TransactionAmountDatev > 0)
                        {
                            datevItem.TransactionBalancePosition = "H";
                        }
                        else
                        {
                            datevItem.TransactionBalancePosition = "S";
                        }
                        //konto
                        datevItem.TransactionAccount = type.DatevAccount;
                        // gegenkonto
                        datevItem.TransactionContraAccount = travelExpense.EmployeesForTravelExpenses.DatevAccount + type.SubAccount;

                        if (datevItem.TransactionDate < new DateTime(2020, 1, 1))
                        {
                            datevItem.TransactionAccount       = datevItem.TransactionAccount / 100;
                            datevItem.TransactionContraAccount = datevItem.TransactionContraAccount / 100;
                        }
                        csvDatevTransactions.Add(datevItem);
                    }
                    if (item.Amount19 != 0)
                    {
                        DatevTransaction datevItem = new DatevTransaction();
                        //Datum
                        datevItem.TransactionDate = travelExpense.ExpenseDate;
                        if (item.PerformanceDate == null)
                        {
                            datevItem.ExpenseDate = datevItem.TransactionDate;
                        }
                        else
                        {
                            datevItem.ExpenseDate = (DateTime)item.PerformanceDate;
                        }

                        //Buchungstext
                        datevItem.TransactionDescription = $"RK {travelExpense.EmployeeName} {item.Description}";
                        //Belegfeld
                        datevItem.TransactionReceipt = (travelExpense.ExpenseDate.Month * 10000 + travelExpense.ExpenseDate.Year).ToString();
                        // Steuersatz
                        datevItem.TransactionVatRate = type.DatevVat00;
                        //Umsatz
                        datevItem.TransactionAmountDatev = item.Amount19;
                        // Soll / Haben
                        if (datevItem.TransactionAmountDatev > 0)
                        {
                            datevItem.TransactionBalancePosition = "H";
                        }
                        else
                        {
                            datevItem.TransactionBalancePosition = "S";
                        }
                        //konto
                        datevItem.TransactionAccount = type.DatevAccount;
                        // gegenkonto
                        datevItem.TransactionContraAccount = travelExpense.EmployeesForTravelExpenses.DatevAccount + type.SubAccount;

                        if (datevItem.TransactionDate < new DateTime(2020, 1, 1))
                        {
                            datevItem.TransactionAccount       = datevItem.TransactionAccount / 100;
                            datevItem.TransactionContraAccount = datevItem.TransactionContraAccount / 100;
                        }
                        csvDatevTransactions.Add(datevItem);
                    }
                }
            }
        }
 // POST: api/TravelExpense
 public void Post([FromBody] TravelExpense value)
 {
     db.TravelExpense.Add(value);
     db.SaveChanges();
 }
Esempio n. 22
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");
        }
 private void ListOfTravelExpenses_CurrentChanged(object sender, EventArgs e)
 {
     selectedItem = ListOfTravelExpenses.CurrentItem as TravelExpense;
 }
        private void PrintProtocolls(List <TravelExpense> travelExpensesToBeMoved)
        {
            List <int> idList = new List <int>();

            foreach (TravelExpense item in travelExpensesToBeMoved)
            {
                idList.Add(item.Id);

                if (CreateFiles)
                {
                    TravelExpense newItem = dbAccess.SetProvidedToDatev(item);
                    if (item == null)
                    {
                        NotificationRequest.Raise(new Notification()
                        {
                            Title   = "QuantCo Deutschland GmbH",
                            Content = $"Beim Setzen des Datums 'ProvidedToDatev' ({item.Id} ist ein Fehler aufgetreten"
                        });
                    }
                    else
                    {
                        // reload travelexpenses to show the updates made in SetProvidedToDatev

                        travelExpenses.Clear();
                        travelExpenses = new ObservableCollection <TravelExpense>(dbAccess.GetAllTravelExpenses());

                        ListOfTravelExpenses = CollectionViewSource.GetDefaultView(travelExpenses);

                        ListOfTravelExpenses.CurrentChanged -= ListOfTravelExpenses_CurrentChanged;
                        ListOfTravelExpenses.CurrentChanged += ListOfTravelExpenses_CurrentChanged;
                        RaisePropertyChanged("ListOfTravelExpenses");
                        if (travelExpenses.Count > 0)
                        {
                            selectedItem = travelExpenses[0];
                        }
                    }
                }
            }
            if (ShowReport)
            {
                TypeReportSource source = new TypeReportSource();
                source.TypeName = typeof(AccountingHelper.Reporting.TravelExpenses).AssemblyQualifiedName;
                source.Parameters.Add("TravelExpenseIds", idList);
                ViewerParameter parameter = new ViewerParameter()
                {
                    typeReportSource = source
                };
                eventaggregator.GetEvent <ViewerParameterEvent>().Publish(parameter);
            }


            if (CreateFiles)
            {
                // create Report as pdf file
                var reportProcessor = new Telerik.Reporting.Processing.ReportProcessor();

                // set any deviceInfo settings if necessary
                var deviceInfo = new System.Collections.Hashtable();


                var reportSource = new Telerik.Reporting.TypeReportSource();

                // reportName is the Assembly Qualified Name of the report
                reportSource.TypeName = typeof(AccountingHelper.Reporting.TravelExpenses).AssemblyQualifiedName;


                // Pass parameter value with the Report Source if necessary
                reportSource.Parameters.Add("TravelExpenseIds", idList);

                Telerik.Reporting.Processing.RenderingResult result = reportProcessor.RenderReport("PDF", reportSource, deviceInfo);


                using (System.IO.FileStream fs = new System.IO.FileStream(Path.Combine(csvFolder, "ProtokollReisekosten.pdf"), System.IO.FileMode.Create))
                {
                    fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
                }
            }
        }