コード例 #1
0
ファイル: Holiday.cs プロジェクト: MogyJIb/HRD_DataLibrary
        public override bool Equals(object obj)
        {
            if (ReferenceEquals(null, obj))
            {
                return(false);
            }
            if (ReferenceEquals(this, obj))
            {
                return(true);
            }
            if (obj.GetType() != this.GetType())
            {
                return(false);
            }

            Holiday other = (Holiday)obj;

            return(HolidayId == other.HolidayId &&
                   EmployeeId == other.EmployeeId &&
                   StartDate.Equals(other.StartDate) &&
                   FinalDate.Equals(other.FinalDate) &&
                   string.Equals(Type, other.Type) &&
                   Salary.Equals(other.Salary) &&
                   Deleted == other.Deleted);
        }
コード例 #2
0
        private void UpdateFinalDateData(DateTime finalDate)
        {
            // Make a request from ]FinalDate, finalDate]:
            MakeRequest(BasePath, Action, FinalDate.AddDays(1), finalDate);

            // Updating FinalDate:
            FinalDate = finalDate;
        }
コード例 #3
0
        private void SetInitialFilterValues()
        {
            GetQueryStringParameters();

            dtDesde.SelectedDate   = InitialDate.ToDisplayDateTime();
            dtHasta.SelectedDate   = FinalDate.ToDisplayDateTime();
            tpStopped.SelectedTime = Stopped;
            npDistance.Number      = Distance;
            npStoppedEvent.Number  = StoppedEvent;
        }
コード例 #4
0
        protected override void OnLoad(EventArgs e)
        {
            Monitor.ContextMenuPostback += Monitor_ContextMenuPostback;
            chkQtree.Visible             = WebSecurity.IsSecuredAllowed(Securables.ViewQtree);

            base.OnLoad(e);

            if (!IsPostBack)
            {
                this.RegisterCss(ResolveUrl("~/App_Styles/openlayers.css"));
                RegisterExtJsStyleSheet();

                dtDesde.SelectedDate = InitialDate.Get().ToDisplayDateTime();
                dtHasta.SelectedDate = FinalDate.Get().ToDisplayDateTime();
                WestPanel.Enabled    = !LockFilters.Get();
                dtDesde.Enabled      = !LockFilters.Get();
                dtHasta.Enabled      = !LockFilters.Get();
                if (Distrito.Get() > 0)
                {
                    ddlDistrito.SetSelectedValue(Distrito.Get());
                }
                if (Location.Get() > 0)
                {
                    ddlPlanta.SetSelectedValue(Location.Get());
                }
                if (Chofer.Get() > 0)
                {
                    ddlEmpleado.SetSelectedValue(Chofer.Get());
                }
                if (TypeMobile.Get() > 0)
                {
                    ddlTipoVehiculo.SetSelectedValue(TypeMobile.Get());
                }
                if (Mobile.Get() > 0)
                {
                    ddlMovil.SetSelectedValue(Mobile.Get());
                }

                foreach (var id in PoisTypesIds.Get())
                {
                    var it = lbPuntosDeInteres.Items.FindByValue(id.ToString());
                    if (it != null)
                    {
                        it.Selected = true;
                    }
                }
                PoisTypesIds.Set(lbPuntosDeInteres.SelectedValues);

                InitializeMap();
                if (Mobile.Get() > 0)
                {
                    LoadPositions(true);
                }
            }
        }
コード例 #5
0
ファイル: Holiday.cs プロジェクト: MogyJIb/HRD_DataLibrary
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = HolidayId;
         hashCode = (hashCode * 397) ^ EmployeeId;
         hashCode = (hashCode * 397) ^ StartDate.GetHashCode();
         hashCode = (hashCode * 397) ^ FinalDate.GetHashCode();
         hashCode = (hashCode * 397) ^ (Type != null ? Type.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ Salary.GetHashCode();
         hashCode = (hashCode * 397) ^ Deleted.GetHashCode();
         return(hashCode);
     }
 }
コード例 #6
0
        private void LoadPositions(bool center)
        {
            var par = new Parameters
            {
                Empresa  = Distrito.Get(),
                Linea    = Location.Get(),
                Chofer   = Chofer.Get(),
                Vehiculo = Mobile.Get(),
                Desde    = InitialDate.Get(),
                Hasta    = FinalDate.Get(),
                TiposPoi = PoisTypesIds.Get().ToArray()
            };

            Monitor.ExecuteScript(string.Format("CallForData('{0}', {1});", par.Serialize(), center ? "true" : "false"));
        }
