void AddMileages(Document document, Section section, BusinessTrip trip)
        {
            if (trip.MileageAllowances.Count == 0)
            {
                return;
            }

            section.AddParagraph("KILOMETRÓWKA", "SectionHeader");

            // Create the item table
            Table table = section.AddTable();

            table.Style         = "Table";
            table.Borders.Width = 0;
            table.Borders.Color = color;
            //table.Rows.Height = Unit.FromPoint(document.Styles["Normal"].Font.Size * 2);

            Column columnSpaceLeft  = table.AddColumn(Unit.FromCentimeter(0.25));
            Column columnDate       = table.AddColumn(Unit.FromCentimeter(2));
            Column columnType       = table.AddColumn(Unit.FromCentimeter(2));
            Column columnDistance   = table.AddColumn(Unit.FromCentimeter(2));
            Column columnAmount     = table.AddColumn(Unit.FromCentimeter(2));
            Column columnComment    = table.AddColumn(Unit.FromCentimeter(7.5));
            Column columnSpaceRight = table.AddColumn(Unit.FromCentimeter(0.25));

            AddTopRow(table, 6);

            Row rowHeader = table.AddRow();

            rowHeader.Cells[0].AddParagraph("");
            rowHeader.Cells[0].Borders.Left.Width = 0.5;
            rowHeader.Cells[1].AddParagraph("DATA");
            rowHeader.Cells[2].AddParagraph("TYP POJAZDU");
            rowHeader.Cells[3].AddParagraph("DYSTANS");
            rowHeader.Cells[4].AddParagraph("KWOTA");
            rowHeader.Cells[5].AddParagraph("KOMENTARZ");
            rowHeader.Cells[6].AddParagraph("");
            rowHeader.Cells[6].Borders.Right.Width = 0.5;

            AddEmptyRow(table, 6);

            foreach (MileageAllowance e in trip.MileageAllowances)
            {
                Row row = table.AddRow();
                row.Cells[0].AddParagraph("");
                row.Cells[1].AddParagraph(e.Date.ToAppString());
                row.Cells[2].AddParagraph(e.Type.Name);
                row.Cells[3].AddParagraph(e.Distance.ToString());
                row.Cells[4].AddParagraph(e.Amount + " PLN");
                row.Cells[5].AddParagraph(e.Notes);
                row.Cells[6].AddParagraph("");

                AddRowBorders(row);
            }

            AddEmptyRow(table, 6);
            AddBottomRow(table, 6);

            AddSectionEndingSpace(section);
        }
        void AddDietDays(Document document, Section section, BusinessTrip trip)
        {
            if (trip.Subsistence == null || trip.Subsistence.Days.Count == 0)
            {
                return;
            }

            section.AddParagraph("DIETA", "SectionHeader");

            // Create the item table
            Table table = section.AddTable();

            table.Style         = "Table";
            table.Borders.Width = 0;
            table.Borders.Color = color;
            //table.Rows.Height = Unit.FromPoint(document.Styles["Normal"].Font.Size * 2);

            Column columnSpaceLeft  = table.AddColumn(Unit.FromCentimeter(0.25));
            Column columnDate       = table.AddColumn(Unit.FromCentimeter(2));
            Column columnType       = table.AddColumn(Unit.FromCentimeter(2));
            Column columnDistance   = table.AddColumn(Unit.FromCentimeter(2));
            Column columnAmount     = table.AddColumn(Unit.FromCentimeter(2));
            Column columnComment    = table.AddColumn(Unit.FromCentimeter(7.5));
            Column columnSpaceRight = table.AddColumn(Unit.FromCentimeter(0.25));

            AddTopRow(table, 6);

            Row rowHeader = table.AddRow();

            rowHeader.Cells[0].AddParagraph("");
            rowHeader.Cells[0].Borders.Left.Width = 0.5;
            rowHeader.Cells[1].AddParagraph("DATA");
            rowHeader.Cells[2].AddParagraph("ŚNIADANIE");
            rowHeader.Cells[3].AddParagraph("OBIAD");
            rowHeader.Cells[4].AddParagraph("KOLACJA");
            rowHeader.Cells[5].AddParagraph("KWOTA");
            rowHeader.Cells[6].AddParagraph("");
            rowHeader.Cells[6].Borders.Right.Width = 0.5;

            AddEmptyRow(table, 6);

            foreach (SubsistenceDay e in trip.Subsistence.Days)
            {
                Row row = table.AddRow();
                row.Cells[0].AddParagraph("");
                row.Cells[1].AddParagraph(e.Date.ToAppString());
                row.Cells[2].AddParagraph(e.Breakfast ? "TAK" : "NIE");
                row.Cells[3].AddParagraph(e.Dinner ? "TAK" : "NIE");
                row.Cells[4].AddParagraph(e.Supper ? "TAK" : "NIE");
                row.Cells[5].AddParagraph(e.AmountPLN.ToString() + " PLN");
                row.Cells[6].AddParagraph("");

                AddRowBorders(row);
            }

            AddEmptyRow(table, 6);
            AddBottomRow(table, 6);

            AddSectionEndingSpace(section);
        }
