public void ApplyDataOperation(Order currentOrder,OrderOperation operation) {
				switch (operation) {
					case OrderOperation.open:
						OrdersContext.Current.Context.RegisterOpenOrder(currentOrder,OrdersContext.Current.SessionGUID);
						break;
					case OrderOperation.close:
						OrdersContext.Current.Context.RegisterCloseOrder(currentOrder, OrdersContext.Current.SessionGUID);
						break;
					case OrderOperation.complete:
						OrdersContext.Current.Context.RegisterCompleteOrder(currentOrder, OrdersContext.Current.SessionGUID);
						break;
				}
				if ((currentOrder.OrderIsExtend||currentOrder.OrderIsFixErrorEnter) && (currentOrder.ParentOrder != null)) {
					OrdersContext.Current.Context.ReloadOrder(currentOrder.ParentOrder, OrdersContext.Current.SessionGUID);
				}
				OrdersContext.Current.SubmitChangesCallbackError();
		}
Example #2
0
		public static void sendMail(string header, Order order, bool isNewOrder, bool onlyAuthor, Order prevOrder = null) {
			if (HttpContext.Current.Request.Url.Port == 8072 || HttpContext.Current.Request.Url.Port == 8090)
				return;
			try {
				IQueryable users = OrdersUser.getAllUsers();
				List<string> mailToList = new List<string>();

				foreach (OrdersUser user in users) {
					if (
						user.SendAllAgreeMail && order.AgreeUsers.Contains(user) && !mailToList.Contains(user.Mail) && !onlyAuthor ||
						user.SendAllMail && !mailToList.Contains(user.Mail) ||
						user.SendCreateMail && order.UserCreateOrderID == user.UserID && !mailToList.Contains(user.Mail) ||
						onlyAuthor && order.UserCreateOrderID == user.UserID && !mailToList.Contains(user.Mail) ||
						isNewOrder && (user.SendAllCreateMail || user.SendAgreeMail && order.AgreeUsers.Contains(user)) && !mailToList.Contains(user.Mail) && !onlyAuthor
						) {
						if (user.Mails.Count > 0) {
							foreach (string mail in user.Mails) {
								if (!String.IsNullOrEmpty(mail)) {
									mailToList.Add(mail);
								}
							}
						}
					}
				}

				string message = OrderView.getOrderHTML(order);
				if (prevOrder != null) {
					message += "<hr/>" + OrderView.getOrderHTML(prevOrder, false);
				}
				message += String.Format("<h3><a href='{0}'>Перейти к списку заявок</a></h3>", String.Format("http://{0}:{1}", HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port));

				if (mailToList.Count > 0) {
					//SendMailLocal("mx-votges-021.corp.gidroogk.com", 25, "", "", "", "*****@*****.**", mailToList, header, message, true);
					SendMailLocal(smtpServer, smtpPort, smtpUser, smtpPassword, smtpDomain, smtpFrom, mailToList, header, message, true);
				}
			}
			catch (Exception e) {
				Logger.error(String.Format("Ошибка при отправке почты: {0}", e.ToString()), Logger.LoggerSource.server);
			}
		}
