public DayActualRepository(IJavaScriptRepository j, Enums.DayActualTime Time)
 {
     JavascriptRepository = j;
     _time            = Time;
     _feq             = new FeaPoolingDataAccess();
     _resCarFilterQ   = new ReservationsFilterCar();
     _resFilterQ      = new ReservationsSiteFilter();
     _reqCi           = new ResActualCIQueryable();
     _reqCo           = new PoolingCheckOutReservations();
     _feaFilterQ      = new FeaFilteredQueryable();
     getFeaData       = GetFeaData;
     getPoolingCIData = GetPoolingCIData;
     getPoolingCOData = GetPoolingCOData;
 }
 IList <DayActualEntity> GetFeaData(Enums.DayActualTime tme)
 {
     using (var db = new MarsDBDataContext())
     {
         IList <DayActualEntity> l = new List <DayActualEntity>();
         try
         {
             l = _feaFleetQ.GetQueryable(db, Filter, tme).OrderBy(p => p.Label).ToList();
         }
         catch (SqlException ex)
         {
             // ILog _logger = log4net.LogManager.GetLogger("Pooling");
             //  if (_logger != null) _logger.Error(" SQL Exception thrown in FleetComparisonRepository accessing FLEET_EUROPE_ACTUAL table, message : " + ex.Message);
         }
         return(l);
     }
 }
 IList <DayActualEntity> GetPoolingCOData(Enums.DayActualTime tme)
 {
     using (PoolingDataClassesDataContext db = new PoolingDataClassesDataContext())
     {
         IList <DayActualEntity> l = new List <DayActualEntity>();
         try
         {
             IQueryable <App.Classes.DAL.Pooling.PoolingDataContext.Reservation> q2And3 = _resCarFilterQ.FilterByCarParameters(db, Filter, false);
             q2And3 = _resFilterQ.FilterByRentalLocation(q2And3, Filter);
             l      = _resFleetCOQ.GetQueryable(q2And3, Filter, tme).ToList();
         }
         catch (SqlException ex)
         {
             // ILog _logger = log4net.LogManager.GetLogger("Pooling");
             // if (_logger != null) _logger.Error(" SQL Exception thrown in SiteComparisonRepository accessing Reservations table, message : " + ex.Message);
         }
         return(l);
     }
 }
        public IQueryable <DayActualEntity> GetQueryable(IQueryable <Reservation> q, IMainFilterEntity filter, Enums.DayActualTime time)
        {
            var now = DateTime.Now.GetDateAndHourOnlyByCountry(filter.Country);

            return(from p in q
                   where (time == Enums.DayActualTime.THREE ? (
                              SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour)) >= 0 &&
                              SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour)) <= 71)
                            : (SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour)) >= 0 &&
                               SqlMethods.DateDiffDay(now, p.RS_ARRIVAL_DATE.Value) <= 29))
                   group p by new
            {
                t1 = (String.IsNullOrEmpty(filter.Country) ? p.LOCATION1.COUNTRy1.country_description :
                      String.IsNullOrEmpty(filter.CarSegment) ? p.CAR_GROUP.CAR_CLASS.CAR_SEGMENT.car_segment1 :
                      String.IsNullOrEmpty(filter.CarClass) ? p.CAR_GROUP.CAR_CLASS.car_class1 :
                      p.CAR_GROUP.car_group1),
                t2 = (time == Enums.DayActualTime.THREE ?
                      SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour)
                                              .AddMinutes(p.RS_ARRIVAL_TIME.Value.Minute))
                           : SqlMethods.DateDiffDay(now, p.RS_ARRIVAL_DATE.Value))
            }
                   into g
                   select new DayActualEntity
            {
                Label = g.Key.t1,
                Tme = g.Key.t2,
                Reservations = g.Sum(p => p.RES_ID_NBR != null ? 1 : 0),
                OnewayRes = g.Sum(p => p.ONEWAY == "Y" ? 1 : 0),
                GoldServiceReservations = g.Sum(p => p.GS == "Y" ? 1 : 0),
                PrepaidReservations = g.Sum(p => p.PREPAID == "Y" ? 1 : 0),
                Predelivery = g.Sum(p => p.PREDELIVERY == "Y" ? 1 : 0)
            });
        }