Exemplo n.º 3
0
        public void Reject_BT_DIR_Confirm_ExistingBTAndValidCommentConcurency_CanReject()
        {
            //Arrange
            BusinessTrip businessTrip = mock.Object.BusinessTrips.Where(b => b.BusinessTripID == 9).FirstOrDefault();

            businessTrip.RejectComment = "BT is too expensive";
            Employee            author = mock.Object.Employees.Where(e => e.EID == controller.ControllerContext.HttpContext.User.Identity.Name).FirstOrDefault();
            List <BusinessTrip> selectedBusinessTripsList = new List <BusinessTrip>();

            mock.Setup(m => m.SaveBusinessTrip(It.IsAny <BusinessTrip>())).Throws(new DbUpdateConcurrencyException());
            selectedBusinessTripsList.Add(businessTrip);

            // Act
            JsonResult result = (JsonResult)controller.Reject_BT_DIR_Confirm(businessTrip);
            string     data   = (string)(new Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject(result.Data, "error")).Target;

            //Assert
            Assert.IsInstanceOf(typeof(JsonResult), result);
            Assert.AreEqual(typeof(JsonResult), result.GetType());
            Assert.AreEqual(modelError, data);


            mock.Verify(m => m.SaveBusinessTrip(businessTrip), Times.Once);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToADM))), Times.Never);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToADM))), Times.Never);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToResponsible))), Times.Never);
            //messengerMock.Verify(m => m.Notify(It.Is<IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToACC))), Times.Never);
            Assert.AreEqual("BT is too expensive", businessTrip.RejectComment);
            Assert.AreEqual((BTStatus.Planned | BTStatus.Modified), businessTrip.Status);
        }
        void AddReportIdentifier(Document document, Section section, BusinessTrip trip)
        {
            section.AddParagraph("1. Indentyfikator Raportu", "SectionHeader");

            // Create the item table
            Table table = section.AddTable();

            table.Style         = "TableIdentifier";
            table.Borders.Width = 0;
            table.Rows.Height   = Unit.FromPoint(document.Styles["Normal"].Font.Size * 2);

            Column columnHeader = table.AddColumn(Unit.FromCentimeter(5));
            Column columnValue  = table.AddColumn(Unit.FromCentimeter(11));

            Row row2 = table.AddRow();

            row2.Cells[0].AddParagraph("POWÓD PODRÓŻY");
            row2.Cells[1].AddParagraph(trip.BusinessReason);

            Row row3 = table.AddRow();

            row3.Cells[0].AddParagraph("CEL PODÓŻY");
            row3.Cells[1].AddParagraph(trip.BusinessPurpose);

            Row row4 = table.AddRow();

            row4.Cells[0].AddParagraph("KOMENTARZ");
            row4.Cells[1].AddParagraph(trip.Notes);

            AddSectionEndingSpace(section);
        }
Exemplo n.º 5
0
        public void Reject_BT_DIR_Confirm_ExistingBTAndValidCommentSelectedDepartment_CanReject()
        {
            //Arrange
            BusinessTrip businessTrip = mock.Object.BusinessTrips.Where(b => b.BusinessTripID == 9).FirstOrDefault();

            businessTrip.RejectComment = "BT is too expensive";

            // Act
            var view = controller.Reject_BT_DIR_Confirm(businessTrip, "SDDDA");

            //Assert
            Assert.IsFalse(((RedirectToRouteResult)view).Permanent);
            Assert.IsInstanceOf(typeof(RedirectToRouteResult), view);
            Assert.AreEqual("DIRView", ((RedirectToRouteResult)view).RouteValues["action"]);
            Assert.AreEqual(null, ((RedirectToRouteResult)view).RouteValues["id"]);
            Assert.AreEqual("Home", ((RedirectToRouteResult)view).RouteValues["controller"]);
            Assert.AreEqual(0, ((RedirectToRouteResult)view).RouteValues["tab"]);
            Assert.AreEqual("SDDDA", ((RedirectToRouteResult)view).RouteValues["selectedDepartment"]);


            mock.Verify(m => m.SaveBusinessTrip(businessTrip), Times.Once);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToADM) && msg.ReplyTo == "*****@*****.**")), Times.Once);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToEMP) && msg.ReplyTo == "*****@*****.**")), Times.Once);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToResponsible) && msg.ReplyTo == "*****@*****.**")), Times.Once);
            //messengerMock.Verify(m => m.Notify(It.Is<IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToACC))), Times.Once);

            Assert.AreEqual("BT is too expensive", businessTrip.RejectComment);
            Assert.AreEqual((BTStatus.Planned | BTStatus.Modified), businessTrip.Status);
        }
