internal void OnNeedRefreshOrders() { EventHandler<RefreshOrdersEventArgs> handler = NeedRefreshOrders; if (handler != null) { RefreshOrdersEventArgs e = new RefreshOrdersEventArgs(); e.StartDate = _StartDate; e.StartTime = StartTime; e.EndTime = EndTime; handler(this, e); } RefreshButtons(); }
protected void OnRefreshCalendarEvent(object sender, RefreshOrdersEventArgs arg) { OrdersCalendar Calendar = (OrdersCalendar)sender; MainClass.StatusMessage(String.Format ("Запрос заказов на {0:d}...", arg.StartDate)); string sql = "SELECT orders.*, models.name as model, marks.name as mark, status.color, stocks.name as stock, stocks.color as stockcolor, " + "status.name as status, manufacturers.name as manufacturer, tablesum.sum FROM orders " + "LEFT JOIN models ON models.id = orders.car_model_id " + "LEFT JOIN marks ON marks.id = models.mark_id " + "LEFT JOIN status ON status.id = orders.status_id " + "LEFT JOIN stocks ON stocks.id = orders.stock_id " + "LEFT JOIN manufacturers ON manufacturers.id = orders.manufacturer_id " + "LEFT JOIN (" + "SELECT order_id, SUM(cost) as sum FROM order_pays GROUP BY order_id) as tablesum " + "ON tablesum.order_id = orders.id " + "WHERE date BETWEEN @start AND @end "; if (Calendar == orderscalendar1) sql += "AND orders.type = 'install' "; else sql += "AND orders.type <> 'install' "; QSMain.CheckConnectionAlive(); try { MySqlCommand cmd = new MySqlCommand(sql, QSMain.connectionDB); cmd.Parameters.AddWithValue("@start", arg.StartDate); cmd.Parameters.AddWithValue("@end", arg.StartDate.AddDays(6)); using(MySqlDataReader rdr = cmd.ExecuteReader()) { Calendar.ClearTimeMap(); while(rdr.Read()) { CalendarItem order = new CalendarItem(rdr.GetDateTime("date"), rdr.GetInt32("hour") ); Order.OrderType type = (Order.OrderType)Enum.Parse(typeof(Order.OrderType), rdr["type"].ToString()); order.id = rdr.GetInt32("id"); order.Text = String.Format("{0} {1}\n{2}\n{3}",rdr["mark"].ToString(), rdr["model"].ToString(), rdr["phone"].ToString(), rdr["comment"].ToString() ); if(type == Order.OrderType.install) { order.FullText = String.Format("Состояние: {0}\nАвтомобиль: {1} {2}\nЕврокод: {3}\nПроизводитель: {4}\nСклад:{5}\nТелефон: {6}\nСтоимость: {7:C}\n{8}", rdr["status"].ToString(), rdr["mark"].ToString(), rdr["model"].ToString(), rdr["eurocode"].ToString(), rdr["manufacturer"].ToString(), rdr["stock"].ToString(), rdr["phone"].ToString(), DBWorks.GetDecimal(rdr, "sum", 0), rdr["comment"].ToString() ); } else { order.FullText = String.Format("Заказ на {0}\nСостояние: {1}\nАвтомобиль: {2} {3}\nТелефон: {4}\nСтоимость: {5:C}\n{6}", type == Order.OrderType.tinting ? "тонировку" : "ремонт", rdr["status"].ToString(), rdr["mark"].ToString(), rdr["model"].ToString(), rdr["phone"].ToString(), DBWorks.GetDecimal(rdr, "sum", 0), rdr["comment"].ToString() ); } order.Color = DBWorks.GetString(rdr, "color", ""); order.TagColor = DBWorks.GetString(rdr, "stockcolor", ""); if(rdr["stock"].ToString().Length > 0 && rdr["stockcolor"] != DBNull.Value) order.Tag = rdr["stock"].ToString().Substring(0, 1); order.Type = (int) type; order.Calendar = Calendar; order.DeleteOrder += OnDeleteOrder; order.OpenOrder += OnOpenOrder; order.TimeChanged += OnChangeTimeOrderEvent; int day = (order.Date - Calendar.StartDate).Days; Calendar.AddItem(day, order.Hour, order); } } MainClass.StatusMessage("Ok"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); MainClass.StatusMessage("Ошибка получения списка заказов!"); QSMain.ErrorMessage(this,ex); } }