예제 #1
0
        public InfoPage(String Login, String Role)
        {
            InitializeComponent();


            label_Role.Text = Role;

            if (Role == "Driver")
            {
                var DriverInfo = Drivers.getDriverByLogin(Login);
                label_Category.Text   = DriverInfo.Category;
                label_Fathername.Text = DriverInfo.Fathername;
                label_Name.Text       = DriverInfo.Name;
                label_Salary.Text     = DriverInfo.Salary.ToString();
                label_Surname.Text    = DriverInfo.Surname;

                WaybillTable.Visible = true;

                List <WaybillModel> waybills = Waybills.getWaybillList().Where(item => item.DriverId == DriverInfo.Id).ToList();

                foreach (var item in waybills)
                {
                    var currentTransport = Transport.getTransportById(item.TransportId);
                    WaybillTable.Rows.Add(new string[] { currentTransport.Type, item.Distance.ToString(), item.Price.ToString() });
                }
            }
        }
예제 #2
0
        public void updateDataGrid()
        {
            dataGridView1.Rows.Clear();

            List <WaybillModel> list = Waybills.getWaybillList();

            foreach (var item in list)
            {
                var driverItem = Drivers.getDriverById(item.DriverId);
                dataGridView1.Rows.Add(new string[] { driverItem.Name, driverItem.Surname, driverItem.Fathername, item.Price.ToString(), item.Distance.ToString(), item.Date });
            }
        }
예제 #3
0
        private void button_Calc_Click(object sender, EventArgs e)
        {
            var waybills = Waybills.getWaybillList();

            DateTime start = DateTime.Parse(((DateTime)StartDate.Value).ToString("dd/MM/yyyy"));
            DateTime end   = DateTime.Parse(((DateTime)EndDate.Value).ToString("dd/MM/yyyy"));

            if (start > end)
            {
                MessageBox.Show("Начало не может быть позже конца.");
                return;
            }

            var validWays = new List <WaybillModel>();

            foreach (var item in waybills)
            {
                if (start <= DateTime.Parse(item.Date) && DateTime.Parse(item.Date) <= end)
                {
                    validWays.Add(item);
                }
            }

            var driverMap    = new Dictionary <int, int>();
            var transportMap = new Dictionary <int, int>();

            foreach (var item in validWays)
            {
                if (driverMap.ContainsKey(item.DriverId) == false)
                {
                    driverMap.Add(item.DriverId, item.Price - Drivers.getDriverById(item.DriverId).Salary *item.Distance);
                }
                else
                {
                    driverMap[item.DriverId] += item.Price - Drivers.getDriverById(item.DriverId).Salary *item.Distance;
                }


                if (transportMap.ContainsKey(item.TransportId) == false)
                {
                    transportMap.Add(item.TransportId, item.Price - Drivers.getDriverById(item.DriverId).Salary *item.Distance);
                }
                else
                {
                    transportMap[item.TransportId] = Math.Max(item.Price - Drivers.getDriverById(item.DriverId).Salary *item.Distance, transportMap[item.TransportId]);
                }
            }

            int maxDriverValue = int.MinValue, maxDriverId = -1;

            foreach (var item in driverMap)
            {
                if (item.Value > maxDriverValue)
                {
                    maxDriverValue = item.Value;
                    maxDriverId    = item.Key;
                }
            }

            if (maxDriverId != -1)
            {
                var driver       = Drivers.getDriverById(maxDriverId);
                var reportDriver = new ReportDriver()
                {
                    Name            = driver.Name,
                    Surname         = driver.Surname,
                    Fathername      = driver.Fathername,
                    Income          = maxDriverValue,
                    DateStartReport = start,
                    DateEndReport   = end
                };
                reportDriver.saveToXml();
            }

            foreach (var item in transportMap)
            {
                var transport       = Transport.getTransportById(item.Key);
                var reportTransport = new ReportTransport()
                {
                    Type            = transport.Type,
                    Income          = item.Value,
                    DateStartReport = start,
                    DateEndReport   = end
                };
                reportTransport.saveToXml();
            }
            Close();
        }