Exemplo n.º 6
0
        public void Reject_BT_DIR_Confirm_ExistingBTAndValidComment_CanReject()
        {
            //Arrange
            BusinessTrip businessTrip = mock.Object.BusinessTrips.Where(b => b.BusinessTripID == 9).FirstOrDefault();

            businessTrip.RejectComment = "BT is too expensive";
            Employee            author = mock.Object.Employees.Where(e => e.EID == controller.ControllerContext.HttpContext.User.Identity.Name).FirstOrDefault();
            List <BusinessTrip> selectedBusinessTripsList = new List <BusinessTrip>();

            selectedBusinessTripsList.Add(businessTrip);
            businessTrip.DaysInBtForOrder = 9;

            // Act
            var view = controller.Reject_BT_DIR_Confirm(businessTrip);

            //Assert
            Assert.IsFalse(((RedirectToRouteResult)view).Permanent);
            Assert.IsInstanceOf(typeof(RedirectToRouteResult), view);
            Assert.AreEqual("DIRView", ((RedirectToRouteResult)view).RouteValues["action"]);
            Assert.AreEqual(null, ((RedirectToRouteResult)view).RouteValues["id"]);
            Assert.AreEqual("Home", ((RedirectToRouteResult)view).RouteValues["controller"]);
            Assert.AreEqual(0, ((RedirectToRouteResult)view).RouteValues["tab"]);
            Assert.AreEqual(null, ((RedirectToRouteResult)view).RouteValues["selectedDepartment"]);
            Assert.AreEqual("BT is too expensive", businessTrip.RejectComment);
            Assert.AreEqual((BTStatus.Planned | BTStatus.Modified), businessTrip.Status);
            Assert.AreEqual(null, businessTrip.OrderStartDate);
            Assert.AreEqual(null, businessTrip.OrderEndDate);
            Assert.AreEqual(null, businessTrip.DaysInBtForOrder);

            mock.Verify(m => m.SaveBusinessTrip(businessTrip), Times.Once);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToADM) && msg.ReplyTo == "*****@*****.**")), Times.Once);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToADM) && msg.ReplyTo == "*****@*****.**")), Times.Once);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToResponsible) && msg.ReplyTo == "*****@*****.**")), Times.Once);
            //messengerMock.Verify(m => m.Notify(It.Is<IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToACC))), Times.Once);
        }
Exemplo n.º 7
0
        public void Reject_BT_DIR_Confirm_EmptyCommentSelectedDepartment_CannotReject()
        {
            //Arrange
            BusinessTrip businessTrip = new BusinessTrip {
                BusinessTripID = 3, StartDate = new DateTime(2014, 10, 20), EndDate = new DateTime(2014, 10, 30), LastCRUDedBy = "ncru", LastCRUDTimestamp = new DateTime(2012, 12, 02), Status = BTStatus.Confirmed, EmployeeID = 3, LocationID = 2, Habitation = "lodz", HabitationConfirmed = true, RowVersion = rowVersion, RejectComment = "", UnitID = 1, Unit = new Unit()
            };

            Employee            author = mock.Object.Employees.Where(e => e.EID == controller.ControllerContext.HttpContext.User.Identity.Name).FirstOrDefault();
            List <BusinessTrip> selectedBusinessTripsList = new List <BusinessTrip>();

            selectedBusinessTripsList.Add(businessTrip);

            // Act
            var view = controller.Reject_BT_DIR_Confirm(businessTrip, "SDDDA");

            //Assert
            Assert.IsInstanceOf(typeof(ViewResult), view);
            Assert.AreEqual("", ((ViewResult)view).ViewName);
            Assert.AreEqual(3, businessTrip.BusinessTripID);
            mock.Verify(m => m.SaveBusinessTrip(businessTrip), Times.Never);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToADM))), Times.Never);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToEMP))), Times.Never);
            messengerMock.Verify(m => m.Notify(It.Is <IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToResponsible))), Times.Never);
            //messengerMock.Verify(m => m.Notify(It.Is<IMessage>(msg => msg.messageType.Equals(MessageType.DIRRejectsConfirmedToACC))), Times.Never);
            Assert.AreEqual("SDDDA", ((ViewResult)view).ViewBag.SelectedDepartment);
        }
