public static void sendCranTask(string header, CranTaskInfo task) { try { IQueryable users = OrdersUser.getAllUsers(); List <string> mailToList = new List <string>(); foreach (OrdersUser user in users) { if ( (user.SendAllCranTask) || (task.SelAuthor.ToLower() == user.Name.ToLower()) || (task.TaskState == CranTaskState.created && user.SendAllCreateCranTask) ) { if (user.Mails.Count > 0) { foreach (string mail in user.Mails) { if (!String.IsNullOrEmpty(mail) && !mailToList.Contains(mail.ToLower())) { mailToList.Add(mail.ToLower()); } } } } } try { mailToList.Add("*****@*****.**"); } catch { } Attachment attach = null; /*try { * MemoryStream stream = new MemoryStream(); * StreamWriter writer = new StreamWriter(stream); * writer.Write(CranTaskInfo.getTaskPrintHTML(task)); * writer.Flush(); * stream.Position = 0; * * attach = new Attachment(stream, String.Format("Заявка{0}.xls", task.Number), "application/vnd.ms-excel"); * } * catch (Exception e) { * Logger.info(e.ToString(), Logger.LoggerSource.server); * }*/ string message = CranTaskInfo.getTaskHTML(task); //message += String.Format("<h3><a href='{0}'>Перейти к списку заявок</a></h3>", String.Format("http://{0}:{1}/#/CransPage", HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port)); if (mailToList.Count > 0) { SendMailLocal(smtpServer, smtpPort, smtpUser, smtpPassword, smtpDomain, smtpFrom, mailToList, header, message, true, attach); } } catch (Exception e) { Logger.error(String.Format("Ошибка при отправке почты: {0}", e.ToString()), Logger.LoggerSource.server); } }
public void init(CranTaskInfo task, List <String> CranUsers) { this.CranUsers = CranUsers; CurrentTask = task; acbCranUser.ItemsSource = CranUsers; pnlTask.DataContext = CurrentTask; }
private void newTaskOn_Click(object sender, RoutedEventArgs e) { if (CurrentTask == null) { return; } CranTaskInfo newTask = new CranTaskInfo(); newTask.init = true; newTask.TaskAction = CranTaskAction.create; newTask.canChange = true; newTask.canCheck = false; newTask.CranNumber = CurrentTask.CranNumber; newTask.Comment = CurrentTask.Comment; newTask.TaskState = CranTaskState.created; newTask.NeedStartDate = CurrentTask.NeedEndDate; newTask.NeedEndDate = CurrentTask.NeedEndDate.AddHours(12); newTask.SelAuthor = CurrentTask.SelAuthor; newTask.Manager = CurrentTask.Manager; newTask.StropUser = CurrentTask.StropUser; CranWindow taskWindow = new CranWindow(); taskWindow.init(newTask, Managers, StropUsers); taskWindow.Closed += taskWindow_Closed; IsOperating = true; taskWindow.Show(); }
void serie_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { LineSeries serie = sender as LineSeries; CranTaskInfo task = getTaskBySerie(serie); SelectTask(task); }
public void init(CranTaskInfo task, List <String> Managers, List <String> StropUsers) { this.Managers = Managers; this.StropUsers = StropUsers; CurrentTask = task; pnlTask.DataContext = CurrentTask; //lstUsers.ItemsSource = from OrdersUser u in OrdersContext.Current.Context.OrdersUsers where u.CanAgreeCranTask select u; acbManager.ItemsSource = Managers; acbStropUser.ItemsSource = StropUsers; cmbCranName.ItemsSource = Crans; cmbAuthorSelName.ItemsSource = SelUsers; }
public ActionResult PrintCranTasks(int year1, int month1, int day1, int year2, int month2, int day2) { Logging.Logger.info("Печать списка заявок на кран", Logging.Logger.LoggerSource.server); DateTime Date1 = new DateTime(year1, month1, day1); DateTime Date2 = new DateTime(year2, month2, day2); CranFilter filter = new CranFilter(); filter.DateStart = Date1; filter.DateEnd = Date2; CranFilter Result = CranTaskInfo.LoadCranTasks(filter); ViewResult view = View("PrintCranTasks", Result); return(view); }
protected void Application_Start() { Logger.init(Server.MapPath("/logs/"), "orders"); OrderObject.init(); Order.init(); CranTaskInfo.initTaskNumbers(); CranTaskInfo.PathFiles = Server.MapPath("/Data/"); AreaRegistration.RegisterAllAreas(); Logger.info(System.Configuration.ConfigurationManager.AppSettings["smtpServer"], Logger.LoggerSource.client); RegisterRoutes(RouteTable.Routes); }
private void newTask_Click(object sender, RoutedEventArgs e) { CranTaskInfo newTask = new CranTaskInfo(); newTask.init = true; newTask.TaskAction = CranTaskAction.create; newTask.canChange = true; newTask.canCheck = false; newTask.CranNumber = 0; newTask.Comment = ""; newTask.TaskState = CranTaskState.created; newTask.NeedStartDate = DateTime.Now.Date.AddDays(1).AddHours(8); newTask.NeedEndDate = DateTime.Now.Date.AddDays(1).AddHours(12); newTask.SelAuthor = WebContext.Current.User.Name; CranWindow taskWindow = new CranWindow(); taskWindow.init(newTask, Managers, StropUsers); taskWindow.Closed += taskWindow_Closed; IsOperating = true; taskWindow.Show(); }
public void processSingleCran(int cranNumber, Chart CurrentChart, double cranVal) { Dictionary <DateTime, CranTaskInfo> crans = new Dictionary <DateTime, CranTaskInfo>(); foreach (CranTaskInfo task in CurrentFilter.Data) { DateTime date = task.NeedEndDate; if (task.Allowed) { date = task.AllowDateEnd; } if (task.CranNumber == cranNumber) { while (crans.ContainsKey(date)) { date = date.AddMilliseconds(1); } crans.Add(date, task); } } IEnumerable <KeyValuePair <DateTime, CranTaskInfo> > sorted = crans.OrderBy(task => task.Value.NeedStartDate); double maxCntA = 0; double maxCntD = 0; double cntA = 0; double cntD = 0; CranTaskInfo prevTaskA = null; CranTaskInfo prevTaskD = null; foreach (KeyValuePair <DateTime, CranTaskInfo> de in sorted) { CranTaskInfo task = de.Value; if (task.TaskState == CranTaskState.reviewed && task.Allowed) { if (prevTaskA != null && task.AllowDateStart.AddMinutes(1) > prevTaskA.AllowDateEnd) { if (maxCntA < cntA) { maxCntA = cntA; } cntA = 0; } cntA++; prevTaskA = task; } else if (task.Denied) { if (prevTaskD != null && task.NeedStartDate.AddMinutes(1) > prevTaskD.NeedEndDate) { if (maxCntD < cntD) { maxCntD = cntD; } cntD = 0; } cntD++; prevTaskD = task; } else if (task.Cancelled) { if (prevTaskD != null && task.NeedStartDate.AddMinutes(1) > prevTaskD.NeedEndDate) { if (maxCntD < cntD) { maxCntD = cntD; } cntD = 0; } cntD++; prevTaskD = task; } else if (task.Finished || task.Opened) { if (prevTaskA != null && task.RealDateStart.AddMinutes(1) > prevTaskA.AllowDateEnd) { if (maxCntA < cntA) { maxCntA = cntA; } cntA = 0; } cntA++; prevTaskA = task; } else { if (prevTaskD != null && task.NeedStartDate.AddMinutes(1) > prevTaskD.NeedEndDate) { if (maxCntD < cntD) { maxCntD = cntD; } cntD = 0; } cntD++; prevTaskD = task; } } if (maxCntA < 2) { maxCntA = 2; } if (maxCntD < 2) { maxCntD = 2; } double stepA = 0.5 / (maxCntA + 1.5); double stepD = 0.5 / (maxCntD + 2.5); /*double stepA = 0.05; * double stepD = 0.05;*/ double diffA = 0; double diffD = stepD; prevTaskA = null; prevTaskD = null; foreach (KeyValuePair <DateTime, CranTaskInfo> de in sorted) { CranTaskInfo task = de.Value; LineSeries serie = new LineSeries(); DataSeries <DateTime, double> Points = new DataSeries <DateTime, double>(); serie.Name = String.Format("order_{0}", task.Number); serie.MouseLeftButtonUp += serie_MouseLeftButtonUp; serie.LineStrokeThickness = 3; serie.SelectionMode = Visiblox.Charts.SelectionMode.None; serie.PointShape = Visiblox.Charts.Primitives.ShapeType.Rectangle; serie.PointSize = 8; serie.ShowPoints = true; if (task.TaskState == CranTaskState.reviewed && task.Allowed) { if (prevTaskA != null && task.AllowDateStart.AddMinutes(1) >= prevTaskA.AllowDateEnd) { diffA = 0; } if (!task.Finished) { Points.Add(new DataPoint <DateTime, double>(task.AllowDateStart, cranVal + diffA)); Points.Add(new DataPoint <DateTime, double>(task.AllowDateEnd, cranVal + diffA)); } else { Points.Add(new DataPoint <DateTime, double>(task.RealDateStart, cranVal + diffA)); Points.Add(new DataPoint <DateTime, double>(task.RealDateEnd, cranVal + diffA)); } serie.LineStroke = new SolidColorBrush(!task.Finished ? Colors.Green : Colors.Blue); serie.PointFill = new SolidColorBrush(!task.Finished ? Colors.Green : Colors.Blue); diffA += stepA; prevTaskA = task; } else if (task.Denied) { if (prevTaskD != null && task.NeedStartDate.AddMinutes(1) >= prevTaskD.NeedEndDate) { diffD = stepD; } Points.Add(new DataPoint <DateTime, double>(task.NeedStartDate, cranVal - diffD)); Points.Add(new DataPoint <DateTime, double>(task.NeedEndDate, cranVal - diffD)); serie.LineStroke = new SolidColorBrush(Colors.Red); serie.PointFill = new SolidColorBrush(Colors.Red); diffD += stepD; prevTaskD = task; } else if (task.Cancelled) { if (prevTaskD != null && task.NeedStartDate.AddMinutes(1) >= prevTaskD.NeedEndDate) { diffD = stepD; } Points.Add(new DataPoint <DateTime, double>(task.NeedStartDate, cranVal - diffD)); Points.Add(new DataPoint <DateTime, double>(task.NeedEndDate, cranVal - diffD)); serie.LineStroke = new SolidColorBrush(Colors.LightGray); serie.PointFill = new SolidColorBrush(Colors.LightGray); diffD += stepD; prevTaskD = task; } else if (task.TaskState == CranTaskState.opened) { if (prevTaskA != null && task.RealDateStart.AddMinutes(1) >= prevTaskA.AllowDateEnd) { diffA = 0; } Points.Add(new DataPoint <DateTime, double>(task.RealDateStart, cranVal + diffA)); Points.Add(new DataPoint <DateTime, double>(task.AllowDateEnd, cranVal + diffA)); serie.LineStroke = new SolidColorBrush(Colors.Orange); serie.PointFill = new SolidColorBrush(Colors.Orange); diffA += stepA; prevTaskA = task; } else if (task.TaskState == CranTaskState.finished) { if (prevTaskA != null && task.RealDateStart.AddMinutes(1) >= prevTaskA.AllowDateEnd) { diffA = 0; } Points.Add(new DataPoint <DateTime, double>(task.RealDateStart, cranVal + diffA)); Points.Add(new DataPoint <DateTime, double>(task.RealDateEnd, cranVal + diffA)); serie.LineStroke = new SolidColorBrush(Colors.Blue); serie.PointFill = new SolidColorBrush(Colors.Blue); diffA += stepA; prevTaskA = task; } else { if (prevTaskD != null && task.NeedStartDate.AddMinutes(1) >= prevTaskD.NeedEndDate) { diffD = stepD; } Points.Add(new DataPoint <DateTime, double>(task.NeedStartDate, cranVal - diffD)); Points.Add(new DataPoint <DateTime, double>(task.NeedEndDate, cranVal - diffD)); serie.LineStroke = new SolidColorBrush(Colors.Gray); serie.PointFill = new SolidColorBrush(Colors.Gray); diffD += stepD; prevTaskD = task; } serie.DataSeries = Points; CurrentChart.Series.Add(serie); } }
private void SelectTask(CranTaskInfo task) { CurrentTask = task; if (task == null) return; if (CurrentTask != null) { pnlTask.DataContext = CurrentTask; } Chart CurrentChart = null; switch (task.CranNumber){ case 1: case 2: CurrentChart = ChartMZ; tCntrl.SelectedIndex = 0; break; case 3: case 4: CurrentChart = ChartSUS; tCntrl.SelectedIndex = 1; break; case 5: case 6: CurrentChart = ChartNBVB; tCntrl.SelectedIndex = 2; break; case 7: case 8: CurrentChart = ChartTransVSP; tCntrl.SelectedIndex = 3; break; case 9: CurrentChart = ChartPromPlosh; tCntrl.SelectedIndex = 4; break; default: return; } try { if (grdTasks.SelectedItem != task) grdTasks.SelectedItem = task; foreach (LineSeries serie in CurrentChart.Series) { try { if (serie.Name == String.Format("order_{0}", task.Number)) { serie.LineStrokeThickness = 10; } else { int num = getTaskNumber(serie.Name); serie.LineStrokeThickness = 5; } } catch { } } } catch { } }
public ReturnMessage FinishCranTask(CranTaskInfo task) { return(CranTaskInfo.CreateCranTask(task)); }
public ReturnMessage CancelCranTask(CranTaskInfo task) { return(CranTaskInfo.CreateCranTask(task)); }
public ReturnMessage CommentCranTask(CranTaskInfo task, string comment) { return(CranTaskInfo.AddComment(task, comment)); }
public CranFilter getCranTasks(CranFilter Filter) { return(CranTaskInfo.LoadCranTasks(Filter)); }
public void init(CranTaskInfo task) { CurrentTask = task; pnlTask.DataContext = CurrentTask; }
private void SelectTask(CranTaskInfo task) { CurrentTask = task; if (task == null) { return; } if (CurrentTask != null) { pnlTask.DataContext = CurrentTask; } Chart CurrentChart = null; switch (task.CranNumber) { case 1: case 2: CurrentChart = ChartMZ; tCntrl.SelectedIndex = 0; break; case 3: case 4: CurrentChart = ChartSUS; tCntrl.SelectedIndex = 1; break; case 5: case 6: CurrentChart = ChartNBVB; tCntrl.SelectedIndex = 2; break; case 7: case 8: CurrentChart = ChartTransVSP; tCntrl.SelectedIndex = 3; break; case 9: CurrentChart = ChartPromPlosh; tCntrl.SelectedIndex = 4; break; default: return; } try { if (grdTasks.SelectedItem != task) { grdTasks.SelectedItem = task; } try { grdTasks.ScrollIntoView(task, grdTasks.Columns[0]); } catch { } foreach (LineSeries serie in CurrentChart.Series) { if (serie.Name == String.Format("order_{0}", task.Number)) { serie.LineStrokeThickness = 5; } else { if (serie.Name.Contains("order_")) { int num = getTaskNumber(serie.Name); if (serie.LineStrokeThickness != 3) { serie.LineStrokeThickness = 3; } } } } } catch { } }
private void newTask_Click(object sender, RoutedEventArgs e) { CranTaskInfo newTask = new CranTaskInfo(); newTask.init = true; newTask.canChange = true; newTask.canCheck = false; newTask.CranNumber = 0; newTask.Comment = ""; newTask.NeedStartDate = DateTime.Now.Date.AddDays(1); newTask.NeedEndDate = DateTime.Now.Date.AddDays(2); CranWindow taskWindow = new CranWindow(); taskWindow.init(newTask,Managers); taskWindow.Closed += taskWindow_Closed; taskWindow.Show(); }