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;
        }
示例#2
0
        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;
        }
示例#3
0
        /// <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;
        }
示例#4
0
        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;
        }
示例#5
0
        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());
            }
        }
示例#6
0
        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;
 }