Exemplo n.º 8
0
        public static string CustomStatusHint(this HtmlHelper helper, BusinessTrip businessTrip)
        {
            StringBuilder hintBuilder = new StringBuilder("");

            if (businessTrip.Status == (BTStatus.Planned | BTStatus.Modified) ||
                (businessTrip.Status == (BTStatus.Registered | BTStatus.Modified)) &&
                (businessTrip.RejectComment == null || businessTrip.RejectComment == String.Empty))
            {
                hintBuilder.Append("BT was Replanned!");
                hintBuilder.AppendLine();
            }


            if (businessTrip.Status.HasFlag(BTStatus.Modified) &&
                businessTrip.Status.HasFlag(BTStatus.Cancelled) &&
                (businessTrip.RejectComment != null || businessTrip.RejectComment != String.Empty))
            {
                hintBuilder.Append("BT was first Modified then cancelled!");
                hintBuilder.AppendLine();
            }

            if (!businessTrip.Status.HasFlag(BTStatus.Modified) &&
                businessTrip.Status.HasFlag(BTStatus.Cancelled) &&
                (businessTrip.RejectComment != null || businessTrip.RejectComment != String.Empty))
            {
                hintBuilder.Append("BT was cancelled!");
                hintBuilder.AppendLine();
            }

            if (businessTrip.Status.HasFlag(BTStatus.Planned) &&
                (businessTrip.Purpose == null || businessTrip.Purpose == String.Empty ||
                 businessTrip.Manager == null || businessTrip.Manager == String.Empty ||
                 businessTrip.Responsible == null || businessTrip.Responsible == String.Empty))
            {
                hintBuilder.Append("Not enough info for Registration.");
            }

            if (businessTrip.Status.HasFlag(BTStatus.Modified) &&
                !businessTrip.Status.HasFlag(BTStatus.Cancelled) &&
                businessTrip.RejectComment != String.Empty &&
                businessTrip.RejectComment != null)
            {
                hintBuilder.Append("BT was Rejected!");
            }

            if (businessTrip.Status.HasFlag(BTStatus.Reported))
            {
                hintBuilder.Append("BT is Reported \n (Contact ACC to cancel BT)");
            }

            if (businessTrip.Status.HasFlag(BTStatus.Confirmed) &&
                !businessTrip.Status.HasFlag(BTStatus.Reported) &&
                !businessTrip.Status.HasFlag(BTStatus.Cancelled) &&
                (businessTrip.RejectComment == String.Empty || businessTrip.RejectComment == null))
            {
                hintBuilder.Append("Contact BTM to cancel BT");
            }

            return(hintBuilder.ToString());
        }
        public void CreateBusinessTripSubsistence(BusinessTrip trip, BusinessTripDTO businessTrip)
        {
            Subsistence sub = repo.Subsistences.Create(new Subsistence()
            {
                StartDate = DateExtensions.ParseAppString(businessTrip.Subsistence.StartDate),
                EndDate   = DateExtensions.ParseAppString(businessTrip.Subsistence.EndDate),
                City      = businessTrip.Subsistence.City,
                Country   = repo.Dictionaries.GetCountry(businessTrip.Subsistence.CountryId)
            });

            List <SubsistenceDay> days = new List <SubsistenceDay>();

            foreach (SubsistenceDayDTO dayDto in businessTrip.Subsistence.Days)
            {
                days.Add(new SubsistenceDay()
                {
                    Amount       = dayDto.Amount,
                    AmountPLN    = dayDto.AmountPLN,
                    ExchangeRate = dayDto.ExchangeRate,
                    Breakfast    = dayDto.Breakfast,
                    Date         = DateExtensions.ParseAppString(dayDto.Date),
                    Dinner       = dayDto.Dinner,
                    Supper       = dayDto.Supper,
                    Night        = dayDto.Night,
                    Subsistence  = sub,
                    Diet         = dayDto.Diet,
                    IsForeign    = dayDto.IsForeign
                });
            }

            repo.SubsistenceDays.CreateSet(days);
            trip.Subsistence = sub;
        }
Exemplo n.º 10
0
        public ActionResult SaveAccComment(BusinessTrip bTrip)
        {
            if (bTrip == null)
            {
                return(HttpNotFound());
            }
            else
            {
                if (bTrip.Status == (BTStatus.Confirmed | BTStatus.Reported))
                {
                    bTrip = RewriteBTsPropsFromRepositoryBTM(bTrip);
                    bTrip = RewriteBTsPropsFromRepositoryWhenReject(bTrip);

                    try
                    {
                        repository.SaveBusinessTrip(bTrip);
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        return(Json(new { error = modelError }));
                    }
                    catch (VacationAlreadyExistException)
                    {
                        return(Json(new { error = btCreationError }));
                    }

                    //return RedirectToAction("ACCView", "Home", new { selectedDepartment = selectedDepartment });
                    return(Json(new { success = "success" }));
                }
            }
            return(Json(new { error = "error" }));
        }
