コード例 #1
0
        public void UpdateBusinessTripMileageAllowances(BusinessTrip trip, BusinessTripDTO businessTripDto)
        {
            if (businessTripDto != null)
            {
                foreach (MileageAllowance allowance in trip.MileageAllowances
                         .Where(m => businessTripDto.MileageAllowances
                                .Any(mdto => mdto.id == m.Id)))
                {                //Update mileage allowances that exist both in database and in dto
                    MileageAllowanceDTO mdto = businessTripDto.MileageAllowances.First(m => m.id == allowance.Id);
                    allowance.Type     = repo.Dictionaries.GetVehicleType(mdto.VehicleTypeId);
                    allowance.Date     = mdto.Date.ParseAppString();
                    allowance.Amount   = mdto.Amount;
                    allowance.Distance = mdto.Distance;
                    allowance.Notes    = mdto.Notes;
                }

                //Remove those that exist in db but don't exist in dto
                repo.MileageAllowances.RemoveSet(trip.MileageAllowances
                                                 .Where(m => !businessTripDto.MileageAllowances
                                                        .Any(mdto => mdto.id == m.Id)));

                foreach (MileageAllowanceDTO milDto in businessTripDto.MileageAllowances.Where(mdto => !trip.MileageAllowances.Any(ma => ma.Id == mdto.id)))
                {                //Add those that exist in dto but don't exist in db
                    MileageAllowance allowance = new MileageAllowance();
                    allowance.Trip     = trip;
                    allowance.Date     = milDto.Date.ParseAppString();
                    allowance.Amount   = milDto.Amount;
                    allowance.Distance = milDto.Distance;
                    allowance.Type     = repo.Dictionaries.GetVehicleType(milDto.VehicleTypeId);
                    allowance.Notes    = milDto.Notes;
                    trip.MileageAllowances.Add(allowance);
                }
            }
        }
コード例 #2
0
 public static MileageAllowanceDTO MapToDTO(this MileageAllowance allowance)
 {
     return(new MileageAllowanceDTO()
     {
         id = allowance.Id,
         VehicleTypeId = allowance.VehicleTypeId,
         Date = allowance.Date.ToAppString(),
         Distance = allowance.Distance,
         Amount = allowance.Amount,
         Notes = allowance.Notes
     });
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: mirkomaty/NDO
        static void CreateObjects()
        {
            PersistenceManager pm = new PersistenceManager();

            pm.BuildDatabase();

            Employee e = new Employee();

            e.FirstName = "John";
            e.LastName  = "Becker";
            pm.MakePersistent(e);

            Travel t = e.NewTravel();

            t.Purpose = "NDO Workshop";

            ExpenseVoucher ev = new ExpenseVoucher();

            ev.VoucherText = "Taxi";
            ev.Sum         = 30;
            ev.Date        = DateTime.Now.Date;
            t.AddExpense(ev);

            MileageAllowance ma = new MileageAllowance();

            ma.MilesDriven = 200;
            ma.Date        = DateTime.Now.Date;
            t.AddExpense(ma);

            PerDiemAllowance pda = new PerDiemAllowance();

            pda.Hours = (decimal)12.5;
            pda.Date  = DateTime.Now.Date;
            t.AddExpense(pda);

            pm.Save();
        }
コード例 #4
0
        public int CreateNewBusinessTrip(BusinessTripDTO businessTrip, string userName)
        {
            User user = repo.Users.UsersQueryable.FirstOrDefault(u => u.UserName == userName);

            BusinessTrip trip = repo.BusinessTrips.Create(new BusinessTrip()
            {
                Title           = businessTrip.Title,
                Date            = businessTrip.Date.ParseAppString(),
                BusinessReason  = businessTrip.BusinessReason,
                BusinessPurpose = businessTrip.BusinessPurpose,
                Notes           = businessTrip.Notes,
                User            = user
            });

            if (businessTrip.Subsistence != null)
            {
                CreateBusinessTripSubsistence(trip, businessTrip);
            }

            List <Expense> expenses = new List <Expense>();

            if (businessTrip.Expenses != null)
            {
                foreach (ExpenseDTO expDto in businessTrip.Expenses)
                {
                    Expense expense = new Expense();
                    expense.Trip         = trip;
                    expense.Type         = repo.Dictionaries.GetExpenseType(expDto.ExpenseTypeId);
                    expense.Date         = expDto.Date.ParseAppString();
                    expense.City         = expDto.City;
                    expense.Amount       = expDto.Amount;
                    expense.AmountPLN    = expDto.AmountPLN;
                    expense.Country      = repo.Dictionaries.GetCountry(expDto.CountryId);
                    expense.CurrencyCode = expDto.CurrencyCode;
                    expense.ExchangeRate = expDto.ExchangeRate;
                    CurrencyRate systemRate = currenciesTasks.GetCurrencyRateForDay(expense.CurrencyCode, expense.Date.Date);
                    if (Math.Abs(systemRate.ExchangeRate - expense.ExchangeRate) > 0.0001)
                    {
                        expense.ExchangeRateModifiedByUser = true;
                    }
                    else
                    {
                        expense.ExchangeRateModifiedByUser = false;
                    }

                    expense.VATRate      = expDto.VATRate;
                    expense.Notes        = expDto.Notes;
                    expense.DoNotReturn  = expDto.DoNotReturn;
                    expense.DocumentType = repo.Dictionaries.GetExpenseDocumentType(expDto.ExpenseDocumentTypeId);
                    expenses.Add(expense);
                }

                repo.Expenses.CreateSet(expenses);
            }



            if (businessTrip.MileageAllowances != null)
            {
                List <MileageAllowance> mileageAllowances = new List <MileageAllowance>();
                foreach (MileageAllowanceDTO maDto in businessTrip.MileageAllowances)
                {
                    MileageAllowance ma = new MileageAllowance();
                    ma.Trip     = trip;
                    ma.Date     = maDto.Date.ParseAppString();
                    ma.Distance = maDto.Distance;
                    ma.Amount   = maDto.Amount;
                    ma.Notes    = maDto.Notes;
                    ma.Type     = repo.Dictionaries.GetVehicleType(maDto.VehicleTypeId);

                    mileageAllowances.Add(ma);
                }

                repo.MileageAllowances.CreateSet(mileageAllowances);
            }

            this.repo.SaveChanges();
            return(trip.Id);
        }