Example #1
0
        private void FrmDetail_Load(object sender, EventArgs e)
        {
            var years = Db.Context.Schedules.Select(t => t.Date.Year).Distinct().OrderBy(t => t).ToList();

            cbYear.DataSource = years;

            var user = Db.Context.Users.FirstOrDefault(t => t.FirstName + " " + t.LastName == User);

            userReport = new UserReport
            {
                User       = user,
                Tickets    = user.Tickets.Where(k => k.Confirmed).ToList(),
                Commission = 0.0
            };

            cbCriterias.SelectedIndex = 0;
            this.Text = $"{Type} detail of {User}";

            this.Cursor = Cursors.Default;
        }
Example #2
0
        private void LoadData()
        {
            chartDetail.Series[0].Points.Clear();
            chartDetail.Series[1].Points.Clear();
            chartDetail.Series[2].Points.Clear();

            var users       = Db.Context.Users.Where(t => t.Role.Title == "Agent").ToList();
            var userReports = new List <UserReport>();

            foreach (var item in users)
            {
                var ur = new UserReport()
                {
                    User       = item,
                    Commission = 0
                };

                if (rdbByDate.Checked)
                {
                    var date = dtpDate.Value.Date;

                    ur.Amenities = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date == date).SelectMany(k => k.AmenitiesTickets).ToList();
                    ur.Tickets   = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date == date).ToList();
                }
                else if (rdbByMonth.Checked)
                {
                    var month = dtpMonth.Value.Date.Month;
                    var year  = dtpMonth.Value.Date.Year;

                    ur.Amenities = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date.Month == month && k.Schedule.Date.Year == year).SelectMany(k => k.AmenitiesTickets).ToList();
                    ur.Tickets   = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date.Month == month && k.Schedule.Date.Year == year).ToList();
                }
                else
                {
                    var year = int.Parse(cbYear.Text);

                    ur.Amenities = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date.Year == year).SelectMany(k => k.AmenitiesTickets).ToList();
                    ur.Tickets   = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date.Year == year).ToList();
                }

                userReports.Add(ur);
            }

            userReports = userReports.OrderByDescending(t => t.Tickets.Count()).ToList();

            foreach (var item in userReports)
            {
                item.Commission = UpdateCommission(item.Tickets);
            }

            CommissionDataSet.CommisstionReportDataTable dt = new CommissionDataSet.CommisstionReportDataTable();

            int i = 0;

            foreach (var item in userReports)
            {
                dt.AddCommisstionReportRow(item.User.FirstName + " " + item.User.LastName, "Amennities Sold", item.Amenities.Count);
                dt.AddCommisstionReportRow(item.User.FirstName + " " + item.User.LastName, "Tickets Sold", item.Tickets.Count);
                dt.AddCommisstionReportRow(item.User.FirstName + " " + item.User.LastName, "Commission Earned", item.Commission);

                chartDetail.Series[0].Points.AddXY(item.User.FirstName + " " + item.User.LastName, item.Amenities.Count);
                chartDetail.Series[0].Points[i].Label = item.Amenities.Count.ToString();

                chartDetail.Series[1].Points.AddXY(item.User.FirstName + " " + item.User.LastName, item.Tickets.Count);
                chartDetail.Series[1].Points[i].Label = item.Tickets.Count().ToString();

                chartDetail.Series[2].Points.AddXY(item.User.FirstName + " " + item.User.LastName, item.Commission);
                chartDetail.Series[2].Points[i].Label = item.Commission.ToString("C0");

                i++;
            }

            ReportBindingSource.DataSource = dt;
            reportViewer1.RefreshReport();
        }