コード例 #7
0
        public DateTime CheckWorkingDaysInFuture(int NumberOfDays)
        {
            if (NumberOfDays <= 0)
            {
                throw new Exceptions.InvalidSettingsConfigurationException("The number of days in the future must be above 0.");
            }

            Reader           = new WorkingDaysReader();
            BankHolidaysList = Reader.ReadWorkingDaysFile();

            WorkingDays  = 0;
            CalendarDays = 0;
            DateToday    = DateTime.UtcNow.Date;
            DateStart    = DateToday;

            // Check if today is a bank holiday or falls on a weekend
            if (DateToday.DayOfWeek == DayOfWeek.Saturday || DateToday.DayOfWeek == DayOfWeek.Sunday || BankHolidaysList.Contains(DateStart.Date.ToString("yyyy-MM-dd")))
            {
                int i = 0;
                while (DateToday.DayOfWeek != DayOfWeek.Saturday && DateToday.DayOfWeek != DayOfWeek.Sunday || BankHolidaysList.Contains(DateStart.ToString("yyyy-MM-dd")))
                {
                    i++;
                    DateStart = DateToday.AddDays(i);
                }
            }

            while (WorkingDays <= (NumberOfDays - 1))
            {
                WorkingDate = DateStart.AddDays(CalendarDays);
                if (WorkingDate.DayOfWeek != DayOfWeek.Saturday && WorkingDate.DayOfWeek != DayOfWeek.Sunday && !BankHolidaysList.Contains(WorkingDate.ToString("yyyy-MM-dd")))
                {
                    WorkingDays++;
                }
                CalendarDays++;
            }
            FinalDate = DateStart.AddDays(CalendarDays);

            while (FinalDate.DayOfWeek == DayOfWeek.Saturday || FinalDate.DayOfWeek == DayOfWeek.Sunday || BankHolidaysList.Contains(FinalDate.ToString("yyyy-MM-dd")))
            {
                FinalDate = FinalDate.AddDays(1);
                CalendarDays++;
            }

            return(FinalDate);
        }
コード例 #8
0
        protected void btnSearch_Click(object sender, EventArgs e)
        {
            Distrito.Set(ddlDistrito.Selected);
            Location.Set(ddlPlanta.Selected);
            Chofer.Set(ddlEmpleado.Selected);
            Mobile.Set(ddlMovil.Selected);
            InitialDate.Set(SecurityExtensions.ToDataBaseDateTime(dtDesde.SelectedDate.Value));
            FinalDate.Set(SecurityExtensions.ToDataBaseDateTime(dtHasta.SelectedDate.Value));
            PoisTypesIds.Set(lbPuntosDeInteres.SelectedValues);

            var deltaTime = FinalDate.Get().Subtract(InitialDate.Get());

            if (deltaTime > dtvalidator.MaxRange)
            {
                ShowError("El rango de tiempo debe ser menor o igual a " + dtvalidator.MaxRange.ToString());
                return;
            }
            LoadPositions(true);
        }
コード例 #9
0
        public string ValidateDate(string MyDate)
        {
            string message = "";

            string[] myarrData = MyDate.Split('/');
            if ((myarrData.Length != 3))
            {
                message = "Incomplete date of birth";
                return(message);
            }
            strMyDay  = myarrData[0];
            strMyMth  = myarrData[1];
            strMyYear = myarrData[2].Substring(0, 4);
            strMyDay  = double.Parse(strMyDay).ToString("00");
            strMyMth  = double.Parse(strMyMth).ToString("00");
            strMyYear = double.Parse(strMyYear).ToString("0000");
            strMyDte  = (strMyDay.Trim() + ("/"
                                            + (strMyMth.Trim() + ("/" + strMyYear.Trim()))));

            if ((!gnTest_TransDate(strMyDte)))
            {
                message = "Invalid date - " + strMyDte.ToString();
                return(message);
            }


            try
            {
                FinalDate = RearrangetoDateFormat(strMyDte);
                //if (FinalDate.Substring(0, 5) != "ERROR")
                if (FinalDate.Substring(0, 5) == "ERROR")
                {
                    throw new Exception();
                }
            }
            catch (Exception e)
            {
                message = "Invalid date - " + strMyDte.ToString();
                return(message);
            }
            return(FinalDate);
        }