Example #3
0
		public static string getOrderHTML(Order order, bool showStyle=true) {			
			string style=showStyle?"<Style>table {border-collapse: collapse;} td{text-align:center;} td.comments{text-align:left;} td, th {border-width: 1px;	border-style: solid;	border-color: #BBBBFF;	padding-left: 3px;	padding-right: 3px;}</Style>":"";
			string htmlNumber = String.Format("Заявка {0} №{1} от {2}", order.OrderTypeShortName, order.OrderNumber.ToString(OrderInfo.NFI), order.OrderDateCreate.ToString("dd.MM.yy"));
			string htmlState=String.Format("Состояние: {0}", order.OrderStateStr);
			string htmlReady=String.Format("Ав.готовность: {0}", order.ReadyTime);
			string htmlFirstTRTable=String.Format("<table width='100%'><tr><th>{0}</th><th>{1}</th><th>{2}</th></tr></table>", htmlNumber, htmlReady, htmlState);
			string htmlInfoTable=String.Format("<table width='100%'><tr><th colspan='3'>Информация о заявке</th></tr><tr><th width='30%'>Оборудование</th><th  width='30%'>Текст заявки</th><th width='30%'>Согласовано</th></tr><tr><td width='30%'>{0}</td><td width='30%'>{1}</td><td width='30%'>{2}</td></tr></table>",
				order.FullOrderObjectInfo, order.OrderText, order.AgreeText);

			string htmlExtend=order.OrderHasParentOrder ? "СТАРАЯ ЗАЯВКА №" + order.ParentOrderNumber.ToString(OrderInfo.NFI) : "";
			string htmlExtended=order.OrderHasChildOrder ? "НОВАЯ ЗАЯВКА №" + order.ChildOrderNumber.ToString(OrderInfo.NFI) : "";			
			htmlExtend += order.OrderExtended ? "<br/>" + htmlExtended : "";
			if (htmlExtend.Length > 0)
				htmlExtend += "<br/>";

			string htmlDatesTable = 
				String.Format("<table width='100%'><tr><th colspan='3'>Сроки заявки</th></tr><tr><th>&nbsp;</th><th>Начало</th><th>Окончание</th></tr><tr><th>План</th><td>{0}</td><td>{1}</td></tr><tr><th>Факт</th><td>{2}</td><td>{4}</td></tr><tr><th>Разрешение на ввод</th><td colspan='2'>{3}</td></tr></table>",
				order.PlanStartDate.ToString("dd.MM.yy HH:mm"), order.PlanStopDate.ToString("dd.MM.yy HH:mm"),
				order.FaktStartDate.HasValue ? order.FaktStartDate.Value.ToString("dd.MM.yy HH:mm") : "&nbsp;",
				order.FaktStopDate.HasValue ? order.FaktStopDate.Value.ToString("dd.MM.yy HH:mm") : "&nbsp;",
				order.FaktCompleteDate.HasValue ? order.FaktCompleteDate.Value.ToString("dd.MM.yy HH:mm") : "&nbsp;");

			string formatTR="<tr><th>{0}</th><td>{1}</td><td>{2}</td><td>{3}</td></tr>";
			string htmlCreateTR=String.Format(formatTR, "Создал", order.UserCreateOrder.FullName, order.OrderDateCreate.ToString("dd.MM.yy HH:mm"), order.CreateText);
			string htmlAcceptTR=order.OrderReviewed ? String.Format(formatTR, "Рассмотрел", order.UserReviewOrder.FullName, order.OrderDateReview.Value.ToString("dd.MM.yy HH:mm"), order.ReviewText) : "";
			string htmlOpenTR=order.OrderOpened ? String.Format(formatTR, "Открыл", order.UserOpenOrder.FullName, order.OrderDateOpen.Value.ToString("dd.MM.yy HH:mm"), order.OpenText) : "";
			string htmlCloseTR=order.OrderClosed ? String.Format(formatTR, "Разрешил ввод", order.UserCloseOrder.FullName, order.OrderDateClose.Value.ToString("dd.MM.yy HH:mm"), order.CloseText) : "";
			string htmlEnterTR=order.OrderCompleted ? String.Format(formatTR, "Завершил", order.UserCompleteOrder.FullName, order.OrderDateComplete.Value.ToString("dd.MM.yy HH:mm"), order.CompleteText) : "";
			string htmlCancelTR=order.OrderCanceled ? String.Format(formatTR, "Снял", order.UserCancelOrder.FullName, order.OrderDateCancel.Value.ToString("dd.MM.yy HH:mm"), order.CancelText) : "";
			string htmlCommentsTR=!String.IsNullOrEmpty(order.CommentsText) ? 
				String.Format("<tr><td colspan='4' class='comments'>{0}</td></tr>", order.CommentsText.Replace(" ","&nbsp;").Replace("\n","<br/>")) : "";

			string htmlOper="<tr><th>&nbsp;</th><th>Автор</th><th>Дата</th><th>Комментарий</th></tr>";
			string htmlOperTable=String.Format("<table  width='100%'><tr><th colspan='4'>Операции над заявкой</th></tr> {0}{1}{2}{3}{4}{5}{6}{7}</table>",
				htmlOper, htmlCreateTR, htmlAcceptTR, htmlOpenTR, htmlCloseTR, htmlEnterTR, htmlCancelTR, htmlCommentsTR);

			string fullTable=String.Format("<table width='100%'><tr><td colspan='2'>{0}</td></tr><tr><td colspan='2'>{1}</td></tr><tr><td>{2}</td><td>{3}</td></tr></table>",
				htmlFirstTRTable, htmlInfoTable, htmlExtend + htmlDatesTable, htmlOperTable);
			return style+fullTable;
		}
		public void ApplyAccept(Order currentOrder,AcceptResult result) {
				switch (result) {
					case AcceptResult.accept:
						currentOrder.ReviewText = currentOrder.NewComment;
						OrdersContext.Current.Context.RegisterAcceptOrder(currentOrder, OrdersContext.Current.SessionGUID);
						break;
					case AcceptResult.ban:
						currentOrder.ReviewText = currentOrder.NewComment;
						OrdersContext.Current.Context.RegisterBanOrder(currentOrder, OrdersContext.Current.SessionGUID);
						break;
					case AcceptResult.cancel:
						currentOrder.CancelText = currentOrder.NewComment;
						OrdersContext.Current.Context.RegisterCancelOrder(currentOrder, OrdersContext.Current.SessionGUID);
						break;
					case AcceptResult.comment:
						OrdersContext.Current.Context.RegisterAddComment(currentOrder, currentOrder.NewComment, OrdersContext.Current.SessionGUID);
						break;
				}
				if ((currentOrder.OrderIsExtend || currentOrder.OrderIsFixErrorEnter) && (currentOrder.ParentOrder != null)) {
					OrdersContext.Current.Context.ReloadOrder(currentOrder.ParentOrder, OrdersContext.Current.SessionGUID);
				}
				OrdersContext.Current.SubmitChangesCallbackError();
		}
		public void RegisterEditOrder(Order order, Guid guid) {
			Logger.info("редактирование заявки " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.RegisterEditOrder(order, guid);
		}
 /// <summary>
 /// Вызывает метод "RegisterNew" указанной сущности <see cref="Order"/>.
 /// </summary>
 /// <param name="order">Экземпляр сущности <see cref="Order"/>.</param>
 /// <param name="guid">Значение параметра "guid" для данного действия.</param>
 public void RegisterNew(Order order, Guid guid)
 {
     order.RegisterNew(guid);
 }
		public void RegisterCompleteOrder(Order order, Guid guid) {
			Logger.info("ввод оборудования " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.CompleteOrder(order, guid);
		}
		public void RegisterOpenOrder(Order order, Guid guid) {
			Logger.info("открытие заявки " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.OpenOrder(order, guid);
		}
		public void RegisterBanOrder(Order order, Guid guid) {
			Logger.info("запрет заявки " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.BanOrder(order, guid);
		}
		public void RegisterChangeOrder(Order order,Guid guid) {
			Logger.info("изменение заявки " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.ChangeOrder(order, guid);
		}
		public void RegisterNew(Order order,Guid guid) {
			Logger.info("Создание заявки", Logger.LoggerSource.service);
			context.RegisterOrder(order, guid);
		}
 /// <summary>
 /// Вызывает метод "RegisterRejectCompleteOrder" указанной сущности <see cref="Order"/>.
 /// </summary>
 /// <param name="order">Экземпляр сущности <see cref="Order"/>.</param>
 /// <param name="guid">Значение параметра "guid" для данного действия.</param>
 public void RegisterRejectCompleteOrder(Order order, Guid guid)
 {
     order.RegisterRejectCompleteOrder(guid);
 }
 /// <summary>
 /// Вызывает метод "RegisterRejectOpenOrder" указанной сущности <see cref="Order"/>.
 /// </summary>
 /// <param name="order">Экземпляр сущности <see cref="Order"/>.</param>
 /// <param name="guid">Значение параметра "guid" для данного действия.</param>
 public void RegisterRejectOpenOrder(Order order, Guid guid)
 {
     order.RegisterRejectOpenOrder(guid);
 }
 /// <summary>
 /// Вызывает метод "RegisterRejectCancelOrder" указанной сущности <see cref="Order"/>.
 /// </summary>
 /// <param name="order">Экземпляр сущности <see cref="Order"/>.</param>
 /// <param name="guid">Значение параметра "guid" для данного действия.</param>
 public void RegisterRejectCancelOrder(Order order, Guid guid)
 {
     order.RegisterRejectCancelOrder(guid);
 }
 /// <summary>
 /// Вызывает метод "RegisterRejectReviewOrder" указанной сущности <see cref="Order"/>.
 /// </summary>
 /// <param name="order">Экземпляр сущности <see cref="Order"/>.</param>
 /// <param name="guid">Значение параметра "guid" для данного действия.</param>
 public void RegisterRejectReviewOrder(Order order, Guid guid)
 {
     order.RegisterRejectReviewOrder(guid);
 }
 /// <summary>
 /// Вызывает метод "RegisterCloseOrder" указанной сущности <see cref="Order"/>.
 /// </summary>
 /// <param name="order">Экземпляр сущности <see cref="Order"/>.</param>
 /// <param name="guid">Значение параметра "guid" для данного действия.</param>
 public void RegisterCloseOrder(Order order, Guid guid)
 {
     order.RegisterCloseOrder(guid);
 }
 /// <summary>
 /// Вызывает метод "RegisterAcceptOrder" указанной сущности <see cref="Order"/>.
 /// </summary>
 /// <param name="order">Экземпляр сущности <see cref="Order"/>.</param>
 /// <param name="guid">Значение параметра "guid" для данного действия.</param>
 public void RegisterAcceptOrder(Order order, Guid guid)
 {
     order.RegisterAcceptOrder(guid);
 }
		public void RegisterAddComment(Order order, string commentText, Guid guid) {
			Logger.info("комментирование заявки " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.RegisterAddComment(order, commentText, guid);
		}
		public void ReloadOrder(Order order, Guid guid) {
			Logger.info("обновление заявки" + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.ReloadOrder(order);
		}
 /// <summary>
 /// Вызывает метод "RegisterEditOrder" указанной сущности <see cref="Order"/>.
 /// </summary>
 /// <param name="order">Экземпляр сущности <see cref="Order"/>.</param>
 /// <param name="guid">Значение параметра "guid" для данного действия.</param>
 public void RegisterEditOrder(Order order, Guid guid)
 {
     order.RegisterEditOrder(guid);
 }
		public void UpdateOrder(Order order) {
			//Logger.info("Сервис: Update " + order.OrderNumber.ToString());
			//context.UpdateOrder(order);
		}
 /// <summary>
 /// Вызывает метод "RegisterAddComment" указанной сущности <see cref="Order"/>.
 /// </summary>
 /// <param name="order">Экземпляр сущности <see cref="Order"/>.</param>
 /// <param name="commentText">Значение параметра "commentText" для данного действия.</param>
 /// <param name="guid">Значение параметра "guid" для данного действия.</param>
 public void RegisterAddComment(Order order, string commentText, Guid guid)
 {
     order.RegisterAddComment(commentText, guid);
 }
		public void RegisterAcceptOrder(Order order,Guid guid) {
			Logger.info("разрешение заявки " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.AcceptOrder(order, guid);
		}
 /// <summary>
 /// Вызывает метод "ReloadOrder" указанной сущности <see cref="Order"/>.
 /// </summary>
 /// <param name="order">Экземпляр сущности <see cref="Order"/>.</param>
 /// <param name="guid">Значение параметра "guid" для данного действия.</param>
 public void ReloadOrder(Order order, Guid guid)
 {
     order.ReloadOrder(guid);
 }
		public void RegisterCancelOrder(Order order, Guid guid) {
			Logger.info("снятие заявки " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.CancelOrder(order, guid);
		}
		public void RegisterRejectReviewOrder(Order order, Guid guid) {
			Logger.info("отмена рассмотрения заявки " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.RejectReviewOrder(order, guid);
		}
		public void RegisterCloseOrder(Order order, Guid guid) {
			Logger.info("разрешение ввода " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.CloseOrder(order, guid);
		}
		public void RegisterRejectCompleteOrder(Order order, Guid guid) {
			Logger.info("отмена закрытия заявки " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.RejectCompleteOrder(order, guid);
		}
		public void RegisterRejectCloseOrder(Order order, Guid guid) {
			Logger.info("отмена разрешения на ввод заявки " + order.OrderNumber.ToString(), Logger.LoggerSource.service);
			context.RejectCloseOrder(order, guid);
		}
 private bool FilterParentOrder(Order entity)
 {
     return (entity.OrderNumber == this.ParentOrderNumber);
 }