public HttpResponseMessage SavePayed(ServiceSheet model) { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.Created); try { model.CurUserAdSid = GetCurUser().Sid; model.SavePayed(); } catch (Exception ex) { response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent(MessageHelper.ConfigureExceptionMessage(ex)); } return response; }
public static IEnumerable<ServiceSheet> GetList(int? idClaim=null, int? idClaim2ClaimState = null) { SqlParameter pIdClaim = new SqlParameter() { ParameterName = "id_claim", SqlValue = idClaim, SqlDbType = SqlDbType.Int }; SqlParameter pIdClaim2ClaimState = new SqlParameter() { ParameterName = "id_claim2claim_state", SqlValue = idClaim2ClaimState, SqlDbType = SqlDbType.Int }; var dt = Db.Service.ExecuteQueryStoredProcedure("get_service_sheet", pIdClaim, pIdClaim2ClaimState); var lst = new List<ServiceSheet>(); foreach (DataRow row in dt.Rows) { var model = new ServiceSheet(row); lst.Add(model); } return lst; }
/// <summary> /// Для удаленного создания заявки на ЗИП из системы планирования (ДСУ) /// </summary> /// <param name="idServiceCame"></param> /// <param name="creatorSid"></param> /// <returns></returns> public static int SaveFromServicePlan4ZipClaim(int idServiceCame) { var came = new PlanServiceCame(idServiceCame); if (!came.NeedZip.HasValue || !came.NeedZip.Value) return 0; var claim = new Claim(); claim.CurUserAdSid = came.CreatorSid; claim.IdDevice = came.IdDevice; claim.IdContract = came.IdContract; claim.IdContractor = came.IdContractor; claim.CurUserAdSid = came.CreatorSid; claim.IdServiceCame = idServiceCame; claim.IdWorkType = Service.WorkType.GetWorkTypeForZipClaim().Id; claim.CurAdminSid = came.CreatorSid; claim.CurEngeneerSid = came.ServiceEngeneerSid; //claim.Descr = came.ZipDescr; var sheet = new ServiceSheet(); sheet.CounterDescr = came.Descr; sheet.Descr = came.ZipDescr; sheet.AdminSid = came.CreatorSid; sheet.EngeneerSid = came.ServiceEngeneerSid; sheet.CounterMono = came.Counter; sheet.CounterColor = came.CounterColor; sheet.ProcessEnabled = came.ProcessEnabled.HasValue ? came.ProcessEnabled.Value : false; sheet.DeviceEnabled = came.DeviceEnabled.HasValue ? came.DeviceEnabled.Value : false; sheet.ZipClaim = came.NeedZip; sheet.NoCounter = came.NoCounter; sheet.CounterUnavailable = came.CounterAvailable; sheet.IdServiceIssue = -999; claim.ServiceSheet4Save = sheet; var firstState = new ClaimState("SRVENGWORK"); int id = claim.Save(firstState); claim.Go(); return id; }
public static ServiceSheet GetLastServiceSheet(int idClaim) { ServiceSheet.GetList(idClaim); SqlParameter pIdClaim = new SqlParameter() { ParameterName = "id_claim", SqlValue = idClaim, SqlDbType = SqlDbType.Int }; var dt = Db.Service.ExecuteQueryStoredProcedure("get_last_service_sheet_id", pIdClaim); ServiceSheet sheet = new ServiceSheet(); if (dt.Rows.Count > 0) { int lastIdSerSheet = Db.DbHelper.GetValueIntOrDefault(dt.Rows[0], "id_service_sheet"); sheet = new ServiceSheet(lastIdSerSheet); } return sheet; }
public void SendMailTo(string message, string subject, int? serviceSheetId = null, params ServiceRole[] mailTo) { var cl = new Claim(Id, loadObject: false); foreach (ServiceRole mt in mailTo) { List<MailAddress> recipients = new List<MailAddress>(); if (mt == ServiceRole.CurAdmin) { string sid = cl.CurAdminSid; string email = Employee.GetEmailBySid(sid); if (!String.IsNullOrEmpty(email)) { recipients.Add(new MailAddress(email)); } else { message = $"<p style='color: red; font-size: 14pt'>Сообщение для Сервисного Администратора не может быть доставлено, поэтому в рассылку включен контролер процесса.</p>{message}"; recipients.AddRange(AdHelper.GetRecipientsFromAdGroup(AdGroup.ServiceControler)); } } else if (mt == ServiceRole.CurEngeneer) { string sid = cl.CurEngeneerSid; string email = Employee.GetEmailBySid(sid); if (!String.IsNullOrEmpty(email)) { recipients.Add(new MailAddress(email)); } else { message = $"Сообщение для Сервисного Инженера не может быть доставлено, поэтому в рассылку включен контролер процесса.\r\n{message}"; recipients.AddRange(AdHelper.GetRecipientsFromAdGroup(AdGroup.ServiceControler)); } } else if (mt == ServiceRole.CurManager) { string sid = cl.CurManagerSid; string email = Employee.GetEmailBySid(sid); if (!String.IsNullOrEmpty(email)) { recipients.Add(new MailAddress(email)); } else { message = $"Сообщение для Менеджера сервисного центра не может быть доставлено, поэтому в рассылку включен контролер процесса.\r\n{message}"; recipients.AddRange(AdHelper.GetRecipientsFromAdGroup(AdGroup.ServiceControler)); } } else if (mt == ServiceRole.CurTech) { string sid = cl.CurTechSid; string email = Employee.GetEmailBySid(sid); if (!String.IsNullOrEmpty(email)) { recipients.Add(new MailAddress(email)); } else { message = $"Сообщение для Специалиста Технической Поддержки не может быть доставлено, поэтому в рассылку включен контролер процесса.\r\n{message}"; recipients.AddRange(AdHelper.GetRecipientsFromAdGroup(AdGroup.ServiceControler)); } } //else if (mt == ServiceRole.CurTech) //{ // string sid = cl.CurTechSid; // email = new[] { Employee.GetEmailBySid(sid)}; //} else if (mt == ServiceRole.CurSpecialist) { string sid = cl.SpecialistSid; string email = Employee.GetEmailBySid(sid); if (!String.IsNullOrEmpty(email)) { recipients.Add(new MailAddress(email)); } else { message = $"Сообщение для текущего Специалиста заявки не может быть доставлено, поэтому в рассылку включен контролер процесса.\r\n{message}"; recipients.AddRange(AdHelper.GetRecipientsFromAdGroup(AdGroup.ServiceControler)); } } else if (mt == ServiceRole.AllTech) { //var emailList = new List<string>(); foreach (var item in AdHelper.GetUserListByAdGroup(AdGroup.ServiceTech)) { string email = Employee.GetEmailBySid(item.Key); if (!String.IsNullOrEmpty(email)) { recipients.Add(new MailAddress(email)); } else { message = $"Сообщение для Специалиста Технической Поддержки не может быть доставлено поэтому в рассылку включен контролер процесса.\r\n{message}"; recipients.AddRange(AdHelper.GetRecipientsFromAdGroup(AdGroup.ServiceControler)); } } //email = emailList.ToArray(); } else if (mt == ServiceRole.ZipConfirm) { foreach (var item in AdHelper.GetUserListByAdGroup(AdGroup.ServiceZipClaimConfirm)) { string email = Employee.GetEmailBySid(item.Key); if (!String.IsNullOrEmpty(email)) { recipients.Add(new MailAddress(email)); } else { message = $"Сообщение для Утврерждающего список ЗИП не может быть доставлено поэтому в рассылку включен контролер процесса.\r\n{message}"; recipients.AddRange(AdHelper.GetRecipientsFromAdGroup(AdGroup.ServiceControler)); } } } else if (mt == ServiceRole.ServiceSheetEngeneer) { string sid = null; if (serviceSheetId.HasValue) { sid = new ServiceSheet(serviceSheetId.Value).EngeneerSid; } string email = Employee.GetEmailBySid(sid); if (!String.IsNullOrEmpty(email)) { recipients.Add(new MailAddress(email)); } else { message = $"Сообщение для Инженера сервисного листа №{serviceSheetId} не может быть доставлено, поэтому в рассылку включен контролер процесса.\r\n{message}"; recipients.AddRange(AdHelper.GetRecipientsFromAdGroup(AdGroup.ServiceControler)); } } else { throw new ArgumentException("Указанный получатель не обрабатывается"); } if (recipients.Any()) MessageHelper.SendMailSmtp(subject, message, true, recipients.ToArray()); } }
public static void ServiceSheetIsPayWraped(int serviceSheetId, string creatorSid) { var ss = new ServiceSheet(serviceSheetId); if (ss.IsPayed.HasValue) { string text; string subject; if (ss.IsPayed.Value) { text = $"Принят сервисный лист №{serviceSheetId} по заявке №%ID% %LINK%"; subject = $"[Заявка №%ID%] Принят сервисный лист №{serviceSheetId}"; } else { text = $"Не принят сервисный лист №{serviceSheetId} по заявке №%ID%<br />Причина: {ss.NotPayedComment} %LINK%"; subject = $"[Заявка №%ID%] Не принят сервисный лист №{serviceSheetId}"; } var cl = new Claim(ss.IdClaim); cl.CurUserAdSid = creatorSid; cl.SendNote(subject, text, serviceSheetId, ServiceRole.ServiceSheetEngeneer); cl.Go(); } }
public ServiceSheet Get(int id) { var model = new ServiceSheet(id); return model; }