Example #5
0
 public IQueryable <DayActualEntity> GetQueryable(MarsDBDataContext db, IMainFilterEntity filter, Enums.DayActualTime tm)
 {
     return(from p in db.FLEET_EUROPE_ACTUALs
            join loc in db.LOCATIONs on p.LSTWWD equals loc.location1
            join cg in db.CAR_GROUPs on new { vc = p.VC, c = p.COUNTRY } equals new { vc = cg.car_group1, c = cg.CAR_CLASS.CAR_SEGMENT.country }
            where ((p.FLEET_RAC_TTL ?? false) || (p.FLEET_CARSALES ?? false)) &&
            (loc.COUNTRy1.active) &&
            (loc.COUNTRy1.country_description == filter.Country || String.IsNullOrEmpty(filter.Country)) &&
            (loc.CMS_LOCATION_GROUP.CMS_POOL.cms_pool1 == filter.PoolRegion || loc.OPS_AREA.OPS_REGION.ops_region1 == filter.PoolRegion || String.IsNullOrEmpty(filter.PoolRegion)) &&
            (loc.CMS_LOCATION_GROUP.cms_location_group1 == filter.LocationGrpArea || loc.OPS_AREA.ops_area1 == filter.LocationGrpArea || String.IsNullOrEmpty(filter.LocationGrpArea)) &&
            (loc.location1 == filter.Branch || String.IsNullOrEmpty(filter.Branch)) &&
            (cg.CAR_CLASS.CAR_SEGMENT.car_segment1 == filter.CarSegment || String.IsNullOrEmpty(filter.CarSegment)) &&
            (cg.CAR_CLASS.car_class1 == filter.CarClass || String.IsNullOrEmpty(filter.CarClass)) &&
            (cg.car_group1 == filter.CarGroup || String.IsNullOrEmpty(filter.CarGroup))
            where (tm == Enums.DayActualTime.THREE ? (p.CI_HOURS >= 0 && p.CI_HOURS <= 71) : (p.CI_DAYS >= 0 && p.CI_DAYS <= 29))
            group p by new
     {
         t1 = (String.IsNullOrEmpty(filter.Country) ? loc.COUNTRy1.country_description :
               String.IsNullOrEmpty(filter.CarSegment) ? cg.CAR_CLASS.CAR_SEGMENT.car_segment1 :
               String.IsNullOrEmpty(filter.CarClass) ? cg.CAR_CLASS.car_class1 :
               cg.car_group1),
         t2 = (tm == Enums.DayActualTime.THREE ? p.CI_HOURS : p.CI_DAYS)
     }
            into g
            select new DayActualEntity
     {
         Tme = g.Key.t2 ?? 0,
         Label = g.Key.t1,
         Available = g.Sum(p => p.RT) + g.Sum(p => p.OVERDUE) ?? 0 + g.Sum(p => p.MOVETYPE.ToUpper() == "T-O" ? p.TOTAL_FLEET : 0) ?? 0,
         Opentrips = g.Sum(p => p.MOVETYPE.ToUpper() == "T-O" ? p.TOTAL_FLEET : 0) ?? 0,
         Checkin = g.Sum(p => p.ON_RENT) ?? 0,
         OnewayCheckin = g.Sum(p => p.LSTWWD != p.DUEWWD ? p.ON_RENT : 0) ?? 0,
         LocalCheckIn = g.Sum(p => p.LSTWWD == p.DUEWWD ? p.ON_RENT : 0) ?? 0
     });
 }
        public IQueryable <DayActualEntity> GetQueryableCO(IQueryable <Reservation> q, IMainFilterEntity filter, Enums.DayActualTime time)
        {
            var now = DateTime.Now.GetDateAndHourOnlyByCountry(filter.Country);

            return(from p in q
                   where (time == Enums.DayActualTime.THREE ? (
                              SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour)) >= 0 &&
                              SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour)) <= 71)
                                    : (SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour)) >= 0 &&
                                       SqlMethods.DateDiffDay(now, p.RS_ARRIVAL_DATE.Value) <= 29))
                   group p by new
            {
                t1 = (String.IsNullOrEmpty(filter.Country) ? p.LOCATION1.COUNTRy1.country_description :
                      String.IsNullOrEmpty(filter.PoolRegion) ? filter.CmsLogic ? p.LOCATION1.CMS_LOCATION_GROUP.CMS_POOL.cms_pool1 : p.LOCATION1.OPS_AREA.OPS_REGION.ops_region1 :
                      String.IsNullOrEmpty(filter.LocationGrpArea) ? filter.CmsLogic ? p.LOCATION1.CMS_LOCATION_GROUP.cms_location_group1 : p.LOCATION1.OPS_AREA.ops_area1 :
                      p.LOCATION1.served_by_locn),
                t2 = (time == Enums.DayActualTime.THREE
                        ? SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour)
                                                  .AddMinutes(p.RS_ARRIVAL_TIME.Value.Minute))
                                    : SqlMethods.DateDiffDay(now, p.RS_ARRIVAL_DATE.Value))
            }
                   into g
                   select new DayActualEntity
            {
                Label = g.Key.t1,
                Tme = g.Key.t2,
                Reservations = g.Sum(p => p.RES_ID_NBR != null ? 1 : 0),
                OnewayRes = g.Sum(p => p.ONEWAY == "Y" ? 1 : 0),
                GoldServiceReservations = g.Sum(p => p.GS == "Y" ? 1 : 0),
                PrepaidReservations = g.Sum(p => p.PREPAID == "Y" ? 1 : 0),
                Predelivery = g.Sum(p => p.PREDELIVERY == "Y" ? 1 : 0),
            });
        }