コード例 #10
0
        /// <summary>
        /// Updates the DB with the information in the Concrete Chore targeted by the method
        /// </summary>
        public void Update()
        {
            //Creates queries that updates the concrete_chore and chore entries with this chore's ID
            string query = string.Format("UPDATE concrete_chore SET " +
                                         "due_date='{0}', status={1}, approval_date='{2}', reminder={3} WHERE chore_id={4}",
                                         DueDate.ToString(Properties.Settings.Default.LongDateFormat),
                                         Status, FinalDate.ToString(Properties.Settings.Default.LongDateFormat), Reminder, ID);
            string query2 = string.Format("UPDATE chore SET " +
                                          "child_id={0}, name='{1}', description='{2}', points={3} WHERE chore_id={4}",
                                          Assignment, Name, Description, Points, ID);

            //Executes the queries
            SqlCommand command = new SqlCommand(query, Functions.DatabaseFunctions.DatabaseConnection);

            Functions.DatabaseFunctions.DatabaseConnection.Open();
            command.ExecuteNonQuery();
            command = new SqlCommand(query2, Functions.DatabaseFunctions.DatabaseConnection);
            command.ExecuteNonQuery();
            Functions.DatabaseFunctions.DatabaseConnection.Close();
        }
コード例 #11
0
        protected void BtnSearchClick(object sender, EventArgs e)
        {
            Distrito = ddlDistrito.Selected;
            Location = ddlPlanta.Selected;
            var moviles = new List <int>();

            if (ddlMovil1.Selected > 0)
            {
                moviles.Add(ddlMovil1.Selected);
            }
            if (ddlMovil2.Selected > 0 && !moviles.Contains(ddlMovil2.Selected))
            {
                moviles.Add(ddlMovil2.Selected);
            }
            if (ddlMovil3.Selected > 0 && !moviles.Contains(ddlMovil3.Selected))
            {
                moviles.Add(ddlMovil3.Selected);
            }
            if (ddlMovil4.Selected > 0 && !moviles.Contains(ddlMovil4.Selected))
            {
                moviles.Add(ddlMovil4.Selected);
            }
            Mobiles      = moviles;
            InitialDate  = SecurityExtensions.ToDataBaseDateTime(dtDesde.SelectedDate.Value);
            FinalDate    = SecurityExtensions.ToDataBaseDateTime(dtHasta.SelectedDate.Value);
            Stopped      = tpStopped.SelectedTime;
            Distance     = npDistance.Number;
            StoppedEvent = npStoppedEvent.Number;
            MessageType  = ddlTipo.Selected;
            MessagesIds  = lbMessages.SelectedStringValues;
            PoisTypesIds = lbPuntosDeInteres.SelectedValues;

            var deltaTime = FinalDate.Subtract(InitialDate);

            if (deltaTime > dtvalidator.MaxRange)
            {
                ShowError("El rango de tiempo debe ser menor o igual a " + dtvalidator.MaxRange.ToString());
                return;
            }
            SearchPositions();
        }
コード例 #12
0
        /// <summary>
        /// Transforms the mobile event into a javascript object.
        /// </summary>
        /// <returns></returns>
        private void GetMessages()
        {
            var messages = lbMessages.SelectedStringValues;

            if (MessagesIds.Count == 0 && messages.Count == 0)
            {
                return;
            }

            var empresa   = DAOFactory.EmpresaDAO.FindById(ddlDistrito.Selected);
            var maxMonths = empresa != null && empresa.Id > 0 ? empresa.MesesConsultaPosiciones : 3;
            var events    = (from ev in DAOFactory.LogMensajeDAO.GetByMobilesAndTypes(ddlMovil.SelectedValues, GetSelectedMessagesCodes(messages), InitialDate.ToDataBaseDateTime(), FinalDate.ToDataBaseDateTime(), maxMonths) orderby ev.Fecha select ev).ToList();

            var eventarray = "[";

            for (var i = 0; i < events.Count; i++)
            {
                var evento = events[i];
                if (!evento.HasValidLatitudes())
                {
                    continue;
                }

                var messageIconUrl = evento.GetIconUrl();
                var iconUrl        = CreateAbsolutePath(string.IsNullOrEmpty(messageIconUrl) ? DefaultMessageImgUrl : string.Concat(IconDir, messageIconUrl));

                if (i > 0)
                {
                    eventarray += ",";
                }

                eventarray += string.Format("{{ id: 'ev_{0}', name: '{1}', lat: {2}, lon:{3}, icon:'{4}', time: new Date{5} }}",
                                            evento.Id, evento.Texto, evento.Latitud.ToString(CultureInfo.InvariantCulture), evento.Longitud.ToString(CultureInfo.InvariantCulture),
                                            iconUrl, evento.Fecha.ToDisplayDateTime().ToString("(yyyy, MM, dd, HH, mm, ss)"));

                //Monitor.AddMarkers(MENSAJES, new Marker(i.ToString(), iconUrl, events[i].Latitud, events[i].Longitud,
                //    string.Format("javascript:gMSP({0})", events[i].Id), DrawingFactory.GetSize(24, 24), DrawingFactory.GetOffset(-12, -12)));

                //if (events[i].HasDuration()) AddMessageWithElapsedTime(events[i]);
            }
            eventarray += "]";

            System.Web.UI.ScriptManager.RegisterStartupScript(this, typeof(string), "events", string.Format("simulador.addEvents({0});", eventarray), true);
            //SetMessagesCenterIndex(events);
        }
