Example #1
0
        public static string GetUserNameById(string Id)
        {
            DatabaseControler dc   = new DatabaseControler();
            ApplicationUser   user = dc.GetUserById(Id);

            return(user.FirstName + " " + user.LastName);
        }
Example #2
0
        public ActionResult Index(AccountMessageId?message)
        {
            ViewBag.StatusMessage =
                message == AccountMessageId.RegisterAccountSuccess ? "Konto zostało utworzone. Na maila dostałeś instrukcję pełnej aktywacji."
                : message == AccountMessageId.StartTravelSuccess ? "Rozpocząłeś nową podróż służbową"
                : message == AccountMessageId.StopTravelSuccess ? "Zakończyłeś podróż służbową"
                : message == AccountMessageId.ConfirmMailSendSuccess? "Mail z linkiem aktywacyjnym został wysłany": "";
            CurrentUserInTravelViewModels cuitvm = new CurrentUserInTravelViewModels();

            if (Request.IsAuthenticated)
            {
                DatabaseControler dc = new DatabaseControler();
                var userName         = User.Identity.Name;
                ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
                var user  = userManager.FindByName(userName);
                int carId = dc.HasCarInTravel(user.Id);
                cuitvm.CarId = carId;
                if (carId != 0)
                {
                    cuitvm.HasCarInTravel = true;
                }
            }
            else
            {
                cuitvm.HasCarInTravel = false;
            }
            return(View(cuitvm));
        }
Example #3
0
        public async Task <ActionResult> AddPhoneNumber(AddPhoneNumberViewModel model)
        {
            DatabaseControler dc = new DatabaseControler();

            if (!ModelState.IsValid)
            {
                var        list  = dc.GetDirectPhoneNumbers();
                SelectList slist = new SelectList(list, "Id", "Name", "Polska");
                model.Countries = slist;
                return(View(model));
            }
            // Generate the token and send it
            var number = dc.GetDirectPhoneNumber(int.Parse(model.Country)) + model.Number.Replace(" ", "");
            var code   = await UserManager.GenerateChangePhoneNumberTokenAsync(User.Identity.GetUserId(), number);

            if (UserManager.SmsService != null)
            {
                var message = new IdentityMessage
                {
                    Destination = number,
                    Body        = "Twoj kod weryfikacyjny: " + code
                };
                await UserManager.SmsService.SendAsync(message);
            }
            return(RedirectToAction("VerifyPhoneNumber", new { PhoneNumber = number }));
        }
Example #4
0
        //
        // GET: /Manage/AddPhoneNumber
        public ActionResult AddPhoneNumber()
        {
            DatabaseControler dc = new DatabaseControler();
            var        list      = dc.GetDirectPhoneNumbers();
            var        model     = new AddPhoneNumberViewModel();
            SelectList slist     = new SelectList(list, "Id", "Name", "Polska");

            model.Countries = slist;
            return(View(model));
        }
Example #5
0
        public ActionResult UpdateCompany()
        {
            var userName = User.Identity.Name;
            ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var user             = userManager.FindByName(userName);
            CompanyViewModel  cc = new CompanyViewModel();
            DatabaseControler dc = new DatabaseControler();

            dc.GetCompany(ref cc, user.Id);
            return(View(cc));
        }
Example #6
0
 public ActionResult Index()
 {
     CarsViewModel model = new CarsViewModel();
     model.IsAdministrator = IsAdministrator();
     DatabaseControler dc = new DatabaseControler();
     var userName = User.Identity.Name;
     ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
     var user = userManager.FindByName(userName);
     model.IsSetCompany = dc.IsSetCompany(user.Id);
     model.CarList = dc.GetAllCars(user);
     return View(model);
 }
Example #7
0
 public bool IsAdministrator()
 {
     bool retval = false;
     var userId = User.Identity.GetUserId();
     DatabaseControler dc = new DatabaseControler();            
     var user = dc.GetUserById(userId);
     if (dc.GetUserRoles(user).Contains("ADMINISTRATOR"))
     {
         retval = true;
     }
     return retval;
 }
Example #8
0
        public static bool IsAdministrator(string Id)
        {
            bool retval            = false;
            DatabaseControler dc   = new DatabaseControler();
            ApplicationUser   user = dc.GetUserById(Id);

            if (dc.GetUserRoles(user).Contains("ADMINISTRATOR"))
            {
                retval = true;
            }
            return(retval);
        }