Example #7
0
        public List <DayActualEntity> GetQueryable(IQueryable <Reservation> q, IMainFilterEntity filter, Enums.DayActualTime time)
        {
            var now = DateTime.Now.GetDateAndHourOnlyByCountry(filter.Country);

            var actualData = from p in q
                             where (time == Enums.DayActualTime.THREE?
                                    (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour)) >= 0 &&
                                     SqlMethods.DateDiffHour(now, p.ArrivalDateTime) >= 0 &&
                                     SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour)) <= 71)
                                    : (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour)) >= 0 &&
                                       SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value) <= 29))
                             group p by(time == Enums.DayActualTime.THREE
                                        ?SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour))
                                        : SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value))
                             into g
                             select new DayActualEntity
            {
                Tme           = g.Key,
                Checkin       = g.Sum(p => p.RES_ID_NBR != null ? 1 : 0),
                OnewayCheckin = g.Sum(p => p.ONEWAY == "Y" ? 1 : 0),
                LocalCheckIn  = g.Sum(p => p.ONEWAY != "Y" ? 1 : 0)
            };

            var offsetData = from p in q
                             where (time == Enums.DayActualTime.THREE
                                ? (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour).AddHours(p.CI_HOURS_OFFSET.Value)) >= 0 &&
                                   SqlMethods.DateDiffHour(now, p.ArrivalDateTime) >= 0 &&
                                   SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour).AddHours(p.CI_HOURS_OFFSET.Value)) <= 71)
                                : (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour)) >= 0 &&
                                   SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value) <= 29))
                             group p by(time == Enums.DayActualTime.THREE
                                        ?SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour).AddHours(p.CI_HOURS_OFFSET.Value))
                                        : SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value))
                             into g
                             select new DayActualEntity
            {
                Tme    = g.Key,
                Offset = g.Sum(p => p.RES_ID_NBR != null ? 1 : 0),
            };



            var combinedData = from cd in actualData.ToList().Union(offsetData.ToList())
                               group cd by cd.Tme
                               into gd
                               select new DayActualEntity
            {
                Tme           = gd.Key,
                Checkin       = gd.Sum(d => d.Checkin),
                OnewayCheckin = gd.Sum(d => d.OnewayCheckin),
                LocalCheckIn  = gd.Sum(d => d.LocalCheckIn),
                Offset        = gd.Sum(d => d.Offset)
            };

            var returned = combinedData.ToList();

            return(returned);
        }
        public IQueryable <DayActualEntity> GetFeaDataWithLabels(IQueryable <FLEET_EUROPE_ACTUAL> availableData
                                                                 , IQueryable <FLEET_EUROPE_ACTUAL> checkInData
                                                                 , Enums.DayActualTime time, bool siteQ
                                                                 , IMainFilterEntity filter, MarsDBDataContext db)
        {
            IQueryable <DayActualEntity> availableEntities;
            IQueryable <DayActualEntity> checkInEntities;
            IQueryable <DayActualEntity> offsetEntities;
            IQueryable <DayActualEntity> openTripsEntities;

            var now = DateTime.Now.GetDateAndHourOnlyByCountry(filter.Country);

            if (siteQ)
            {
                availableEntities = from p in availableData
                                    join loc in db.LOCATIONs on p.LSTWWD equals loc.location1
                                    join cg in db.CAR_GROUPs on new { vc = p.VC, c = p.COUNTRY } equals
                new { vc = cg.car_group1, c = cg.CAR_CLASS.CAR_SEGMENT.country }
                where p.RT == 1
                group p by(String.IsNullOrEmpty(filter.Country)
                           ?loc.COUNTRy1.country_description
                           : String.IsNullOrEmpty(filter.PoolRegion)
                           ?filter.CmsLogic
                           ?loc.CMS_LOCATION_GROUP.CMS_POOL.cms_pool1
                           : loc.OPS_AREA.OPS_REGION.ops_region1
                           : String.IsNullOrEmpty(filter.LocationGrpArea)
                           ?filter.CmsLogic
                           ?loc.CMS_LOCATION_GROUP.cms_location_group1
                           : loc.OPS_AREA.ops_area1
                           : loc.served_by_locn)
                into g
                select new DayActualEntity
                {
                    Tme           = 0,
                    Label         = g.Key,
                    Available     = g.Sum(d => d.TOTAL_FLEET.HasValue ? d.TOTAL_FLEET.Value : 0),
                    Checkin       = 0,
                    OnewayCheckin = 0,
                    LocalCheckIn  = 0,
                    Opentrips     = 0,
                    Offset        = 0
                };



                openTripsEntities = from p in availableData
                                    join loc in db.LOCATIONs on p.LSTWWD equals loc.location1
                                    join cg in db.CAR_GROUPs on new { vc = p.VC, c = p.COUNTRY } equals
                new { vc = cg.car_group1, c = cg.CAR_CLASS.CAR_SEGMENT.country }
                where
                (time == Enums.DayActualTime.THREE ?
                 (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                  SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) <= 71)
                                    : (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                                       SqlMethods.DateDiffDay(now, p.DUEDATE.Value) <= 29)) &&
                p.RT == 1
                group p by new
                {
                    t1 = (String.IsNullOrEmpty(filter.Country)
                                            ? loc.COUNTRy1.country_description
                                            : String.IsNullOrEmpty(filter.PoolRegion)
                                                ? filter.CmsLogic
                                                    ? loc.CMS_LOCATION_GROUP.CMS_POOL.cms_pool1
                                                    : loc.OPS_AREA.OPS_REGION.ops_region1
                                                : String.IsNullOrEmpty(filter.LocationGrpArea)
                                                    ? filter.CmsLogic
                                                        ? loc.CMS_LOCATION_GROUP.cms_location_group1
                                                        : loc.OPS_AREA.ops_area1
                                                    : loc.served_by_locn),
                    t2 = (time == Enums.DayActualTime.THREE
                                                ? SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour))
                                                : SqlMethods.DateDiffDay(now, p.DUEDATE.Value))
                }
                into g
                    select new DayActualEntity
                {
                    Tme           = g.Key.t2,
                    Label         = g.Key.t1,
                    Available     = 0,
                    Checkin       = 0,
                    OnewayCheckin = 0,
                    LocalCheckIn  = 0,
                    Opentrips     = g.Sum(p => (p.MOVETYPE.ToUpper() == "T-O" ||
                                                p.MOVETYPE.ToUpper() == "L-O") &&
                                          p.TOTAL_FLEET.HasValue ? p.TOTAL_FLEET.Value : 0),
                    Offset = 0
                };


                checkInEntities = from p in checkInData
                                  join loc in db.LOCATIONs on p.DUEWWD equals loc.location1
                                  join cg in db.CAR_GROUPs on new { vc = p.VC, c = p.COUNTRY } equals
                new { vc = cg.car_group1, c = cg.CAR_CLASS.CAR_SEGMENT.country }
                where
                (time == Enums.DayActualTime.THREE ?
                 (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                  SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) <= 71)
                                    : (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                                       SqlMethods.DateDiffDay(now, p.DUEDATE.Value) <= 29))
                group p by new
                {
                    t1 = (String.IsNullOrEmpty(filter.Country)
                                                     ? loc.COUNTRy1.country_description
                                                     : String.IsNullOrEmpty(filter.PoolRegion)
                                                         ? filter.CmsLogic
                                                             ? loc.CMS_LOCATION_GROUP.CMS_POOL.cms_pool1
                                                             : loc.OPS_AREA.OPS_REGION.ops_region1
                                                         : String.IsNullOrEmpty(filter.LocationGrpArea)
                                                             ? filter.CmsLogic
                                                                 ? loc.CMS_LOCATION_GROUP.cms_location_group1
                                                                 : loc.OPS_AREA.ops_area1
                                                             : loc.served_by_locn),
                    t2 = (time == Enums.DayActualTime.THREE
                                                        ? SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour))
                                                        : SqlMethods.DateDiffDay(now, p.DUEDATE.Value))
                }
                into g
                    select new DayActualEntity
                {
                    Tme           = g.Key.t2,
                    Label         = g.Key.t1,
                    Available     = 0,
                    Checkin       = g.Sum(p => p.ON_RENT) ?? 0,
                    OnewayCheckin = g.Sum(p => p.LSTWWD != p.DUEWWD ? p.ON_RENT : 0) ?? 0,
                    LocalCheckIn  = g.Sum(p => p.LSTWWD == p.DUEWWD ? p.ON_RENT : 0) ?? 0,
                    Opentrips     = 0,
                    Offset        = 0
                };


                offsetEntities = from p in checkInData
                                 join loc in db.LOCATIONs on p.DUEWWD equals loc.served_by_locn
                                 join cg in db.CAR_GROUPs on new { vc = p.VC, c = p.COUNTRY } equals
                new { vc = cg.car_group1, c = cg.CAR_CLASS.CAR_SEGMENT.country }
                where
                (time == Enums.DayActualTime.THREE ?
                 (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                  SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) <= 71)
                                        : (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                                           SqlMethods.DateDiffDay(now, p.DUEDATE.Value) <= 29)) &&
                loc.location1 == loc.served_by_locn
                group p by new
                {
                    t1 = (String.IsNullOrEmpty(filter.Country)
                                                    ? loc.COUNTRy1.country_description
                                                    : String.IsNullOrEmpty(filter.PoolRegion)
                                                        ? filter.CmsLogic
                                                            ? loc.CMS_LOCATION_GROUP.CMS_POOL.cms_pool1
                                                            : loc.OPS_AREA.OPS_REGION.ops_region1
                                                        : String.IsNullOrEmpty(filter.LocationGrpArea)
                                                            ? filter.CmsLogic
                                                                ? loc.CMS_LOCATION_GROUP.cms_location_group1
                                                                : loc.OPS_AREA.ops_area1
                                                            : loc.served_by_locn),
                    t2 = (time == Enums.DayActualTime.THREE
                                                    ? SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)
                                                                              .AddHours(loc.turnaround_hours.HasValue ? loc.turnaround_hours.Value : 0))
                                                    : SqlMethods.DateDiffDay(now, p.DUEDATE.Value.AddHours(loc.turnaround_hours.HasValue ? loc.turnaround_hours.Value : 0))
                          )
                }
                into g
                    select new DayActualEntity
                {
                    Tme           = g.Key.t2,
                    Label         = g.Key.t1,
                    Available     = 0,
                    Checkin       = 0,
                    OnewayCheckin = 0,
                    LocalCheckIn  = 0,
                    Opentrips     = 0,
                    Offset        = g.Sum(p => p.TOTAL_FLEET) ?? 0
                };
            }
            else
            { // Fleet Comparison Query
                availableEntities = from p in availableData
                                    join loc in db.LOCATIONs on p.LSTWWD equals loc.location1
                                    join cg in db.CAR_GROUPs on new { vc = p.VC, c = p.COUNTRY } equals new { vc = cg.car_group1, c = cg.CAR_CLASS.CAR_SEGMENT.country }
                where p.RT == 1
                group p by(String.IsNullOrEmpty(filter.Country)?loc.COUNTRy1.country_description :
                           String.IsNullOrEmpty(filter.CarSegment)?cg.CAR_CLASS.CAR_SEGMENT.car_segment1 :
                           String.IsNullOrEmpty(filter.CarClass)?cg.CAR_CLASS.car_class1 :
                           cg.car_group1)
                into g
                select new DayActualEntity
                {
                    Tme           = 0,
                    Label         = g.Key,
                    Available     = g.Sum(d => d.TOTAL_FLEET.HasValue ? d.TOTAL_FLEET.Value : 0),
                    Checkin       = 0,
                    OnewayCheckin = 0,
                    LocalCheckIn  = 0,
                    Opentrips     = 0,
                    Offset        = 0
                };

                openTripsEntities = from p in availableData
                                    join loc in db.LOCATIONs on p.LSTWWD equals loc.location1
                                    join cg in db.CAR_GROUPs on new { vc = p.VC, c = p.COUNTRY } equals
                new { vc = cg.car_group1, c = cg.CAR_CLASS.CAR_SEGMENT.country }
                where
                (time == Enums.DayActualTime.THREE ?
                 (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                  SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) <= 71)
                                            : (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                                               SqlMethods.DateDiffDay(now, p.DUEDATE.Value) <= 29)) &&
                p.RT == 1
                group p by new
                {
                    t1 = (String.IsNullOrEmpty(filter.Country) ? loc.COUNTRy1.country_description :
                          String.IsNullOrEmpty(filter.CarSegment) ? cg.CAR_CLASS.CAR_SEGMENT.car_segment1 :
                          String.IsNullOrEmpty(filter.CarClass) ? cg.CAR_CLASS.car_class1 :
                          cg.car_group1),
                    t2 = (time == Enums.DayActualTime.THREE
                                                ? SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour))
                                                : SqlMethods.DateDiffDay(now, p.DUEDATE.Value))
                }
                into g
                    select new DayActualEntity
                {
                    Tme           = g.Key.t2,
                    Label         = g.Key.t1,
                    Available     = 0,
                    Checkin       = 0,
                    OnewayCheckin = 0,
                    LocalCheckIn  = 0,
                    Opentrips     = g.Sum(p => (p.MOVETYPE.ToUpper() == "T-O" ||
                                                p.MOVETYPE.ToUpper() == "L-O") &&
                                          p.TOTAL_FLEET.HasValue ? p.TOTAL_FLEET.Value : 0),
                    Offset = 0
                };

                checkInEntities = from p in checkInData
                                  join loc in db.LOCATIONs on p.DUEWWD equals loc.location1
                                  join cg in db.CAR_GROUPs on new { vc = p.VC, c = p.COUNTRY } equals new { vc = cg.car_group1, c = cg.CAR_CLASS.CAR_SEGMENT.country }
                where
                (time == Enums.DayActualTime.THREE ?
                 (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                  SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) <= 71)
                                    : (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                                       SqlMethods.DateDiffDay(now, p.DUEDATE.Value) <= 29))
                group p by new
                {
                    t1 = (String.IsNullOrEmpty(filter.Country) ? loc.COUNTRy1.country_description :
                          String.IsNullOrEmpty(filter.CarSegment) ? cg.CAR_CLASS.CAR_SEGMENT.car_segment1 :
                          String.IsNullOrEmpty(filter.CarClass) ? cg.CAR_CLASS.car_class1 :
                          cg.car_group1),
                    t2 = (time == Enums.DayActualTime.THREE
                                                        ? SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour))
                                                        : SqlMethods.DateDiffDay(now, p.DUEDATE.Value))
                }
                into g
                    select new DayActualEntity
                {
                    Tme           = g.Key.t2,
                    Label         = g.Key.t1,
                    Available     = 0,
                    Checkin       = g.Sum(p => p.ON_RENT) ?? 0,
                    OnewayCheckin = g.Sum(p => p.LSTWWD != p.DUEWWD ? p.ON_RENT : 0) ?? 0,
                    LocalCheckIn  = g.Sum(p => p.LSTWWD == p.DUEWWD ? p.ON_RENT : 0) ?? 0,
                    Opentrips     = 0,
                    Offset        = 0
                };
                offsetEntities = from p in checkInData
                                 //join c in db.COUNTRies on p.COUNTRY equals c.country1
                                 join loc in db.LOCATIONs on p.DUEWWD equals loc.served_by_locn
                                 join cg in db.CAR_GROUPs on new { vc = p.VC, c = p.COUNTRY }
                equals new { vc = cg.car_group1, c = cg.CAR_CLASS.CAR_SEGMENT.country }

                where
                (time == Enums.DayActualTime.THREE ?
                 (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                  SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) <= 71)
                                        : (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                                           SqlMethods.DateDiffDay(now, p.DUEDATE.Value) <= 29)) &&
                loc.location1 == loc.served_by_locn
                group p by new
                {
                    t1 = (String.IsNullOrEmpty(filter.Country) ? loc.COUNTRy1.country_description :
                          String.IsNullOrEmpty(filter.CarSegment) ? cg.CAR_CLASS.CAR_SEGMENT.car_segment1 :
                          String.IsNullOrEmpty(filter.CarClass) ? cg.CAR_CLASS.car_class1 :
                          cg.car_group1),
                    t2 = (time == Enums.DayActualTime.THREE
                                                    ? SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)
                                                                              .AddHours(loc.turnaround_hours.HasValue ? loc.turnaround_hours.Value : 0))
                                                    : SqlMethods.DateDiffDay(now, p.DUEDATE.Value.AddHours(loc.turnaround_hours.HasValue ? loc.turnaround_hours.Value : 0))
                          )
                }
                into g
                    select new DayActualEntity
                {
                    Tme           = g.Key.t2,
                    Label         = g.Key.t1,
                    Available     = 0,
                    Checkin       = 0,
                    OnewayCheckin = 0,
                    LocalCheckIn  = 0,
                    Opentrips     = 0,
                    Offset        = g.Sum(p => p.TOTAL_FLEET) ?? 0
                };
            }



            var combinedData = from cd in availableEntities.Union(checkInEntities).Union(openTripsEntities).Union(offsetEntities)
                               group cd by new { cd.Tme, cd.Label }
            into gd
                select new DayActualEntity
            {
                Tme           = gd.Key.Tme,
                Label         = gd.Key.Label,
                Available     = gd.Sum(d => d.Available),
                Opentrips     = gd.Sum(d => d.Opentrips),
                Checkin       = gd.Sum(d => d.Checkin),
                OnewayCheckin = gd.Sum(d => d.OnewayCheckin),
                LocalCheckIn  = gd.Sum(d => d.LocalCheckIn),
                Offset        = gd.Sum(d => d.Offset)
            };


            return(combinedData);
        }
        public IQueryable <DayActualEntity> GetFeaDataWithoutLabels(IQueryable <FLEET_EUROPE_ACTUAL> availableData
                                                                    , IQueryable <FLEET_EUROPE_ACTUAL> checkInData
                                                                    , Enums.DayActualTime time
                                                                    , IMainFilterEntity mfe
                                                                    , MarsDBDataContext db)
        {
            var availableEntity = from p in availableData
                                  where p.RT == 1
                                  group p by 0
                                  into g
                                  select new DayActualEntity
            {
                Tme           = 0,
                Available     = g.Sum(d => d.TOTAL_FLEET.HasValue ? d.TOTAL_FLEET.Value : 0),
                Checkin       = 0,
                OnewayCheckin = 0,
                LocalCheckIn  = 0,
                Opentrips     = 0,
                Offset        = 0
            };



            var now = DateTime.Now.GetDateAndHourOnlyByCountry(mfe.Country);


            var openTripsEntity = from p in availableData
                                  where (time == Enums.DayActualTime.THREE ?
                                         (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                                          SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) <= 71)
                                    : (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                                       SqlMethods.DateDiffDay(now, p.DUEDATE.Value) <= 29)) &&
                                  p.RT == 1
                                  group p by(time == Enums.DayActualTime.THREE
                                             ?SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour))
                                             : SqlMethods.DateDiffDay(now, p.DUEDATE.Value)
                                             )
                                  into g
                                  select new DayActualEntity
            {
                Tme           = g.Key,
                Available     = 0,
                Checkin       = 0,
                OnewayCheckin = 0,
                LocalCheckIn  = 0,
                Opentrips     = g.Sum(d => (d.MOVETYPE.ToUpper() == "T-O" ||
                                            d.MOVETYPE.ToUpper() == "L-O"
                                            ) &&
                                      d.TOTAL_FLEET.HasValue ? d.TOTAL_FLEET.Value : 0),
                Offset = 0
            };

            var checkInEntities = from p in checkInData
                                  join loc in db.LOCATIONs on p.DUEWWD equals loc.location1
                                  join cg in db.CAR_GROUPs on new { vc = p.VC, c = p.COUNTRY } equals
            new { vc = cg.car_group1, c = cg.CAR_CLASS.CAR_SEGMENT.country }
            where (time == Enums.DayActualTime.THREE?
                   (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                    SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) <= 71)
                   : (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                      SqlMethods.DateDiffDay(now, p.DUEDATE.Value) <= 29))
            group p by(time == Enums.DayActualTime.THREE
                       ?SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour))
                       : SqlMethods.DateDiffDay(now, p.DUEDATE.Value)
                       )
            into g
            select new DayActualEntity
            {
                Tme           = g.Key,
                Available     = 0,
                Checkin       = g.Sum(p => p.TOTAL_FLEET) ?? 0,
                OnewayCheckin = g.Sum(p => p.LSTWWD != p.DUEWWD ? p.TOTAL_FLEET : 0) ?? 0,
                LocalCheckIn  = g.Sum(p => p.LSTWWD == p.DUEWWD ? p.TOTAL_FLEET : 0) ?? 0,
                Opentrips     = 0,
                Offset        = 0
            };



            //var yy = checkInEntities.ToList();


            var offsetEntities = from p in checkInData
                                 join loc in db.LOCATIONs on p.DUEWWD equals loc.served_by_locn
                                 where (time == Enums.DayActualTime.THREE ?
                                        (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                                         SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) <= 71)
                                    : (SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)) >= 0 &&
                                       SqlMethods.DateDiffDay(now, p.DUEDATE.Value) <= 29)) &&
                                 loc.location1 == loc.served_by_locn
                                 group p by(time == Enums.DayActualTime.THREE
                                            ?SqlMethods.DateDiffHour(now, p.DUEDATE.Value.AddHours(p.DUETIME.Value.Hour)
                                                                     .AddHours(loc.turnaround_hours.HasValue ? loc.turnaround_hours.Value : 0))
                                            : SqlMethods.DateDiffDay(now, p.DUEDATE.Value.AddHours(loc.turnaround_hours.HasValue ? loc.turnaround_hours.Value : 0))
                                            )
                                 into g
                                 select new DayActualEntity
            {
                Tme           = g.Key,
                Available     = 0,
                Checkin       = 0,
                OnewayCheckin = 0,
                LocalCheckIn  = 0,
                Opentrips     = 0,
                Offset        = g.Sum(p => p.TOTAL_FLEET) ?? 0
            };
            // var xx = offsetEntities.ToList();


            var combinedData = from cd in availableEntity.Union(openTripsEntity).Union(checkInEntities).Union(offsetEntities)
                               group cd by cd.Tme
                               into gd
                               select new DayActualEntity
            {
                Tme           = gd.Key,
                Available     = gd.Sum(d => d.Available),
                Opentrips     = gd.Sum(d => d.Opentrips),
                Checkin       = gd.Sum(d => d.Checkin),
                OnewayCheckin = gd.Sum(d => d.OnewayCheckin),
                LocalCheckIn  = gd.Sum(d => d.LocalCheckIn),
                Offset        = gd.Sum(d => d.Offset)
            };

            return(combinedData);
        }