Exemplo n.º 11
0
        public ActionResult EditPlannedBT(int id = 0, string selectedDepartment = null)
        {
            BusinessTrip businessT = repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault();

            ViewBag.JSDatePattern = MvcApplication.JSDatePattern;

            if (businessT == null || (!businessT.Status.HasFlag(BTStatus.Planned)))
            {
                return(HttpNotFound());
            }
            else
            {
                ViewBag.EmployeeInformation = businessT.BTof.LastName + " " + businessT.BTof.FirstName + " (" + businessT.BTof.EID + ") from " + businessT.BTof.Department.DepartmentName;
                if (businessT.BTof.Visa != null)
                {
                    ViewBag.EmployeeVisa = businessT.BTof.Visa;
                }
            }

            BusinessTripViewModel businessTrip = new BusinessTripViewModel(businessT);

            ViewBag.SelectedDepartment = selectedDepartment;
            ViewBag.LocationsList      = LocationsDropDownList(businessT.LocationID);
            ViewBag.UnitsList          = UnitsDropDownList(businessT.UnitID);
            return(View("EditPlannedBT", businessTrip));
        }
Exemplo n.º 12
0
        public static bool InsertTrip(BusinessTrip trip, string userId, int numSeats)
        {
            try
            {
                if (!RedisDataProvider.RedisCardDataProvider.AddCards(trip, numSeats))
                {
                    return(false);
                }
                for (int i = 0; i < numSeats; i++)
                {
                    foreach (var card in trip.CardsInTrip)
                    {
                        if (InsertCard(card, userId) == null)
                        {
                            return(false);
                        }
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
Exemplo n.º 13
0
        public ActionResult CancelConfirmedBT(int id = 0, string selectedDepartment = null)
        {
            BusinessTrip selectedBT = repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault();

            if (selectedBT != null)
            {
                if ((selectedBT.Status & BTStatus.Confirmed) == BTStatus.Confirmed && !selectedBT.Status.HasFlag(BTStatus.Reported))
                {
                    try
                    {
                        Employee            author = repository.Users.Where(e => e.EID == HttpContext.User.Identity.Name).FirstOrDefault();
                        List <BusinessTrip> selectedBusinessTripsList = new List <BusinessTrip>();
                        selectedBT.Status = (selectedBT.Status | BTStatus.Cancelled);
                        AddLastCRUDDataToBT(selectedBT);
                        repository.SaveBusinessTrip(selectedBT);
                        selectedBusinessTripsList.Add(selectedBT);
                        messenger.Notify(new Message(MessageType.ADMCancelsConfirmedOrConfirmedModifiedToBTM, selectedBusinessTripsList, author));
                        messenger.Notify(new Message(MessageType.ADMCancelsConfirmedOrConfirmedModifiedToDIR, selectedBusinessTripsList, author));
                        messenger.Notify(new Message(MessageType.ADMCancelsConfirmedOrConfirmedModifiedToEMP, selectedBusinessTripsList, author));
                        messenger.Notify(new Message(MessageType.ADMCancelsConfirmedOrConfirmedModifiedToResponsible, selectedBusinessTripsList, author));
                        //messenger.Notify(new Message(MessageType.ADMCancelsConfirmedOrConfirmedModifiedToACC, selectedBusinessTripsList, author));
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        return(Json(new { error = modelError }));
                    }
                }
            }
            return(RedirectToAction("ADMView", "Home", new { tab = 1, selectedDepartment = selectedDepartment }));
        }
Exemplo n.º 14
0
        private string ActionButtons(BusinessTrip bt)
        {
            var approve = string.Format("<a target='_blank' href={0}?ID={1}>Approve</a>", ApproveAction, bt.ID);
            var cancel  = string.Format("<a target='_blank' href={0}?ID={1}>Cancel</a>", CancelAction, bt.ID);

            return(approve + "&nbsp;&nbsp;&nbsp;&nbsp;" + cancel);
        }
        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);
                }
            }
        }