Example #9
0
        public ActionResult UpdateCompany(CompanyViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var userName = User.Identity.Name;
            ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var user             = userManager.FindByName(userName);
            DatabaseControler dc = new DatabaseControler();

            dc.UpdateCompany(model, user.Id);
            return(RedirectToAction("Index", "Company", new { Message = CompanytMessageId.UpdateCompanySuccess }));
        }
Example #10
0
        public ActionResult Report(SelectDateViewModel model)
        {
            DatabaseControler   dc          = new DatabaseControler();
            SelectDateViewModel selectModel = dc.GetSelectDateModelByCarId(model.CarId);

            selectModel.MonthId = model.MonthId;
            selectModel.YearId  = model.YearId;
            if (!ModelState.IsValid)
            {
                return(View("SelectDate", selectModel));
            }
            PdfController pc = new PdfController();

            return(new FileStreamResult(pc.CreateDistanceReportByCarId(model.CarId, int.Parse(selectModel.Mounth.ToList()[model.MonthId].Value), int.Parse(selectModel.Year.ToList()[model.YearId].Value)), "application/pdf"));
        }
Example #11
0
        public ActionResult Save(CarViewModels car)
        {
            if (!ModelState.IsValid)
            {
                car.CarStatus = _context.CarStatuses.ToList();
                return View("CarForm", car);
            }

            DatabaseControler dc = new DatabaseControler();
            var userName = User.Identity.Name;
            ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
            var user = userManager.FindByName(userName);
            dc.AddCar(car, user);

            return RedirectToAction("Index", "Cars");
        }
Example #12
0
        public ActionResult Report(string id)
        {
            DatabaseControler dc = new DatabaseControler();
            var userName         = User.Identity.Name;
            ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var user = userManager.FindByName(userName);
            int Id   = 0;

            if (!int.TryParse(id, out Id))
            {
                return(RedirectToAction("Index", "Home"));
            }
            SelectDateViewModel sdvm = dc.GetSelectDateModelByCarId(Id);

            return(View("SelectDate", sdvm));
        }
Example #13
0
        // GET: Drivers cała lista kierowców
        public ActionResult Index()
        {
            DatabaseControler dc = new DatabaseControler();
            var userName         = User.Identity.Name;
            ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var user = userManager.FindByName(userName);

            if (!IsAdministrator(user.Id))
            {
                RedirectToAction("Index", "Home");
            }
            var drivers             = dc.GetAllUsers(user);
            DriversViewModels model = new DriversViewModels();

            model.Drivers      = drivers;
            model.IsSetCompany = dc.IsSetCompany(user.Id);
            return(View(model));
        }
Example #14
0
        public ActionResult StartTravel(string id)
        {
            TravelViewModels tvm = new TravelViewModels();

            tvm.Button = "Start";
            tvm.Title  = "Rozpocznij podróż";
            int Id = 0;
            DatabaseControler dc = new DatabaseControler();

            if (!int.TryParse(id, out Id) || dc.IsInTravel(Id))
            {
                return(RedirectToAction("Index", "Home"));
            }
            tvm.CarId       = Id;
            tvm.StopKm      = "0";
            tvm.StartTravel = true;
            return(View("TravelsForm", tvm));
        }
Example #15
0
        public ActionResult Edit(int id)
        {
            DatabaseControler dc = new DatabaseControler();
            if (!IsAdministrator() || dc.IsInTravel(id))
            {
                return RedirectToAction("Index", "Cars");
            }

            var car = dc.GetCarById(id);

            if (car == null)
                return HttpNotFound();

            car.CarStatus = _context.CarStatuses.ToList();
            car.IsEditMode = true;

            return View("CarForm", car);
        }
Example #16
0
        public ActionResult Index(CompanytMessageId?message)
        {
            ViewBag.StatusMessage =
                message == CompanytMessageId.UpdateCompanySuccess ? "Dane firmy zostały zapisane w bazie." : "";
            var userName = User.Identity.Name;
            ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var user            = userManager.FindByName(userName);
            CompanyViewModel cc = new CompanyViewModel();

            if (userManager.GetRoles(user.Id).Contains("ADMINISTRATOR"))
            {
                cc.IsAdministrator = true;
            }
            cc.IsAccountConfirmed = user.EmailConfirmed;
            DatabaseControler dc = new DatabaseControler();

            dc.GetCompany(ref cc, user.Id);
            return(View(cc));
        }