Example #10
0
        private void SetStartAndEndDate(DateTime lastRequestDate, int timeSlotSelected, Enums.DayActualTime dayActualTime)
        {
            lastRequestDate = dayActualTime == Enums.DayActualTime.THIRTY
                ? lastRequestDate.AddDays(timeSlotSelected)
                : lastRequestDate.AddHours(timeSlotSelected);

            DateRangeModel.StartDateModel.Text = lastRequestDate.ToShortDateString();
            DateRangeModel.EndDateModel.Text   = lastRequestDate.ToShortDateString();
        }
        public List <DayActualEntity> GetFleetReservationsWithLabels(IQueryable <Reservation> q, IMainFilterEntity filter,
                                                                     Enums.DayActualTime time, PoolingDataClassesDataContext db)
        {
            var now = DateTime.Now.GetDateAndHourOnlyByCountry(filter.Country);

            var actualData = from p in q
                             //join c in db.COUNTRies on p.COUNTRY equals c.country1
                             where (time == Enums.DayActualTime.THREE ? (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour)) >= 0 &&
                                                                         SqlMethods.DateDiffHour(now, p.ArrivalDateTime) >= 0 &&
                                                                         SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour)) <= 71)
                                                                  : (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour)) >= 0 && SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value) <= 29))
                             //&& (String.IsNullOrEmpty(filter.Country)
                             //       || c.country_description == filter.Country)
                             group p by new
            {
                t1 = (String.IsNullOrEmpty(filter.Country) ? p.ReturnLocation.COUNTRy1.country_description :
                      String.IsNullOrEmpty(filter.CarSegment) ? p.CAR_GROUP.CAR_CLASS.CAR_SEGMENT.car_segment1 :
                      String.IsNullOrEmpty(filter.CarClass) ? p.CAR_GROUP.CAR_CLASS.car_class1 :
                      p.CAR_GROUP.car_group1),
                t2 = (time == Enums.DayActualTime.THREE ?
                      SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour))
                                  : SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value))
            }
            into g
                select new DayActualEntity
            {
                Label         = g.Key.t1,
                Tme           = g.Key.t2,
                Checkin       = g.Sum(p => p.RES_ID_NBR != null ? 1 : 0),
                OnewayCheckin = g.Sum(p => p.ONEWAY == "Y" ? 1 : 0),
                LocalCheckIn  = g.Sum(p => p.ONEWAY != "Y" ? 1 : 0)
            };

            var offsetData = from p in q
                             //join c in db.COUNTRies on p.COUNTRY equals c.country1
                             where (time == Enums.DayActualTime.THREE
                                ? (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour).AddHours(p.CI_HOURS_OFFSET.Value)) >= 0 &&
                                   SqlMethods.DateDiffHour(now, p.ArrivalDateTime) >= 0 &&
                                   SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour).AddHours(p.CI_HOURS_OFFSET.Value)) <= 71)
                                : (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour).AddHours(p.CI_HOURS_OFFSET.Value)) >= 0 &&
                                   SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value) <= 29))
                             //&& (String.IsNullOrEmpty(filter.Country)
                             //            || c.country_description == filter.Country)
                             group p by new
            {
                t1 = (String.IsNullOrEmpty(filter.Country) ? p.ReturnLocation.COUNTRy1.country_description :
                      String.IsNullOrEmpty(filter.CarSegment) ? p.CAR_GROUP.CAR_CLASS.CAR_SEGMENT.car_segment1 :
                      String.IsNullOrEmpty(filter.CarClass) ? p.CAR_GROUP.CAR_CLASS.car_class1 :
                      p.CAR_GROUP.car_group1),
                t2 = (time == Enums.DayActualTime.THREE ?
                      SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour).AddHours(p.CI_HOURS_OFFSET.Value))
                                  : SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value))
            }
            into g
                select new DayActualEntity
            {
                Tme    = g.Key.t2,
                Label  = g.Key.t1,
                Offset = g.Sum(p => p.RES_ID_NBR != null ? 1 : 0),
            };



            var combinedData = from cd in actualData.ToList().Union(offsetData.ToList())
                               group cd by new { cd.Tme, cd.Label }
            into gd
                select new DayActualEntity
            {
                Tme           = gd.Key.Tme,
                Label         = gd.Key.Label,
                Checkin       = gd.Sum(d => d.Checkin),
                OnewayCheckin = gd.Sum(d => d.OnewayCheckin),
                LocalCheckIn  = gd.Sum(d => d.LocalCheckIn),
                Offset        = gd.Sum(d => d.Offset)
            };

            var returned = combinedData.ToList();

            return(returned);
        }
        public IList <String[]> GetList(Enums.DayActualTime tme)
        {
            var hourlyColumns   = tme == Enums.DayActualTime.THREE;
            var returned        = new List <String[]>();
            var numberOfColumns = tme == Enums.DayActualTime.THIRTY ? 30 : (Int32)Enums.ThreeDayActuals.MAXNOOFCOLUMNS;
            var topicData       = ReservationsDataAccess.CalculateTopics(hourlyColumns, numberOfColumns, Filter, true, false);
            int topicId         = (from topic in _resTopics where topic.Name.Equals(Filter.Topic) select topic.Id).Single();

            foreach (string lbl in topicData.Select(p => p.Label).Distinct())
            {
                var s = new String[NoInArray];
                s[0] = lbl;

                for (int i = 0; i < NoInArray - 1; i++)
                {
                    var data = topicData.FirstOrDefault(d => d.Tme == i && d.Label == lbl);
                    int val  = 0;
                    if (data != null)
                    {
                        switch (topicId)
                        {
                        case 1: val = data.Available; break;

                        case 2: val = data.Opentrips; break;

                        case 3: val = data.Reservations; break;

                        case 4: val = data.OnewayRes; break;

                        case 5: val = data.GoldServiceReservations; break;

                        case 6: val = data.PrepaidReservations; break;

                        //case 7: val = e3 == null ? 0 : e3.Predelivery; break;
                        case 8: val = data.Checkin; break;

                        case 9: val = data.OnewayCheckin; break;

                        case 10: val = data.LocalCheckIn; break;

                        case 11: val = data.Balance; break;

                        case 12: val = data.JustAdditions; break;

                        case 13: val = data.JustDeletions; break;
                        }
                    }

                    s[i + 1] = val.ToString(CultureInfo.InvariantCulture);
                }
                returned.Add(s);
            }

            var totals = new string[NoInArray];

            for (int i = 1; i < NoInArray; i++)
            {
                totals[i] = returned.Sum(p => Convert.ToDecimal(p.ElementAt(i))).ToString();
            }
            totals[0] = "Totals";
            returned.Add(totals);

            return(returned);
        }
        public List <DayActualEntity> GetAdditionDeletionData(Enums.DayActualTime tme)
        {
            List <DayActualEntity> returned;

            using (var db = new MarsDBDataContext())
            {
                var additions = from ad in db.ResAdditions
                                where (ad.LOCATION.COUNTRy1.active) &&
                                (ad.LOCATION.COUNTRy1.country_description == Filter.Country || String.IsNullOrEmpty(Filter.Country)) &&
                                (ad.LOCATION.CMS_LOCATION_GROUP.CMS_POOL.cms_pool1 == Filter.PoolRegion ||
                                 ad.LOCATION.OPS_AREA.OPS_REGION.ops_region1 == Filter.PoolRegion || String.IsNullOrEmpty(Filter.PoolRegion)) &&
                                (ad.LOCATION.CMS_LOCATION_GROUP.cms_location_group1 == Filter.LocationGrpArea ||
                                 ad.LOCATION.OPS_AREA.ops_area1 == Filter.LocationGrpArea || String.IsNullOrEmpty(Filter.LocationGrpArea)) &&
                                (ad.LOCATION.location1 == Filter.Branch || String.IsNullOrEmpty(Filter.Branch)) &&
                                (ad.CAR_GROUP.CAR_CLASS.CAR_SEGMENT.car_segment1 == Filter.CarSegment || String.IsNullOrEmpty(Filter.CarSegment)) &&
                                (ad.CAR_GROUP.CAR_CLASS.car_class1 == Filter.CarClass || String.IsNullOrEmpty(Filter.CarClass)) &&
                                (ad.CAR_GROUP.car_group1 == Filter.CarGroup || String.IsNullOrEmpty(Filter.CarGroup)) &&
                                ad.RepDate > DateTime.Now
                                group ad by new
                {
                    k1 = (String.IsNullOrEmpty(Filter.Country) ? ad.LOCATION.COUNTRy1.country_description :
                          String.IsNullOrEmpty(Filter.CarSegment) ? ad.CAR_GROUP.CAR_CLASS.CAR_SEGMENT.car_segment1 :
                          String.IsNullOrEmpty(Filter.CarClass) ? ad.CAR_GROUP.CAR_CLASS.car_class1 :
                          ad.CAR_GROUP.car_group1),
                    k2 = (tme == Enums.DayActualTime.THREE ? SqlMethods.DateDiffHour(DateTime.Now, ad.RepDate)
                                                : SqlMethods.DateDiffDay(DateTime.Now, ad.RepDate))
                }
                into g
                    select new DayActualEntity
                {
                    Tme               = g.Key.k2,
                    Label             = g.Key.k1,
                    AddditionDeletion = g.Sum(d => d.Value),
                    JustAdditions     = g.Sum(d => d.Value),
                    JustDeletions     = 0
                };

                var deletions = from del in db.ResDeletions
                                where (del.LOCATION.COUNTRy1.active) &&
                                (del.LOCATION.COUNTRy1.country_description == Filter.Country || String.IsNullOrEmpty(Filter.Country)) &&
                                (del.LOCATION.CMS_LOCATION_GROUP.CMS_POOL.cms_pool1 == Filter.PoolRegion ||
                                 del.LOCATION.OPS_AREA.OPS_REGION.ops_region1 == Filter.PoolRegion || String.IsNullOrEmpty(Filter.PoolRegion)) &&
                                (del.LOCATION.CMS_LOCATION_GROUP.cms_location_group1 == Filter.LocationGrpArea ||
                                 del.LOCATION.OPS_AREA.ops_area1 == Filter.LocationGrpArea || String.IsNullOrEmpty(Filter.LocationGrpArea)) &&
                                (del.LOCATION.location1 == Filter.Branch || String.IsNullOrEmpty(Filter.Branch)) &&
                                (del.CAR_GROUP.CAR_CLASS.CAR_SEGMENT.car_segment1 == Filter.CarSegment || String.IsNullOrEmpty(Filter.CarSegment)) &&
                                (del.CAR_GROUP.CAR_CLASS.car_class1 == Filter.CarClass || String.IsNullOrEmpty(Filter.CarClass)) &&
                                (del.CAR_GROUP.car_group1 == Filter.CarGroup || String.IsNullOrEmpty(Filter.CarGroup)) &&
                                del.RepDate > DateTime.Now
                                group del by new
                {
                    k1 = (String.IsNullOrEmpty(Filter.Country) ? del.LOCATION.COUNTRy1.country_description :
                          String.IsNullOrEmpty(Filter.CarSegment) ? del.CAR_GROUP.CAR_CLASS.CAR_SEGMENT.car_segment1 :
                          String.IsNullOrEmpty(Filter.CarClass) ? del.CAR_GROUP.CAR_CLASS.car_class1 :
                          del.CAR_GROUP.car_group1),
                    k2 = (tme == Enums.DayActualTime.THREE ? SqlMethods.DateDiffHour(DateTime.Now, del.RepDate)
                                                : SqlMethods.DateDiffDay(DateTime.Now, del.RepDate))
                }
                into g
                    select new DayActualEntity
                {
                    Tme               = g.Key.k2,
                    Label             = g.Key.k1,
                    AddditionDeletion = g.Sum(d => d.Value * -1),
                    JustAdditions     = 0,
                    JustDeletions     = g.Sum(d => d.Value * -1)
                };
                var additionsAndDeletions = additions.Union(deletions).ToList();

                returned = (from ad in additionsAndDeletions
                            group ad by new
                {
                    k1 = ad.Tme,
                    k2 = ad.Label
                }
                            into g
                            select new DayActualEntity
                {
                    Tme = g.Key.k1,
                    Label = g.Key.k2,
                    AddditionDeletion = g.Sum(d => d.AddditionDeletion),
                    JustAdditions = g.Sum(d => d.JustAdditions),
                    JustDeletions = g.Sum(d => d.JustDeletions)
                }).ToList();
            }

            return(returned);
        }
