示例#1
0
        protected IList GetData(out int count)
        {
            ICriterion criterion = SailsModule.IncomeCriterion();

            if (String.IsNullOrEmpty(Request.QueryString["ps"]))
            {
                criterion = Expression.And(criterion, Expression.Eq("DriverCollected", false));
            }

            criterion = Expression.And(criterion, Expression.Or(Expression.Gt("DriverCollect", 0d), Expression.Gt("DriverCollectVND", 0d)));
            DateTime from;
            DateTime to;

            if (string.IsNullOrEmpty(txtFrom.Text) || string.IsNullOrEmpty(txtTo.Text))
            {
                from = DateTime.Today.AddDays(-DateTime.Today.Day + 1);
                to   = from.AddMonths(1).AddDays(-1);
            }
            else
            {
                from = DateTime.ParseExact(txtFrom.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                to   = DateTime.ParseExact(txtTo.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            }

            if (Request.QueryString["mode"] != "all") // Nếu không phải là mode all thì thêm điều kiện về thời gian
            {
                txtFrom.Text = from.ToString("dd/MM/yyyy");
                txtTo.Text   = to.ToString("dd/MM/yyyy");
                criterion    = Expression.And(criterion,
                                              Expression.And(Expression.Ge(Booking.STARTDATE, from),
                                                             Expression.Le(Booking.STARTDATE, to)));
            }
            else
            {
                criterion = Expression.And(criterion, Expression.Eq("IsPaid", false));
            }

            if (Request.QueryString["paidon"] != null)
            {
                criterion = Expression.And(criterion, Expression.Ge("PaidDate", DateTime.FromOADate(Convert.ToDouble(Request.QueryString["paidon"]))));
                criterion = Expression.And(criterion, Expression.Lt("PaidDate", DateTime.FromOADate(Convert.ToDouble(Request.QueryString["paidon"])).AddDays(1)));
            }

            ICriterion agencyCrit = SetCriterion(GetAgencies());

            if (agencyCrit != null)
            {
                criterion = Expression.And(criterion, agencyCrit);
            }

            if (UserIdentity.HasPermission(AccessLevel.Administrator) || Module.PermissionCheck("VIEW_ALLBOOKINGGUIDECOLLECT", UserIdentity))
            {
                // Nếu có quyền xem hết thì mới để ý đến tham số saleid
                if (Request.QueryString["saleid"] != null)
                {
                    int saleid = Convert.ToInt32(Request.QueryString["saleid"]);
                    if (saleid > 0)
                    {
                        criterion = Expression.And(criterion, Expression.Eq("agency.Sale", Module.UserGetById(saleid)));
                    }
                    else
                    {
                        criterion = Expression.And(criterion, Expression.IsNull("agency.Sale"));
                    }
                }
            }
            else
            {
                criterion = Expression.And(criterion, Expression.Eq("agency.Sale", UserIdentity));
            }

            if (Request.QueryString["bookingcode"] != null)
            {
                string code = Request.QueryString["bookingcode"];
                criterion = SailsModule.AddBookingCodeCriterion(criterion, code);
            }

            bool tripped = false;

            if (Request.QueryString["tripid"] != null)
            {
                criterion = Expression.And(criterion,
                                           Expression.Eq("Trip.Id", Convert.ToInt32(Request.QueryString["tripid"])));
                tripped = true;
            }

            if (Request.QueryString["orgid"] != null)
            {
                criterion = Expression.And(criterion,
                                           Expression.Eq("trip.Organization", Module.OrganizationGetById(Convert.ToInt32(Request.QueryString["orgid"]))));
                tripped = true;
            }

            if (Request.QueryString["ps"] != null)
            {
                switch (Request.QueryString["ps"])
                {
                case "notpaid":
                    criterion = Expression.And(criterion, Expression.Eq("DriverCollected", false));
                    break;

                case "paid":
                    criterion = Expression.And(criterion, Expression.Eq("DriverCollected", true));
                    break;
                }
            }

            var bookings          = Module.BookingGetByCriterion(criterion, Order.Asc(Booking.STARTDATE), out count, 0, 0, tripped, UserIdentity);
            var bookingFilterList = new List <Booking>();

            if (Request.QueryString["drivername"] != null)
            {
                foreach (Booking booking in bookings)
                {
                    var            sailDate = Module.ExpenseGetByDate(booking.Trip, booking.StartDate);
                    ExpenseService driver   = null;
                    foreach (ExpenseService service in sailDate.Services)
                    {
                        if (service.Type.Name.ToUpper() == "TRANSPORT" && service.Group == booking.Group)
                        {
                            driver = service;
                            if (driver != null && driver.Supplier != null)
                            {
                                if (driver.Name.Contains(Request.QueryString["drivername"]))
                                {
                                    bookingFilterList.Add(booking);
                                }
                            }
                        }
                    }
                }
                bookings = bookingFilterList;
            }

            var bookingDriverFilterList = new List <Booking>();

            if (Request.QueryString["supplierid"] != null)
            {
                var agencyId = Convert.ToInt32(Request.QueryString["supplierid"]);
                foreach (Booking booking in bookings)
                {
                    var            sailDate = Module.ExpenseGetByDate(booking.Trip, booking.StartDate);
                    ExpenseService driver   = null;
                    foreach (ExpenseService service in sailDate.Services)
                    {
                        if (service.Type.Name.ToUpper() == "TRANSPORT" && service.Group == booking.Group)
                        {
                            driver = service;
                            if (driver != null && driver.Supplier != null)
                            {
                                if (driver.Supplier.Id == agencyId)
                                {
                                    bookingDriverFilterList.Add(booking);
                                }
                            }
                        }
                    }
                }
                bookings = bookingDriverFilterList;
            }

            return(bookings);
        }
        protected IList GetData(out int count, params Order[] orders)
        {
            ICriterion criterion = SailsModule.IncomeCriterion();
            DateTime   from;
            DateTime   to;

            if (string.IsNullOrEmpty(txtFrom.Text) || string.IsNullOrEmpty(txtTo.Text))
            {
                from = DateTime.Today.AddDays(-DateTime.Today.Day + 1);
                to   = from.AddMonths(1).AddDays(-1);
            }
            else
            {
                from = DateTime.ParseExact(txtFrom.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                to   = DateTime.ParseExact(txtTo.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            }
            //if (Request.QueryString["mode"] != "all") // Nếu không phải là mode all thì thêm điều kiện về thời gian
            //{
            txtFrom.Text = from.ToString("dd/MM/yyyy");
            txtTo.Text   = to.ToString("dd/MM/yyyy");
            criterion    = Expression.And(criterion,
                                          Expression.And(Expression.Ge(Booking.STARTDATE, from),
                                                         Expression.Le(Booking.STARTDATE, to)));
            //}
            //else
            //{
            //criterion = Expression.And(criterion, Expression.Not(Expression.Eq("ComPaid", true)));
            ICriterion commissionCriterion = Expression.Or(Expression.Gt("Commission", (double)0), Expression.Gt("CommissionVND", (double)0));

            criterion = Expression.And(criterion, commissionCriterion);
            //}

            if (Request.QueryString["paidon"] != null)
            {
                criterion = Expression.And(criterion, Expression.Ge("PaidDate", DateTime.FromOADate(Convert.ToDouble(Request.QueryString["paidon"]))));
                criterion = Expression.And(criterion, Expression.Lt("PaidDate", DateTime.FromOADate(Convert.ToDouble(Request.QueryString["paidon"])).AddDays(1)));
            }

            ICriterion agencyCrit = SetCriterion(GetAgencies());

            if (agencyCrit != null)
            {
                criterion = Expression.And(criterion, agencyCrit);
            }

            if (UserIdentity.HasPermission(AccessLevel.Administrator) || Module.PermissionCheck("VIEW_ALLBOOKINGRECEIVABLE", UserIdentity))
            {
                // Nếu có quyền xem hết thì mới để ý đến tham số saleid
                if (Request.QueryString["saleid"] != null)
                {
                    int saleid = Convert.ToInt32(Request.QueryString["saleid"]);
                    if (saleid > 0)
                    {
                        criterion = Expression.And(criterion, Expression.Eq("agency.Sale", Module.UserGetById(saleid)));
                    }
                    else
                    {
                        criterion = Expression.And(criterion, Expression.IsNull("agency.Sale"));
                    }
                }
            }
            else
            {
                criterion = Expression.And(criterion, Expression.Eq("agency.Sale", UserIdentity));
            }

            if (Request.QueryString["bookingcode"] != null)
            {
                string code = Request.QueryString["bookingcode"];
                criterion = SailsModule.AddBookingCodeCriterion(criterion, code);
            }

            Order order = Order.Asc(Booking.STARTDATE);

            if (orders.Length > 0)
            {
                order = orders[0];
            }

            return(Module.BookingGetByCriterion(criterion, order, out count, 0, 0, false, UserIdentity));
        }
示例#3
0
        protected int GetData(out IList list, bool loadService)
        {
            Cruise cruise = null;

            if (Request.QueryString["code"] != null)
            {
                ICriterion crit = Expression.Eq("Deleted", false);
                crit = SailsModule.AddBookingCodeCriterion(crit, Request.QueryString["code"]);

                var temp = Module.GetObject <Booking>(crit, 2, 0);
                if (temp.Count > 1)
                {
                    ShowErrors("Please input booking code correctly");
                    list = new ArrayList();
                    return(0);
                }
                else if (temp.Count == 0)
                {
                    ShowErrors("No booking with the code you provided");
                    list = new ArrayList();
                    return(0);
                }
                else
                {
                    cruise = temp[0].Cruise;
                    _date  = temp[0].StartDate;
                }
            }

            if (cruise == null)
            {
                if (Request.QueryString["cruiseid"] != null)
                {
                    cruise = Module.CruiseGetById(Convert.ToInt32(Request.QueryString["cruiseid"]));
                }

                if (string.IsNullOrEmpty(txtDate.Text))
                {
                    _date = DateTime.Today;
                }
                else
                {
                    _date = DateTime.ParseExact(txtDate.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                }
            }

            ICriterion criterion = Module.LockCrit();

            criterion = Expression.And(criterion, Expression.Not(Expression.Eq("IsTransferred", true)));

            if (cruise != null)
            {
                criterion = Expression.And(criterion, Expression.Eq("Cruise", cruise));
            }

            criterion = Module.AddDateExpression(criterion, _date);

            int count;

            list = Module.BookingGetByCriterion(criterion, null, out count, 0, 0);
            List <Booking> bookings = new List <Booking>();

            foreach (Booking booking in list)
            {
                bookings.Add(booking);
            }

            list = bookings.OrderBy(o => o.Trip.Id).ToList <Booking>();

            if (loadService)
            {
                LoadService(_date);
            }
            return(count);
        }