Example #17
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    user.City             = model.City;
                    user.FirstName        = model.FirstName;
                    user.FlatNumber       = model.FlatNumber;
                    user.HouseNumber      = model.HouseNumber;
                    user.LastName         = model.LastName;
                    user.Street           = model.Street;
                    user.ZipCode          = model.ZipCode;
                    user.CreateTime       = DateTime.Now;
                    user.TwoFactorEnabled = true;
                    user.ModyfiTime       = DateTime.Now;
                    var currentUser      = UserManager.FindByName(user.UserName);
                    var role             = UserManager.AddToRole(currentUser.Id, "Administrator".ToUpper());
                    DatabaseControler dc = new DatabaseControler();
                    dc.UpdateUserData(user, currentUser.Id);
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);

                    var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    await UserManager.SendEmailAsync(user.Id, "Potwierdź konto", "Kliknij <a href=\"" + callbackUrl + "\">link</a>, aby potwierdzić utworzenie konta.");

                    return(RedirectToAction("AddPhoneNumber", "Manage", new { Message = AccountMessageId.RegisterAccountSuccess }));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Example #18
0
        public ActionResult StopTravel(string id)
        {
            DatabaseControler dc = new DatabaseControler();
            var userName         = User.Identity.Name;
            ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var user = userManager.FindByName(userName);
            int Id   = 0;

            if (!int.TryParse(id, out Id))
            {
                return(RedirectToAction("Index", "Home"));
            }
            TravelViewModels tvm = dc.GetCurrentTravel(user, Id);

            tvm.Button = "Stop";
            tvm.Title  = "Zakończ podróż";
            tvm.CarId  = Id;
            tvm.StopKm = string.Empty;
            return(View("TravelsForm", tvm));
        }
Example #19
0
        public ActionResult UpdateTravel(TravelViewModels model)
        {
            if (!ModelState.IsValid)
            {
                return(View("TravelsForm", model));
            }
            DatabaseControler dc = new DatabaseControler();
            var userName         = User.Identity.Name;
            ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var user = userManager.FindByName(userName);

            dc.UpdateTravel(model, user);
            if (model.StartTravel)
            {
                return(RedirectToAction("Index", "Home", new { Message = AccountMessageId.StartTravelSuccess }));
            }
            else
            {
                return(RedirectToAction("Index", "Home", new { Message = AccountMessageId.StopTravelSuccess }));
            }
        }
Example #20
0
        public ActionResult Save(DriverViewModels model)
        {
            if (!ModelState.IsValid)
            {
                return(View("DriverForm", model));
            }
            else if (!IsAdministrator())
            {
                RedirectToAction("Index", "Home");
            }

            DatabaseControler      dc          = new DatabaseControler();
            IdentityResult         result      = IdentityResult.Success;
            ApplicationUser        user        = new ApplicationUser();
            ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();

            if (string.IsNullOrEmpty(model.Id))
            {
                user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                result = userManager.Create(user, model.Password);
                if (result.Succeeded)
                {
                    user.City                 = model.City;
                    user.FirstName            = model.FirstName;
                    user.FlatNumber           = model.FlatNumber;
                    user.HouseNumber          = model.HouseNumber;
                    user.LastName             = model.LastName;
                    user.Street               = model.Street;
                    user.ZipCode              = model.ZipCode;
                    user.CreateTime           = DateTime.Now;
                    user.ModyfiTime           = DateTime.Now;
                    user.EmailConfirmed       = true;
                    user.PhoneNumberConfirmed = true;
                    user.PhoneNumber          = "+48" + model.Number;
                    user.TwoFactorEnabled     = true;
                    var currentUser = userManager.FindByName(user.UserName);
                    var role        = userManager.AddToRole(currentUser.Id, "Kierowca".ToUpper());
                }
                AddErrors(result);
            }
            else
            {
                user             = dc.GetUserById(model.Id);
                user.City        = model.City;
                user.FirstName   = model.FirstName;
                user.FlatNumber  = model.FlatNumber;
                user.HouseNumber = model.HouseNumber;
                user.LastName    = model.LastName;
                user.Street      = model.Street;
                user.ZipCode     = model.ZipCode;
                user.CreateTime  = DateTime.Now;
                user.ModyfiTime  = DateTime.Now;
                user.Email       = model.Email;
                user.ModyfiTime  = DateTime.Now;
                user.PhoneNumber = model.Number;
            }

            if (result.Succeeded)
            {
                dc.UpdateUserData(user, User.Identity.GetUserId());
            }
            return(RedirectToAction("Index", "Drivers"));
        }