コード例 #13
0
        public async Task <ActionResult> Index(string sortOrder, string currentFilter, string searchString, int?page, string InitialDate, string InitialFilter,
                                               string FinalDate, string FinalFilter)
        {
            int    inicio = 0, final = 0, pos1 = 0, pos2 = 0;
            string trans;

            ViewBag.CurrentSort = sortOrder;


            ViewBag.UnitSortParm = String.IsNullOrEmpty(sortOrder) ? "UNIT" : "";
            ViewBag.FeeSortParm  = String.IsNullOrEmpty(sortOrder) ? "FEE" : "";
            ViewBag.DateSortParm = String.IsNullOrEmpty(sortOrder) ? "MMYY" : "";


            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            if (InitialDate != null)
            {
                page = 1;
            }
            else
            {
                InitialDate = InitialFilter;
            }

            if (FinalDate != null)
            {
                page = 1;
            }
            else
            {
                FinalDate = FinalFilter;
            }

            ViewBag.CurrentFilter = searchString;
            ViewBag.InitialFilter = InitialDate;
            ViewBag.FinalFilter   = FinalDate;

            //Busqueda por fechas


            if (String.IsNullOrEmpty(InitialDate))
            {
                inicio = 19000101;
            }
            else              // 3/6/2017
            {
                pos1  = InitialDate.IndexOf('/');
                pos2  = InitialDate.LastIndexOf('/');
                trans = InitialDate.Substring(pos2 + 1);
                if (pos1 == 1)
                {
                    trans += "0" + InitialDate.Substring(0, 1);
                }
                else
                {
                    trans += InitialDate.Substring(0, 2);
                }

                if (pos2 - pos1 <= 2)
                {
                    trans += "0" + InitialDate.Substring(pos1 + 1, 1);
                }
                else
                {
                    trans += InitialDate.Substring(pos1 + 1, 2);
                }
                inicio = Convert.ToInt32(trans);
            }

            if (String.IsNullOrEmpty(FinalDate))
            {
                final = Convert.ToInt32(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00"));
            }
            else
            {
                pos1  = FinalDate.IndexOf('/');
                pos2  = FinalDate.LastIndexOf('/');
                trans = FinalDate.Substring(pos2 + 1);
                if (pos1 == 1)
                {
                    trans += "0" + FinalDate.Substring(0, 1);
                }
                else
                {
                    trans += FinalDate.Substring(0, 2);
                }

                if (pos2 - pos1 <= 2)
                {
                    trans += "0" + FinalDate.Substring(pos1 + 1, 1);
                }
                else
                {
                    trans += FinalDate.Substring(pos1 + 1, 2);
                }
                final = Convert.ToInt32(trans);
            }


            var fleets = from s in db.FeeCodes
                         where s.MMYY >= inicio && s.MMYY <= final
                         select s;

            if (!String.IsNullOrEmpty(searchString))
            {
                fleets = fleets.Where(s => s.Fee.ToString().Equals(searchString) || s.Fleet.ToString().Equals(searchString) || s.Unit.ToString().Equals(searchString) || s.LogNo.ToString().Equals(searchString));
            }
            else
            {
                fleets = fleets.Take(100000000);
            }

            switch (sortOrder)
            {
            case "FEE":
                fleets = fleets.OrderByDescending(s => s.Fee);
                break;

            case "UNIT":
                fleets = fleets.OrderBy(s => s.Unit);
                break;

            case "MMYY":
                fleets = fleets.OrderByDescending(s => s.MMYY);
                break;

            default:
                fleets = fleets.OrderBy(s => s.Fleet);
                break;
            }

            int pageSize   = 20;
            int pageNumber = (page ?? 1);

            return(View(fleets.ToPagedList(pageNumber, pageSize)));
        }
コード例 #14
0
        protected void BtnPosicionarTicketClick(object sender, EventArgs e)
        {
            if (lstTicket.SelectedValue.Equals(""))
            {
                infoLabel1.Text = "No se ha seleccionado ningún Ticket.";
                return;
            }

            var split   = lstTicket.SelectedValue.Split('-');
            var prefijo = split[0];
            var id      = Convert.ToInt32((string)split[1]);

            switch (prefijo)
            {
            case "T":
                var ticket = DAOFactory.TicketDAO.FindById(id);

                var detalles = ticket.Detalles.Cast <DetalleTicket>()
                               .Where(d => d.Automatico.HasValue)
                               .OrderBy(t => t.Automatico.Value);

                var primerDetalle = detalles.FirstOrDefault();
                var ultimoDetalle = detalles.LastOrDefault();

                InitialDate = primerDetalle != null ? primerDetalle.Automatico.Value : DateTime.UtcNow.Date.ToDataBaseDateTime();

                if (ticket.Estado == Logictracker.Types.BusinessObjects.Tickets.Ticket.Estados.EnCurso)
                {
                    FinalDate = DateTime.UtcNow;
                }
                else
                {
                    FinalDate = ultimoDetalle != null ? ultimoDetalle.Automatico.Value : DateTime.UtcNow.Date.AddHours(23).AddMinutes(59).ToDataBaseDateTime();
                }

                dtDesde.SelectedDate = InitialDate.ToDisplayDateTime();
                dtHasta.SelectedDate = FinalDate.ToDisplayDateTime();

                if (ticket.Vehiculo != null)
                {
                    Mobile = ticket.Vehiculo.Id;
                }
                break;

            case "V":
                var viaje = DAOFactory.ViajeDistribucionDAO.FindById(id);
                InitialDate = viaje.InicioReal.HasValue
                                     ? viaje.InicioReal.Value
                                     : viaje.Inicio;
                FinalDate = viaje.Fin;

                dtDesde.SelectedDate = InitialDate.ToDisplayDateTime();
                dtHasta.SelectedDate = FinalDate.ToDisplayDateTime();

                if (viaje.Vehiculo != null)
                {
                    Mobile = viaje.Vehiculo.Id;
                }
                break;
            }

            var mensajes = DAOFactory.MensajeDAO.FindAll().Where(m => m.TipoMensaje != null && m.TipoMensaje.DeEstadoLogistico).ToList();
            var msj      = DAOFactory.MensajeDAO.FindAll().Where(m => m.Codigo == MessageCode.EstadoLogisticoCumplido.GetMessageCode() ||
                                                                 m.Codigo == MessageCode.EstadoLogisticoCumplidoEntrada.GetMessageCode() ||
                                                                 m.Codigo == MessageCode.EstadoLogisticoCumplidoManual.GetMessageCode() ||
                                                                 m.Codigo == MessageCode.EstadoLogisticoCumplidoManualRealizado.GetMessageCode() ||
                                                                 m.Codigo == MessageCode.EstadoLogisticoCumplidoManualNoRealizado.GetMessageCode() ||
                                                                 m.Codigo == MessageCode.EstadoLogisticoCumplidoSalida.GetMessageCode() ||
                                                                 m.Codigo == MessageCode.CicloLogisticoIniciado.GetMessageCode() ||
                                                                 m.Codigo == MessageCode.CicloLogisticoCerrado.GetMessageCode()).ToList();

            mensajes.AddRange(msj);

            lbMessages.SetSelectedValues(mensajes.Select(m => m.Codigo));

            Distrito     = ddlDistrito.Selected;
            Location     = ddlPlanta.Selected;
            Stopped      = tpStopped.SelectedTime;
            Distance     = npDistance.Number;
            StoppedEvent = npStoppedEvent.Number;
            MessageType  = ddlTipo.Selected;
            PoisTypesIds = lbPuntosDeInteres.SelectedValues;
            MessagesIds  = lbMessages.SelectedStringValues;

            SearchPositions();
        }
コード例 #15
0
        protected override void OnLoad(EventArgs e)
        {
            Monitor.ContextMenuPostback += Monitor_ContextMenuPostback;

            LoadQtreeInfo();

            base.OnLoad(e);

            var empresa  = DAOFactory.EmpresaDAO.FindById(ddlDistrito.Selected);
            var maxHours = empresa != null && empresa.Id > 0 ? empresa.MaxHorasMonitor : 24;

            dtvalidator.MaxRange = new TimeSpan(maxHours, 0, 0);

            if (!IsPostBack)
            {
                this.RegisterCss(ResolveUrl("~/App_Styles/openlayers.css"));
                RegisterExtJsStyleSheet();

                dtDesde.SelectedDate = InitialDate.Get().ToDisplayDateTime();
                dtHasta.SelectedDate = FinalDate.Get().ToDisplayDateTime();
                WestPanel.Enabled    = !LockFilters.Get();
                dtDesde.Enabled      = !LockFilters.Get();
                dtHasta.Enabled      = !LockFilters.Get();
                if (Distrito.Get() > 0)
                {
                    ddlDistrito.SetSelectedValue(Distrito.Get());
                }
                if (Location.Get() > 0)
                {
                    ddlPlanta.SetSelectedValue(Location.Get());
                }
                if (Chofer.Get() > 0)
                {
                    ddlEmpleado.SetSelectedValue(Chofer.Get());
                }
                if (TypeMobile.Get() > 0)
                {
                    ddlTipoVehiculo.SetSelectedValue(TypeMobile.Get());
                }
                if (Mobile.Get() > 0)
                {
                    ddlMovil.SetSelectedValue(Mobile.Get());
                }

                foreach (var id in PoisTypesIds.Get())
                {
                    var it = lbPuntosDeInteres.Items.FindByValue(id.ToString());
                    if (it != null)
                    {
                        it.Selected = true;
                    }
                }
                PoisTypesIds.Set(lbPuntosDeInteres.SelectedValues);

                InitializeMap();
                if (Mobile.Get() > 0)
                {
                    LoadPositions(true);
                }
            }
        }
コード例 #16
0
        private double Amount()
        {
            TimeSpan totalHours = FinalDate.Subtract(InitialDate);

            return(AmountService.TotalPrice(totalHours.Hours));
        }
コード例 #17
0
 public TimeSpan Duration()
 {
     DurationTime = FinalDate.Subtract(InitialDate);
     return(DurationTime);
 }
コード例 #18
0
        public async Task <ActionResult> Index(string sortOrder, string currentFilter, string searchString, int?page,
                                               string currentUnit, string searchUnit, string currentLlogNo, string searchLogNo,
                                               string currentFee, string searchFee,
                                               string InitialDate, string InitialFilter, string FinalDate, string FinalFilter)
        {
            try
            {
                int  inicio = 0, final = 0, pos1 = 0, pos2 = 0;
                bool band = true;

                if ((!String.IsNullOrEmpty(InitialDate)) || (!String.IsNullOrEmpty(FinalDate)))
                {
                    if (String.IsNullOrEmpty(InitialDate))
                    {
                        this.HttpContext.Session["Display1"] = "The Initial Date cannot be empty, please set a correct date.";
                        band = false;
                    }


                    if (String.IsNullOrEmpty(FinalDate))
                    {
                        this.HttpContext.Session["Display1"] = "The Final Date cannot be empty, please set a correct date.";
                        band = false;
                    }

                    if (band)
                    {
                        if (Convert.ToDateTime(FinalDate) < Convert.ToDateTime(InitialDate))
                        {
                            this.HttpContext.Session["Display1"] = "The Initial Date cannot be major than Final Date, please set a correct date.";
                            band = false;
                        }
                        else if (Convert.ToDateTime(FinalDate) > Convert.ToDateTime(InitialDate).AddDays(7))
                        {
                            this.HttpContext.Session["Display1"] = "The Final Date cannot be more than 7 days major than Initial Date, please set a correct date.)";
                            band = false;
                        }
                    }
                }

                if (((!String.IsNullOrEmpty(searchString)) || (!String.IsNullOrEmpty(searchUnit)) || (!String.IsNullOrEmpty(searchLogNo)) || (!String.IsNullOrEmpty(searchFee)) ||
                     (!String.IsNullOrEmpty(InitialDate)) || (!String.IsNullOrEmpty(FinalDate) || (!String.IsNullOrEmpty(currentFilter)) || (!String.IsNullOrEmpty(currentUnit)) ||
                                                              (!String.IsNullOrEmpty(currentLlogNo)) || (!String.IsNullOrEmpty(currentFee)) || (!String.IsNullOrEmpty(InitialFilter)) || (!String.IsNullOrEmpty(FinalFilter)))) && band)
                {
                    ViewBag.CurrentSort = sortOrder;

                    ViewBag.UnitSortParm  = String.IsNullOrEmpty(sortOrder) ? "Unit" : "";
                    ViewBag.FeeSortParm   = String.IsNullOrEmpty(sortOrder) ? "Fee" : "";
                    ViewBag.DateSortParm  = String.IsNullOrEmpty(sortOrder) ? "MMYY" : "";
                    ViewBag.LogNoSortParm = String.IsNullOrEmpty(sortOrder) ? "LogNo" : "";


                    if ((searchString != null) || (searchUnit != null) || (searchLogNo != null) || (searchFee != null))
                    {
                        page = 1;
                    }
                    else
                    {
                        searchString = currentFilter;
                        searchUnit   = currentUnit;
                        searchLogNo  = currentLlogNo;
                        searchFee    = currentFee;
                        InitialDate  = InitialFilter;
                        FinalDate    = FinalFilter;
                    }

                    ViewBag.currentFilter = searchString;
                    ViewBag.currentUnit   = searchUnit;
                    ViewBag.currentLlogNo = searchLogNo;
                    ViewBag.currentFee    = searchFee;
                    ViewBag.InitialFilter = InitialDate;
                    ViewBag.FinalFilter   = FinalDate;

                    var fleets = from s in db.FeeCodes
                                 select s;

                    //Busqueda por fechas
                    if ((!String.IsNullOrEmpty(InitialDate)) && (!String.IsNullOrEmpty(FinalDate)))
                    {
                        //fecha inicial
                        trans  = InitialDate.Replace("-", "");
                        inicio = Convert.ToInt32(trans);

                        //Fecha final
                        trans = FinalDate.Replace("-", "");
                        final = Convert.ToInt32(trans);

                        fleets = fleets.Where(s => (s.MMYY >= inicio) && (s.MMYY <= final));
                    }

                    if (!String.IsNullOrEmpty(searchString))
                    {
                        fleets = fleets.Where(s => s.Fleet.ToString().Contains(searchString));
                    }

                    if (!String.IsNullOrEmpty(searchUnit))
                    {
                        fleets = fleets.Where(s => s.Unit.ToString().Contains(searchUnit));
                    }

                    if (!String.IsNullOrEmpty(searchLogNo))
                    {
                        fleets = fleets.Where(s => s.LogNo.ToString().Contains(searchLogNo));
                    }

                    if (!String.IsNullOrEmpty(searchFee))
                    {
                        fleets = fleets.Where(s => s.Fee.ToString().Contains(searchFee));
                    }

                    switch (sortOrder)
                    {
                    case "Fee":
                        fleets = fleets.OrderByDescending(s => s.Fee);
                        break;

                    case "Unit":
                        fleets = fleets.OrderBy(s => s.Unit);
                        break;

                    case "MMYY":
                        fleets = fleets.OrderByDescending(s => s.MMYY);
                        break;

                    case "LogNo":
                        fleets = fleets.OrderByDescending(s => s.LogNo);
                        break;

                    default:
                        fleets = fleets.OrderBy(s => s.Fleet);
                        break;
                    }
                    this.HttpContext.Session["Display1"] = this.HttpContext.Session["Display2"] = "";
                    int pageSize   = 100;
                    int pageNumber = (page ?? 1);
                    return(View(fleets.ToPagedList(pageNumber, pageSize)));
                }
                else
                {
                    if (band)
                    {
                        this.HttpContext.Session["Display1"] = "You must set filters";
                    }
                    else
                    {
                        this.HttpContext.Session["Display1"] = this.HttpContext.Session["Display2"] = "";
                    }
                    var fleets = from s in db.FeeCodes
                                 where s.LogNo.Equals(0)
                                 select s;
                    int pageSize   = 100;
                    int pageNumber = (page ?? 1);
                    return(View(fleets.ToPagedList(pageNumber, pageSize)));
                }
            }
            catch (Exception ex)
            {
                this.HttpContext.Session["Display1"] = "Error: " + ex.Message + " Try again with more filters";
                return(RedirectToAction("Index"));
            }
        }
コード例 #19
0
        /// <summary>
        /// Searchs result positions to be displayed.
        /// </summary>

        /*private void SearchPositions()
         * {
         *  var route = DAOFactory.RoutePositionDAO.GetPositions(Mobile, InitialDate.ToDataBaseDateTime(), FinalDate.ToDataBaseDateTime());
         *
         *  if (route.Count == 0)
         *  {
         *      ShowInfo("No se encontraron posiciones para los parametros de busqueda ingresados!");
         *
         *      return;
         *  }
         *
         *  var pos = "[";
         *
         *  for (var i = 0; i < route.Count; i++)
         *  {
         *      var dist = i == route.Count - 1 ? 0 : Distancias.Loxodromica(route[i].Latitude, route[i].Longitude, route[i + 1].Latitude, route[i + 1].Longitude);
         *
         *      var duration = i == route.Count - 1 ? 0 : route[i + 1].Date.Subtract(route[i].Date).TotalSeconds;
         *
         *      if (i > 0) pos = string.Concat(pos, ',');
         *
         *      pos = string.Concat(pos, string.Format("{{lon: {0}, lat: {1}, speed: {2}, distance: {3}, duration: {4}, time: new Date{5}}}",
         *          route[i].Longitude.ToString(CultureInfo.InvariantCulture), route[i].Latitude.ToString(CultureInfo.InvariantCulture), route[i].Speed,
         *          dist.ToString(CultureInfo.InvariantCulture), duration.ToString(CultureInfo.InvariantCulture), route[i].Date.ToString("(yyyy, MM, dd, HH, mm, ss)")));
         *  }
         *
         *  pos = string.Concat(pos, "]");
         *
         *  System.Web.UI.ScriptManager.RegisterStartupScript(this, typeof(string), "route", string.Format("simulador.createRoute({0});", pos), true);
         * }
         */
        private void SearchPositions()
        {
            var colorGenerator = new ColorGenerator(new List <Color> {
                Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Violet, Color.Cyan, Color.Purple
            });
            var empresa   = DAOFactory.EmpresaDAO.FindById(ddlDistrito.Selected);
            var maxMonths = empresa != null && empresa.Id > 0 ? empresa.MesesConsultaPosiciones : 3;

            var route = DAOFactory.RoutePositionsDAO.GetPositionsByRoute(Mobile, InitialDate.ToDataBaseDateTime(), FinalDate.ToDataBaseDateTime(), TimeSpan.Zero, maxMonths);

            if (route.Count == 0)
            {
                ShowInfo("No se encontraron posiciones para los parametros de busqueda ingresados!");

                return;
            }

            var pos = "[";

            for (var j = 0; j < route.Count; j++)
            {
                var tramo = route[j];
                var color = HexColorUtil.ColorToHex(colorGenerator.GetNextColor(j)).Substring(1);
                color = color.Substring(4, 2) + color.Substring(2, 2) + color.Substring(0, 2);
                for (var i = 0; i < tramo.Count; i++)
                {
                    var posicion = tramo[i];
                    var next     = i == tramo.Count - 1
                                   ? j == route.Count - 1 ? null : route[j + 1][0]
                                   : tramo[i + 1];
                    var dist = next == null ? 0 : Distancias.Loxodromica(posicion.Latitude, posicion.Longitude, next.Latitude, next.Longitude);

                    var duration = next == null ? 0 : next.Date.Subtract(posicion.Date).TotalSeconds;

                    if (j > 0 || i > 0)
                    {
                        pos = string.Concat(pos, ',');
                    }

                    pos = string.Concat(pos, string.Format("{{lon: {0}, lat: {1}, speed: {2}, distance: {3}, duration: {4}, time: new Date{5}, 'color': '{6}' }}",
                                                           posicion.Longitude.ToString(CultureInfo.InvariantCulture), posicion.Latitude.ToString(CultureInfo.InvariantCulture), posicion.Speed,
                                                           dist.ToString(CultureInfo.InvariantCulture), duration.ToString(CultureInfo.InvariantCulture), posicion.Date.ToDisplayDateTime().ToString("(yyyy, MM, dd, HH, mm, ss)"), color));
                }
            }
            pos = string.Concat(pos, "]");

            var startflag = CreateAbsolutePath("~/images/salida.png");
            var endflag   = CreateAbsolutePath("~/images/llegada.png");

            System.Web.UI.ScriptManager.RegisterStartupScript(this, typeof(string), "route", string.Format("simulador.createRoute({0},'{1}','{2}');", pos, startflag, endflag), true);
        }