Example #14
0
        public List <DayActualEntity> GetQueryableCI(IQueryable <Reservation> q, IMainFilterEntity filter
                                                     , Enums.DayActualTime time, PoolingDataClassesDataContext db)
        {
            var now = DateTime.Now.GetDateAndHourOnlyByCountry(filter.Country);

            var actualData = from p in q
                             //join c in db.COUNTRies on p.COUNTRY equals c.country1
                             where (time == Enums.DayActualTime.THREE ? (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour)) >= 0 &&
                                                                         SqlMethods.DateDiffHour(now, p.ArrivalDateTime) >= 0 &&
                                                                         SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour)) <= 71)
                                                    : (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour)) >= 0 &&
                                                       SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value) <= 29))
                             //&& (String.IsNullOrEmpty(filter.Country)
                             //               || c.country_description == filter.Country)
                             group p by new
            {
                t1 = (String.IsNullOrEmpty(filter.Country) ? p.ReturnLocation.COUNTRy1.country_description :
                      String.IsNullOrEmpty(filter.PoolRegion) ? filter.CmsLogic ? p.ReturnLocation.CMS_LOCATION_GROUP.CMS_POOL.cms_pool1 : p.LOCATION.OPS_AREA.OPS_REGION.ops_region1 :
                      String.IsNullOrEmpty(filter.LocationGrpArea) ? filter.CmsLogic ? p.ReturnLocation.CMS_LOCATION_GROUP.cms_location_group1 : p.LOCATION.OPS_AREA.ops_area1 :
                      p.LOCATION.served_by_locn),
                t2 = (time == Enums.DayActualTime.THREE
                        ? SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour))
                        : SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value))
            }
            into g
                select new DayActualEntity
            {
                Label         = g.Key.t1,
                Tme           = g.Key.t2,
                Checkin       = g.Sum(p => p.RES_ID_NBR != null ? 1 : 0),
                OnewayCheckin = g.Sum(p => p.ONEWAY == "Y" ? 1 : 0),
                LocalCheckIn  = g.Sum(p => p.ONEWAY != "Y" ? 1 : 0)
            };

            var offsetData = from p in q
                             //join c in db.COUNTRies on p.COUNTRY equals c.country1
                             where (time == Enums.DayActualTime.THREE
                                ? (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour).AddHours(p.CI_HOURS_OFFSET.Value)) >= 0 &&
                                   SqlMethods.DateDiffHour(now, p.ArrivalDateTime) >= 0 &&
                                   SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour).AddHours(p.CI_HOURS_OFFSET.Value)) <= 71)
                                : (SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour)) >= 0 &&
                                   SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value) <= 29))
                             //&& (String.IsNullOrEmpty(filter.Country)
                             //           || c.country_description == filter.Country)
                             group p by new
            {
                t1 = (String.IsNullOrEmpty(filter.Country) ? p.ReturnLocation.COUNTRy1.country_description :
                      String.IsNullOrEmpty(filter.PoolRegion) ? filter.CmsLogic ? p.ReturnLocation.CMS_LOCATION_GROUP.CMS_POOL.cms_pool1 : p.LOCATION.OPS_AREA.OPS_REGION.ops_region1 :
                      String.IsNullOrEmpty(filter.LocationGrpArea) ? filter.CmsLogic ? p.ReturnLocation.CMS_LOCATION_GROUP.cms_location_group1 : p.LOCATION.OPS_AREA.ops_area1 :
                      p.LOCATION.served_by_locn),
                t2 = (time == Enums.DayActualTime.THREE
                                  ? SqlMethods.DateDiffHour(now, p.RTRN_DATE.Value.AddHours(p.RTRN_TIME.Value.Hour).AddHours(p.CI_HOURS_OFFSET.Value))
                                  : SqlMethods.DateDiffDay(now, p.RTRN_DATE.Value))
            }
            into g
                select new DayActualEntity
            {
                Tme    = g.Key.t2,
                Label  = g.Key.t1,
                Offset = g.Sum(p => p.RES_ID_NBR != null ? 1 : 0),
            };



            var combinedData = from cd in actualData.ToList().Union(offsetData.ToList())
                               group cd by new { cd.Tme, cd.Label }
            into gd
                select new DayActualEntity
            {
                Tme           = gd.Key.Tme,
                Label         = gd.Key.Label,
                Checkin       = gd.Sum(d => d.Checkin),
                OnewayCheckin = gd.Sum(d => d.OnewayCheckin),
                LocalCheckIn  = gd.Sum(d => d.LocalCheckIn),
                Offset        = gd.Sum(d => d.Offset)
            };

            var returned = combinedData.ToList();

            return(returned);
        }
        public IQueryable <DayActualEntity> GetReservationsWithoutLabels(IQueryable <Reservation> q, IMainFilterEntity filter, Enums.DayActualTime time)
        {
            var now = DateTime.Now.GetDateAndHourOnlyByCountry(filter.Country);

            return(from p in q
                   where (time == Enums.DayActualTime.THREE?(SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour))
                                                             >= 0 && SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour))
                                                             <= 71)
                          : SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour)) >= 0 &&
                          SqlMethods.DateDiffDay(now, p.RS_ARRIVAL_DATE.Value) <= 29)
                   group p by(time == Enums.DayActualTime.THREE?
                              SqlMethods.DateDiffHour(now, p.RS_ARRIVAL_DATE.Value.AddHours(p.RS_ARRIVAL_TIME.Value.Hour)
                                                      .AddMinutes(p.RS_ARRIVAL_TIME.Value.Minute))
                              : SqlMethods.DateDiffDay(now, p.RS_ARRIVAL_DATE.Value))
                   into g
                   select new DayActualEntity
            {
                Tme = g.Key,
                Reservations = g.Sum(p => p.RES_ID_NBR != null ? 1 : 0),
                OnewayRes = g.Sum(p => p.ONEWAY == "Y" ? 1 : 0),
                GoldServiceReservations = g.Sum(p => p.GS == "Y" ? 1 : 0),
                PrepaidReservations = g.Sum(p => p.PREPAID == "Y" ? 1 : 0),
                Predelivery = g.Sum(p => p.PREDELIVERY == "Y" ? 1 : 0),
            });
        }