Example #21
0
        public MemoryStream CreateDistanceReportByCarId(int id, int monthNumber, int year)
        {
            MemoryStream retval   = new MemoryStream();
            Document     document = new Document(PageSize.A4);

            PdfWriter.GetInstance(document, retval).CloseStream = false;
            DatabaseControler dc  = new DatabaseControler();
            ReportDataModel   rdm = dc.GetReportData(id, monthNumber, year);
            Font f       = new Font(BaseFont.CreateFont(@"C:\Windows\Fonts\times.ttf", BaseFont.CP1250, true));
            Font fHeader = new Font(BaseFont.CreateFont(@"C:\Windows\Fonts\times.ttf", BaseFont.CP1250, true));

            f.Size       = 8;
            fHeader.Size = 11;
            Paragraph company   = new Paragraph("Dane firmy", fHeader);
            PdfPTable tableBody = new PdfPTable(2);

            tableBody.PaddingTop         = 30;
            tableBody.WidthPercentage    = 100.0f;
            tableBody.DefaultCell.Border = Rectangle.NO_BORDER;
            PdfPTable table = new PdfPTable(2);

            table.PaddingTop      = 30;
            table.WidthPercentage = 100.0f;
            table.SetWidths(new float[] { 1, 3 });
            PdfPCell cellf1 = new PdfPCell();

            cellf1.Border = Rectangle.NO_BORDER;
            cellf1.AddElement(new Paragraph("Nazwa firmy", f));
            PdfPCell cellf2 = new PdfPCell();

            cellf2.Border = Rectangle.NO_BORDER;
            cellf2.AddElement(new Paragraph(rdm.CompanyData.CompanyName, f));
            PdfPCell cellf3 = new PdfPCell();

            cellf3.Border = Rectangle.NO_BORDER;
            cellf3.AddElement(new Paragraph("Adres", f));
            PdfPCell cellf4 = new PdfPCell();

            cellf4.Border = Rectangle.NO_BORDER;
            cellf4.AddElement(new Paragraph(getAddress(rdm.CompanyData), f));
            PdfPCell cellf5 = new PdfPCell();

            cellf5.Border = Rectangle.NO_BORDER;
            cellf5.AddElement(new Paragraph("Nip", f));
            PdfPCell cellf6 = new PdfPCell();

            cellf6.Border = Rectangle.NO_BORDER;
            cellf6.AddElement(new Paragraph(rdm.CompanyData.NIP, f));
            table.AddCell(cellf1);
            table.AddCell(cellf2);
            table.AddCell(cellf3);
            table.AddCell(cellf4);
            table.AddCell(cellf5);
            table.AddCell(cellf6);
            table.DefaultCell.Border  = Rectangle.NO_BORDER;
            table.HorizontalAlignment = Element.ALIGN_LEFT;
            document.Open();

            PdfPCell right = new PdfPCell();

            right.AddElement(company);
            right.AddElement(table);
            right.Border = Rectangle.NO_BORDER;
            Paragraph empty = new Paragraph("", fHeader);

            right.AddElement(empty);
            Paragraph drivers = new Paragraph("Dane kierowców", fHeader);

            drivers.PaddingTop = 20;
            right.AddElement(drivers);
            foreach (DriverViewModels model in rdm.DriversData)
            {
                Paragraph dIndex = new Paragraph("--------------------------------------------------", f);
                dIndex.PaddingTop = 50;
                right.AddElement(dIndex);
                PdfPTable tabled = new PdfPTable(2);
                tabled.PaddingTop      = 30;
                tabled.WidthPercentage = 100.0f;
                tabled.SetWidths(new float[] { 1, 3 });
                PdfPCell celld1 = new PdfPCell();
                celld1.Border = Rectangle.NO_BORDER;
                celld1.AddElement(new Paragraph("Imie i nazwisko", f));
                PdfPCell celld2 = new PdfPCell();
                celld2.Border = Rectangle.NO_BORDER;
                celld2.AddElement(new Paragraph(model.FirstName + " " + model.LastName, f));
                PdfPCell celld3 = new PdfPCell();
                celld3.Border = Rectangle.NO_BORDER;
                celld3.AddElement(new Paragraph("Adres", f));
                PdfPCell celld4 = new PdfPCell();
                celld4.Border = Rectangle.NO_BORDER;
                celld4.AddElement(new Paragraph(getAddress(model), f));
                tabled.AddCell(celld1);
                tabled.AddCell(celld2);
                tabled.AddCell(celld3);
                tabled.AddCell(celld4);
                tabled.DefaultCell.Border  = Rectangle.NO_BORDER;
                tabled.HorizontalAlignment = Element.ALIGN_LEFT;
                right.AddElement(tabled);
            }
            tableBody.AddCell(right);
            PdfPCell left = new PdfPCell();

            left.Border = Rectangle.NO_BORDER;
            Paragraph cParagraf = new Paragraph("Dane samochodu", fHeader);

            cParagraf.PaddingTop = 20;
            left.AddElement(cParagraf);

            PdfPTable enginetable = new PdfPTable(2);

            enginetable.PaddingTop      = 30;
            enginetable.WidthPercentage = 100.0f;
            PdfPCell celle1 = new PdfPCell();

            celle1.Border = Rectangle.NO_BORDER;
            celle1.AddElement(new Paragraph("Numer rejestracyjny", f));
            PdfPCell celle2 = new PdfPCell();

            celle2.Border = Rectangle.NO_BORDER;
            celle2.AddElement(new Paragraph(rdm.CarData.CarPlate.ToUpper(), f));
            PdfPCell celle3 = new PdfPCell();

            celle3.Border = Rectangle.NO_BORDER;
            celle3.AddElement(new Paragraph("Pojemność silnika", f));
            PdfPCell celle4 = new PdfPCell();

            celle4.Border = Rectangle.NO_BORDER;
            celle4.AddElement(new Paragraph(rdm.CarData.EngineCapacity.ToString() + " [cm3]", f));
            enginetable.AddCell(celle1);
            enginetable.AddCell(celle2);
            enginetable.AddCell(celle3);
            enginetable.AddCell(celle4);
            enginetable.DefaultCell.Border  = Rectangle.NO_BORDER;
            enginetable.HorizontalAlignment = Element.ALIGN_LEFT;
            left.AddElement(enginetable);
            tableBody.AddCell(left);
            document.Add(tableBody);
            Font fHeaderBold = new Font(BaseFont.CreateFont(@"C:\Windows\Fonts\times.ttf", BaseFont.CP1250, true));

            fHeaderBold.Size = 11;
            fHeaderBold.SetStyle(1);
            Paragraph header = new Paragraph("EWIDENCJA PRZEBIEGU POJAZDU", fHeaderBold);

            header.Alignment = Element.ALIGN_CENTER;
            document.Add(header);
            Font fparagrafBold = new Font(BaseFont.CreateFont(@"C:\Windows\Fonts\times.ttf", BaseFont.CP1250, true));

            fparagrafBold.Size = 10;
            fparagrafBold.SetStyle(0);
            Paragraph month = new Paragraph("za miesiąc " + months[monthNumber], fparagrafBold);

            month.Alignment = Element.ALIGN_CENTER;
            Paragraph empty2 = new Paragraph(" ", fHeader);

            document.Add(month);
            document.Add(empty2);
            PdfPTable travelsTable = new PdfPTable(9);

            travelsTable.PaddingTop      = 50;
            travelsTable.WidthPercentage = 100.0f;
            PdfPCell cellNr = new PdfPCell();

            cellNr.AddElement(new Paragraph("Nr kolejny wpisu", f));
            travelsTable.AddCell(cellNr);
            PdfPCell cellDate = new PdfPCell();

            cellDate.AddElement(new Paragraph("Data wyjazdu", f));
            travelsTable.AddCell(cellDate);
            PdfPCell cellDesc = new PdfPCell();

            cellDesc.AddElement(new Paragraph("Opis trasy wyjazdu (skąd-dokąd)", f));
            travelsTable.AddCell(cellDesc);
            PdfPCell cellPurpose = new PdfPCell();

            cellPurpose.AddElement(new Paragraph("Cel wyjazdu", f));
            travelsTable.AddCell(cellPurpose);
            PdfPCell cellKmCount = new PdfPCell();

            cellKmCount.AddElement(new Paragraph("Liczba faktycznie przejechanych kilometrów", f));
            travelsTable.AddCell(cellKmCount);
            PdfPCell cellOneKm = new PdfPCell();

            cellOneKm.AddElement(new Paragraph("Stawka za 1 km przebiegu", f));
            travelsTable.AddCell(cellOneKm);
            PdfPCell cellMoney = new PdfPCell();

            cellMoney.AddElement(new Paragraph("Wartość", f));
            travelsTable.AddCell(cellMoney);
            PdfPCell cellSignature = new PdfPCell();

            cellSignature.AddElement(new Paragraph("Podpis podatnika", f));
            travelsTable.AddCell(cellSignature);
            PdfPCell cellNotes = new PdfPCell();

            cellNotes.AddElement(new Paragraph("Uwagi", f));
            travelsTable.AddCell(cellNotes);
            float oneMoney    = rdm.CarData.EngineCapacity <= 900 ? 0.5214f : 0.8358f;
            int   travelNr    = 1;
            int   sumDistance = 0;
            float sumMoney    = 0;

            foreach (TravelViewModels travel in rdm.TravelsData)
            {
                PdfPCell cellNrFor = new PdfPCell();
                cellNrFor.AddElement(new Paragraph(travelNr.ToString(), f));
                travelNr++;
                travelsTable.AddCell(cellNrFor);
                PdfPCell cellDateFor = new PdfPCell();
                cellDateFor.AddElement(new Paragraph(travel.TravelDate.ToShortDateString(), f));
                travelsTable.AddCell(cellDateFor);
                PdfPCell cellDescFor = new PdfPCell();
                cellDescFor.AddElement(new Paragraph(travel.From + "-" + travel.To, f));
                travelsTable.AddCell(cellDescFor);
                PdfPCell cellPurposeFor = new PdfPCell();
                cellPurposeFor.AddElement(new Paragraph(travel.Purpose, f));
                travelsTable.AddCell(cellPurposeFor);
                PdfPCell cellKmCountFor = new PdfPCell();
                int      distance       = int.Parse(travel.StopKm) - int.Parse(travel.StartKm);
                sumDistance += distance;
                cellKmCountFor.AddElement(new Paragraph(distance.ToString(), f));
                travelsTable.AddCell(cellKmCountFor);
                PdfPCell cellOneKmFor = new PdfPCell();
                cellOneKmFor.AddElement(new Paragraph(oneMoney.ToString(), f));
                travelsTable.AddCell(cellOneKmFor);
                PdfPCell cellMoneyFor = new PdfPCell();
                float    money        = distance * oneMoney;
                sumMoney += money;
                cellMoneyFor.AddElement(new Paragraph(Math.Round(money, 2, MidpointRounding.AwayFromZero).ToString(), f));
                travelsTable.AddCell(cellMoneyFor);
                PdfPCell cellSignatureFor = new PdfPCell();
                cellSignatureFor.AddElement(new Paragraph(" ", f));
                travelsTable.AddCell(cellSignatureFor);
                PdfPCell cellNotesFor = new PdfPCell();
                cellNotesFor.AddElement(new Paragraph(travel.Notes, f));
                travelsTable.AddCell(cellNotesFor);
            }
            PdfPCell  sum         = new PdfPCell();
            Paragraph sumParagaph = new Paragraph("Razem     ", f);

            sumParagaph.Alignment = Element.ALIGN_RIGHT;
            sum.AddElement(sumParagaph);
            sum.HorizontalAlignment = Element.ALIGN_RIGHT;
            sum.Colspan             = 4;
            travelsTable.AddCell(sum);
            PdfPCell sumKm = new PdfPCell();

            sumKm.AddElement(new Paragraph(sumDistance.ToString(), f));
            travelsTable.AddCell(sumKm);
            PdfPCell emptyGray = new PdfPCell();

            emptyGray.AddElement(new Paragraph(" ", f));
            emptyGray.BackgroundColor = BaseColor.GRAY;
            travelsTable.AddCell(emptyGray);
            PdfPCell sumMoneyCell = new PdfPCell();

            sumMoneyCell.AddElement(new Paragraph(Math.Round(sumMoney, 2, MidpointRounding.AwayFromZero).ToString(), f));
            travelsTable.AddCell(sumMoneyCell);
            travelsTable.AddCell(emptyGray);
            travelsTable.AddCell(emptyGray);

            document.Add(travelsTable);
            document.AddTitle("Kilometrówka " + rdm.CarData.CarPlate.ToUpper() + " - " + months[monthNumber]);
            document.Close();

            byte[] byteInfo = retval.ToArray();
            retval.Write(byteInfo, 0, byteInfo.Length);
            retval.Position = 0;
            return(retval);
        }