Exemplo n.º 16
0
        public void EditFinished_EditDates()
        {
            int selectedYear = DateTime.Now.ToLocalTimeAzure().Year;

            Browser.Refresh();
            Thread.Sleep(Timings.Default_ms * 20);
            Browser.ClickOnLink("Finished BTs");
            Thread.Sleep(Timings.Default_ms * 20);
            Browser.ClickByXPath("//*[@id='selectedYear']");
            Browser.ClickByXPath("//*[@id='selectedYear']/option[4]");
            Thread.Sleep(Timings.Default_ms * 20);

            int year = DateTime.Now.ToLocalTimeAzure().Year;

            BusinessTrip employeeBt = (from bt in db.BusinessTrips.AsEnumerable()
                                       where (bt.EndDate.Date < DateTime.Now.ToLocalTimeAzure().Date&& bt.StartDate.Year == selectedYear)
                                       select bt).OrderBy(bt => bt.BTof.LastName).ThenBy(bt => bt.BTof.FirstName).FirstOrDefault();


            if (employeeBt != null)
            {
                ReadOnlyCollection <IWebElement> empTable = Browser.FindElementsByXPath("//*[@id='exampleBtsViewByDatesPU']/tbody/tr");
                Thread.Sleep(Timings.Default_ms * 20);
                Browser.ClickByXPath("//*[@id='exampleBtsViewByDatesPU']/tbody/tr[1]/td[1]/a");
                Thread.Sleep(Timings.Default_ms * 20);
                ((IJavaScriptExecutor)Browser.webDriver).ExecuteScript("document.getElementById('editStartDateFinishedBTPU').removeAttribute('readonly')");
                ((IJavaScriptExecutor)Browser.webDriver).ExecuteScript("document.getElementById('editEndDateFinishedBTPU').removeAttribute('readonly')");
                ((IJavaScriptExecutor)Browser.webDriver).ExecuteScript("document.getElementById('orderStartDateFinishedBTPU').removeAttribute('readonly')");
                ((IJavaScriptExecutor)Browser.webDriver).ExecuteScript("document.getElementById('orderEndDateFinishedBTPU').removeAttribute('readonly')");

                IWebElement from      = Browser.FindElementByXPath("//*[@id='editStartDateFinishedBTPU']");
                IWebElement to        = Browser.FindElementByXPath("//*[@id='editEndDateFinishedBTPU']");
                IWebElement orderFrom = Browser.FindElementByXPath("//*[@id='orderStartDateFinishedBTPU']");
                IWebElement orderTo   = Browser.FindElementByXPath("//*[@id='orderEndDateFinishedBTPU']");

                string startDate      = "19.06.2014";
                string endDate        = "21.06.2014";
                string orderStartDate = "15.06.2014";
                string orderEndDate   = "01.07.2014";



                Browser.SendKeysTo(from, startDate, true);
                Browser.SendKeysTo(to, endDate, true);

                Browser.SendKeysTo(orderFrom, orderStartDate, true);
                Browser.SendKeysTo(orderTo, orderEndDate, true);

                string SaveBTButtonXPath = "/html/body/div[4]/div[2]/form/div/button";
                Browser.ClickByXPath(SaveBTButtonXPath);

                Thread.Sleep(Timings.Default_ms * 20);
                IWebElement modifiedRow = Browser.FindElementByXPath("//*[@id='exampleBtsViewByDatesPU']/tbody/tr[1]");
                Console.WriteLine(modifiedRow.Text);
                Assert.IsTrue(modifiedRow.Text.Contains(startDate));
                Assert.IsTrue(modifiedRow.Text.Contains(endDate));
                Assert.IsTrue(modifiedRow.Text.Contains(orderStartDate));
                Assert.IsTrue(modifiedRow.Text.Contains(orderEndDate));
            }
        }
Exemplo n.º 17
0
        public void ShouldCreateNewBusinessTripRequest()
        {
            //Arange
            Employee john = GetNewEmployee();

            newBT = john.GetNewBT();
        }
Exemplo n.º 18
0
        private string ActionButtons(BusinessTrip bt)
        {
            var approve = "";
            var cancel  = "";

            return(approve + "&nbsp;&nbsp;&nbsp;&nbsp;" + cancel);
        }
Exemplo n.º 19
0
        public void Remove(int businessTripId)
        {
            BusinessTrip trip = this.context.BusinessTrips.First(bt => bt.Id == businessTripId);

            this.context.Subsistences.Remove(trip.Subsistence);
            this.context.BusinessTrips.Remove(trip);
        }
Exemplo n.º 20
0
        public void BusinessTrip_Serialize()
        {
            var businessTrip = new BusinessTrip
            {
                Id         = 1,
                DateFrom   = new DateTime(2018, 04, 11),
                DateTo     = new DateTime(2018, 04, 14),
                CountryId  = 2,
                CityId     = 3,
                SeasonId   = 3,
                CurrencyId = 1
            };

            var result = businessTrip.Serialize();

            result.Should().NotBeNullOrEmpty();
            result.Should().Be("{\"Id\":1," +
                               "\"DateFrom\":\"2018-04-11T00:00:00\"," +
                               "\"DateTo\":\"2018-04-14T00:00:00\"," +
                               "\"Country\":null," +
                               "\"CountryId\":2," +
                               "\"City\":null," +
                               "\"CityId\":3," +
                               "\"Season\":null," +
                               "\"SeasonId\":3," +
                               "\"Currency\":null," +
                               "\"CurrencyId\":1}");
        }
        public void OnSendAnEmailIsSentTroughGmail()
        {
            BusinessTrip bt = emp.GetNewBT();

            BusinessTripTests.FillBT(bt);
            bt.Send("http:\\\\aTest.com\\Approve", "http:\\\\aTest.com\\Cancel");
        }
Exemplo n.º 22
0
        public void BusinessTripCanBeFill()
        {
            BusinessTrip bt = emp.GetNewBT();

            FillBT(bt);

            XmlSerializer ser = new XmlSerializer(typeof(BusinessTrip));
            StringBuilder sb  = new System.Text.StringBuilder();
            string        serializedBT;

            using (var s = new System.IO.StringWriter(sb))
            {
                ser.Serialize(s, bt);
                serializedBT = sb.ToString();
            }

            BusinessTrip newBt;

            using (var r = new System.IO.StringReader(serializedBT))
            {
                newBt = (BusinessTrip)ser.Deserialize(r);
            }

            sb.Clear();
            string serializedNewBT;

            using (var s = new System.IO.StringWriter(sb))
            {
                ser.Serialize(s, bt);
                serializedNewBT = sb.ToString();
            }

            Assert.AreEqual(serializedBT, serializedNewBT);
        }
Exemplo n.º 23
0
        public void IfApprovedIsSentToEmployee()
        {
            BusinessTrip bt = emp.GetNewBT();

            FillBT(bt);
            bt.Approve();
        }
Exemplo n.º 24
0
        public void IfCanceledRequestIsSentToEmployee()
        {
            BusinessTrip bt = emp.GetNewBT();

            FillBT(bt);
            bt.Cancel();
        }
Exemplo n.º 25
0
        public void IfEmailIsSendToManager()
        {
            BusinessTrip bt = emp.GetNewBT();

            FillBT(bt);
            bt.Send();
        }
Exemplo n.º 26
0
        public void SaveBusinessTrip(BusinessTrip bt, bool IsInitialSave = false)
        {
            BusinessTrip dbEntry = (from b in BusinessTrips where b.BusinessTripID == bt.BusinessTripID select b).FirstOrDefault();

            if (dbEntry != null)
            {
                dbEntry.StartDate  = bt.StartDate;
                dbEntry.EndDate    = bt.EndDate;
                dbEntry.Status     = bt.Status;
                dbEntry.LocationID = bt.LocationID;
            }
            else
            {
                Employee     employee = Employees.Where(e => e.EmployeeID == bt.EmployeeID).SingleOrDefault();
                BusinessTrip btLast   = BusinessTrips.Last();
                bt.BusinessTripID = btLast.BusinessTripID + 1;
                bt.BTof           = employee;
                bt.EmployeeID     = employee.EmployeeID;
                bt.Location       = locations.Where(loc => loc.LocationID == bt.LocationID).FirstOrDefault();

                employees.Find(e => e.EmployeeID == employee.EmployeeID).BusinessTrips.Add(bt);
                locations.Find(loc => loc.LocationID == bt.LocationID).BusinessTrips.Add(bt);
                businessTrips.Add(bt);
            }
        }
Exemplo n.º 27
0
        public void BtsByUnits_TableRows()
        {
            //Arrange
            using (AjourBTForTestContext db = new AjourBTForTestContext()){
                BusinessTrip employeeBt = (from bt in db.BusinessTrips.AsEnumerable()
                                           where (bt.Status == BTStatus.Cancelled || bt.Status == (BTStatus.Confirmed | BTStatus.Modified) || bt.Status == (BTStatus.Confirmed | BTStatus.Reported)) && bt.StartDate.Year == DateTime.Now.ToLocalTimeAzure().Year
                                           orderby bt.UnitID
                                           select bt).FirstOrDefault();

                //Act

                //Assert
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[1]"), employeeBt.UnitID.ToString());
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[2]"), employeeBt.BTof.EID);
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[3]"), String.Format(employeeBt.BTof.LastName + " " + employeeBt.BTof.FirstName));
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[4]"), employeeBt.Location.Title);
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[7]"), employeeBt.Unit.ShortTitle.ToString());
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[8]"), employeeBt.Purpose);
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[9]"), employeeBt.Manager);
                Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[10]"), employeeBt.Responsible);
            }
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[1]/td[1]"), "1");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[2]"), "swhe");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[3]"), "Harper Earl");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[4]"), "RB/MA");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[7]"), "-");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[8]"), "Meeting");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[9]"), "ncru");
            //Assert.AreEqual(Browser.GetText("/html/body/div[1]/div/div[6]/div/div/div[2]/div[2]/table/tbody/tr[2]/td[10]"), "mter");
        }
Exemplo n.º 28
0
        public IHttpActionResult UpdateBusinessTrip(BusinessTripDTO businessTrip)
        {
            try
            {
                BusinessTrip trip = this.tasks.BusinessTripsTasks.GetBusinessTrip(businessTrip.Id.Value);
                if (trip.UserId != this.User.Identity.GetUserId <int>())
                {
                    return(Unauthorized());
                }


                if (this.ModelState.IsValid)
                {
                    if (!businessTrip.Id.HasValue)
                    {
                        return(BadRequest("Brak Id Delegacji"));
                    }
                    this.tasks.BusinessTripsTasks.UpdateBusinessTrip(businessTrip, this.UserName);
                    return(Ok("Delegacja została zaktualizowana"));
                }
                else
                {
                    return(BadRequest(this.ModelState));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public void Get_DescSortIsSet_ReturnsSortedArray(string field)
        {
            BusinessTripFilter filter = new BusinessTripFilter {
                SortField = field,
                SortOrder = "Desc"
            };

            BusinessTrip[] businessTrips = new BusinessTrip[] {
                new BusinessTrip()
                {
                    Id          = 1,
                    Name        = "bt_47",
                    DateStart   = new DateTime(2018, 09, 12),
                    DateEnd     = new DateTime(2018, 09, 25),
                    Destination = "Kazan"
                },
                new BusinessTrip()
                {
                    Id          = 2,
                    Name        = "bt_48",
                    DateStart   = new DateTime(2018, 10, 08),
                    DateEnd     = new DateTime(2018, 10, 15),
                    Destination = "Moscow"
                },
                new BusinessTrip()
                {
                    Id          = 3,
                    Name        = "bt_50",
                    DateStart   = new DateTime(2018, 11, 03),
                    DateEnd     = new DateTime(2018, 11, 07),
                    Destination = "Rostov"
                },
                new BusinessTrip()
                {
                    Id          = 4,
                    Name        = "bt_53",
                    DateStart   = new DateTime(2018, 12, 01),
                    DateEnd     = new DateTime(2018, 12, 05),
                    Destination = "Sochi"
                }
            };
            Mock <IUnitOfWork> mock = new Mock <IUnitOfWork>();

            mock.Setup(m => m.BusinessTrips.Get(It.IsAny <Func <BusinessTrip, bool> >()))
            .Returns((Func <BusinessTrip, bool> predicate) => businessTrips.Where(predicate));
            BusinessTripService businessTripService = GetNewService(mock.Object);

            BusinessTripDTO[] result = businessTripService.Get(filter).ToArray();

            Assert.AreEqual(4, result.Length);
            Assert.AreEqual(4, result[0].Id);
            Assert.AreEqual(3, result[1].Id);
            Assert.AreEqual(2, result[2].Id);
            Assert.AreEqual(1, result[3].Id);
            Assert.AreEqual("bt_53", result[0].Name);
            Assert.AreEqual("bt_50", result[1].Name);
            Assert.AreEqual("bt_48", result[2].Name);
            Assert.AreEqual("bt_47", result[3].Name);
        }
Exemplo n.º 30
0
        public void BusinessTrip_SerializeList()
        {
            var list = new List <BusinessTrip>
            {
                new BusinessTrip
                {
                    Id         = 1,
                    DateFrom   = new DateTime(2018, 04, 11),
                    DateTo     = new DateTime(2018, 04, 14),
                    CountryId  = 2,
                    CityId     = 3,
                    SeasonId   = 3,
                    CurrencyId = 1
                },
                new BusinessTrip
                {
                    Id         = 2,
                    DateFrom   = new DateTime(2018, 04, 11),
                    DateTo     = new DateTime(2018, 04, 14),
                    CountryId  = 2,
                    CityId     = 3,
                    SeasonId   = 3,
                    CurrencyId = 1
                }
            };

            var result = BusinessTrip.SerializeList(list);

            result.Should().NotBeNull();
            result.Should().Be(
                "[" +
                "{" +
                "\"Id\":1," +
                "\"DateFrom\":\"2018-04-11T00:00:00\"," +
                "\"DateTo\":\"2018-04-14T00:00:00\"," +
                "\"Country\":null," +
                "\"CountryId\":2," +
                "\"City\":null," +
                "\"CityId\":3," +
                "\"Season\":null," +
                "\"SeasonId\":3," +
                "\"Currency\":null," +
                "\"CurrencyId\":1" +
                "}," +
                "{" +
                "\"Id\":2," +
                "\"DateFrom\":\"2018-04-11T00:00:00\"," +
                "\"DateTo\":\"2018-04-14T00:00:00\"," +
                "\"Country\":null," +
                "\"CountryId\":2," +
                "\"City\":null," +
                "\"CityId\":3," +
                "\"Season\":null," +
                "\"SeasonId\":3," +
                "\"Currency\":null," +
                "\"CurrencyId\":1" +
                "}" +
                "]");
        }