/// <summary> /// Обновление "Извещения о непригодности". /// </summary> /// <param name="FileCard"> Карточка файла, содержащая "Извещение о непригодности".</param> /// <param name="CardScript"> Скрипт карточки.</param> /// <param name="Context"> Объектный контекст.</param> /// <param name="DeviceCard"> Карточка паспорта прибора.</param> /// <param name="Client"> Наименование клиента.</param> /// <param name="VerificationDate"> Дата проведения поверки.</param> /// <param name="AdditionalWaresList"> Перечень дополнительных изделий.</param> /// <param name="StartDateOfService"> Дата передачи прибора на поверку.</param> /// <param name="CausesOfUnfitness"> Причина непригодности.</param> /// <returns></returns> public static void ReFill(CardData FileCard, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime VerificationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string CausesOfUnfitness) { string ClientName = Client.Equals(Guid.Empty) ? "ООО \"СКБ ЭП\"" : Context.GetObject <PartnersCompany>(Client).Name; // Серия и номер знака предыдущей поверки string PreviousVerifySerialNumber = "отсутствует"; // Получаем последнее свидетельство о поверке CardData PreviousVerificationCertificate = CalibrationLib.GetDocumentCard(CardScript.Session, DeviceCard, CalibrationLib.VerificationCertificateCategoryID); if (PreviousVerificationCertificate != null) { if (PreviousVerificationCertificate.Id == FileCard.Id) { PreviousVerifySerialNumber = "отсутствует"; } else { try { if (PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber) != null) { String OldSerialNumber = PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber).ToString(); PreviousVerifySerialNumber = OldSerialNumber == "" ? PreviousVerifySerialNumber : OldSerialNumber; } } catch { PreviousVerifySerialNumber = "отсутствует"; } } } WordprocessingDocument Document = CalibrationLib.GetNoticeOfUnfitnessTemplate(CardScript.Session); // Заполнение данных Извещения FillData(Document, CardScript, Context, DeviceCard, ClientName, VerificationDate, AdditionalWaresList, StartDateOfService, PreviousVerifySerialNumber, CausesOfUnfitness); // Сохранение изменений Document.MainDocumentPart.Document.Save(); // Закрытие Извещения Document.Close(); // Замена файла в карточке Извещения CalibrationLib.RefreshFileCard(Context, CardScript, FileCard, CalibrationLib.TempFolder + "\\" + "Извещение о непригодности.docx", VerificationDate, DeviceCard, ClientName, "отсутствует", false, CalibrationLib.NoticeOfUnfitnessCategoryID); return; }
/// <summary> /// Переформировать свидетельство о поверке. /// </summary> /// <param name="FileCard"> Карточка файла.</param> /// <param name="CardScript"> Скрипт.</param> /// <param name="Context"> Объектный контекст.</param> /// <param name="DeviceCard"> Карточка прибора.</param> /// <param name="Client"> Идентификатор клиента.</param> /// <param name="CalibrationDate"> Дата проведения поверки.</param> /// <param name="AdditionalWaresList"> Перечень дополнительных изделий.</param> /// <param name="StartDateOfService"> Дата передачи на поверку.</param> /// <param name="VerifySerialNumber"> Серийный номер поверки.</param> public static void ReFill(CardData FileCard, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string VerifySerialNumber) { string ClientName = Client.Equals(Guid.Empty) ? "ООО \"СКБ ЭП\"" : Context.GetObject <PartnersCompany>(Client).Name; string PreviousVerifySerialNumber = "-"; // Получаем последнее свидетельство о поверке CardData PreviousVerificationCertificate = CalibrationLib.GetDocumentCard(CardScript.Session, DeviceCard, CalibrationLib.VerificationCertificateCategoryID); if (PreviousVerificationCertificate != null) { if (PreviousVerificationCertificate.Id == FileCard.Id) { PreviousVerifySerialNumber = "-"; } else { try { if (PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber) != null) { String OldSerialNumber = PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber).ToString(); PreviousVerifySerialNumber = OldSerialNumber == "" ? PreviousVerifySerialNumber : OldSerialNumber; } } catch { PreviousVerifySerialNumber = "-"; } } } WordprocessingDocument Certificate = CalibrationLib.GetVerificationCertificateTemplate(CardScript.Session); // Заполнение данных сертификата FillData(Certificate, CardScript, Context, DeviceCard, ClientName, CalibrationDate, AdditionalWaresList, StartDateOfService, PreviousVerifySerialNumber); // Сохранение изменений Certificate.MainDocumentPart.Document.Save(); // Закрытие сертификата Certificate.Close(); // Замена файла в карточке сертификата CalibrationLib.RefreshFileCard(Context, CardScript, FileCard, CalibrationLib.TempFolder + "\\" + "Свидетельство о поверке.docx", CalibrationDate, DeviceCard, ClientName, VerifySerialNumber, false, CalibrationLib.VerificationCertificateCategoryID); return; }
/// <summary> /// Создание "Извещения о неригодности" /// </summary> /// <param name="CardScript"> Скрипт карточки.</param> /// <param name="Context"> Объектный контекст.</param> /// <param name="DeviceCard"> Карточка паспорта прибора.</param> /// <param name="Client"> Наименование клиента.</param> /// <param name="VerificationDate"> Дата проведения поверки.</param> /// <param name="AdditionalWaresList"> Перечень дополнительных изделий.</param> /// <param name="StartDateOfService"> Дата передачи прибора на поверку.</param> /// <param name="VerifySerialNumber"> Серийный номер поверки.</param> /// <param name="CausesOfUnfitness"> Причина непригодности.</param> /// <param name="IsNewDevice"> Новый прибор.</param> /// <returns></returns> public static CardData Create(ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime VerificationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string VerifySerialNumber, string CausesOfUnfitness, bool IsNewDevice = false) { string ClientName = Client.Equals(Guid.Empty) ? "ООО \"СКБ ЭП\"" : Context.GetObject <PartnersCompany>(Client).Name; // Серия и номер знака предыдущей поверки string PreviousVerifySerialNumber = "отсутствует"; // Получаем последнее свидетельство о поверке CardData PreviousVerificationCertificate = CalibrationLib.GetDocumentCard(CardScript.Session, DeviceCard, CalibrationLib.VerificationCertificateCategoryID); try { if (PreviousVerificationCertificate.Id != null) { if (PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber) != null) { String OldSerialNumber = PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber).ToString(); PreviousVerifySerialNumber = OldSerialNumber == "" ? PreviousVerifySerialNumber : OldSerialNumber; } } } catch { PreviousVerifySerialNumber = "отсутствует"; } WordprocessingDocument Document = CalibrationLib.GetNoticeOfUnfitnessTemplate(CardScript.Session); // Заполнение данных Извещения FillData(Document, CardScript, Context, DeviceCard, ClientName, VerificationDate, AdditionalWaresList, StartDateOfService, PreviousVerifySerialNumber, CausesOfUnfitness); // Сохранение изменений Document.MainDocumentPart.Document.Save(); // Закрытие Извещения Document.Close(); // Создание карточки Извещения CardData NewFileCard = CalibrationLib.NewFileCard(Context, CardScript.Session, CalibrationLib.NoticeOfUnfitnessCategoryID, CalibrationLib.TempFolder + "\\" + "Извещение о непригодности.docx", VerificationDate, DeviceCard, ClientName, VerifySerialNumber, false, IsNewDevice); // Прикрепление карточки Извещения к карточке паспорта прибора CalibrationLib.AttachFileToCard(CardScript.Session, DeviceCard, NewFileCard); return(NewFileCard); }
/// <summary> /// Создать свидетельство о поверке. /// </summary> /// <param name="CardScript"> Скрипт.</param> /// <param name="Context"> Объектный контекст.</param> /// <param name="DeviceCard"> Карточка прибора.</param> /// <param name="Client"> Идентификатор клиента.</param> /// <param name="CalibrationDate"> Дата проведения поверки.</param> /// <param name="AdditionalWaresList"> Перечень дополнительных изделий.</param> /// <param name="StartDateOfService"> Дата передачи на поверку.</param> /// <param name="VerifySerialNumber"> Серийный номер поверки.</param> /// <param name="NewDevice"> Метка нового прибора.</param> /// <returns></returns> public static CardData Create(ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client, DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string VerifySerialNumber, bool NewDevice = false) { string ClientName = Client.Equals(Guid.Empty) ? "ООО \"СКБ ЭП\"" : Context.GetObject <PartnersCompany>(Client).Name; string PreviousVerifySerialNumber = "-"; // Получаем последнее свидетельство о поверке CardData PreviousVerificationCertificate = CalibrationLib.GetDocumentCard(CardScript.Session, DeviceCard, CalibrationLib.VerificationCertificateCategoryID); if (PreviousVerificationCertificate != null) { try { if (PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber) != null) { String OldSerialNumber = PreviousVerificationCertificate.GetDocumentProperty(CalibrationLib.DocumentProperties.VerifySerialNumber).ToString(); PreviousVerifySerialNumber = OldSerialNumber == "" ? PreviousVerifySerialNumber : OldSerialNumber; } } catch { PreviousVerifySerialNumber = "-"; } } WordprocessingDocument Certificate = CalibrationLib.GetVerificationCertificateTemplate(CardScript.Session); // Заполнение данных сертификата FillData(Certificate, CardScript, Context, DeviceCard, ClientName, CalibrationDate, AdditionalWaresList, StartDateOfService, PreviousVerifySerialNumber); // Сохранение изменений Certificate.MainDocumentPart.Document.Save(); // Закрытие сертификата Certificate.Close(); // Создание карточки сертификата CardData NewFileCard = CalibrationLib.NewFileCard(Context, CardScript.Session, CalibrationLib.VerificationCertificateCategoryID, CalibrationLib.TempFolder + "\\" + "Свидетельство о поверке.docx", CalibrationDate, DeviceCard, ClientName, VerifySerialNumber, false, NewDevice); // Прикрепление карточки сертификата к карточке паспорта прибора CalibrationLib.AttachFileToCard(CardScript.Session, DeviceCard, NewFileCard); return(NewFileCard); }
/// <summary> /// Заполнение данных протокола /// </summary> /// <param name="Protocol">Документ протокола.</param> /// <param name="CardScript">Скрипт карточки.</param> /// <param name="Context">Объектный контекст.</param> /// <param name="DeviceCard">Карточка прибора.</param> /// <param name="CalibrationDate">Дата калибровки.</param> /// <param name="AdditionalWaresList">Перечень доп. изделий.</param> /// <param name="StartDateOfService">Дата начала сервисного обслуживания.</param> public static void FillData(WordprocessingDocument Protocol, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService) { Guid DeviceTypeID = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid(); string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID); string DisplayDeviceTypeName; if (CalibrationLib.AdditionalWaresList.Any(r => r == DeviceTypeName)) { DisplayDeviceTypeName = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название").ToString(); } switch (DeviceTypeName) { case "ПКР-2М": DisplayDeviceTypeName = "ПКР-2"; break; case "ПКВ/У3.0-01": DisplayDeviceTypeName = "ПКВ/У3.0"; break; default: DisplayDeviceTypeName = DeviceTypeName; break; } string DeviceNumber = DeviceCard.GetDeviceNumber(); // Данные для заполнения закладочных полей string CalibrationDateString = CalibrationDate.ToLongDateString(); //string CalibrationMeans = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Средства калибровки").ToString(); string CalibrationMeans = CalibrationLib.GetListOfMeasures(CardScript.Session, DeviceTypeID, true, false) + "."; string FileName = CalibrationLib.MeasuringDataList.Any(r => r == DeviceTypeName) ? CalibrationLib.GetDocumentCard(CardScript.Session, DeviceCard, CalibrationLib.MeasuringDataCategoryID).Sections[CardFile.MainInfo.ID].FirstRow.GetString(CardFile.MainInfo.FileName) : ""; string StaffName = Context.GetCurrentEmployee().DisplayString; // Заполнение закладочный полей string Temperature; string Humidity; string AtmospherePressure; CalibrationLib.GetCalibrationConditions(CardScript.Session, Context, CalibrationDate, out Temperature, out Humidity, out AtmospherePressure); FillBookmarks(Protocol, DeviceCard, DisplayDeviceTypeName, DeviceNumber, CalibrationDateString, CalibrationMeans, StaffName, Temperature, Humidity, AtmospherePressure, FileName); /*TablesCreator Creator = new TablesCreator(); * * // Добавление таблиц с результатами испытаний датчиков * //Random RandomValue = new Random(); * if (AdditionalWaresList != null) * { * foreach (CardData Ware in AdditionalWaresList) * { * Guid WareTypeID = Ware.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid(); * string WareTypeName = ApplicationCard.UniversalCard.GetItemName(WareTypeID); * * if (CalibrationLib.SensorsList.Any(r => r == WareTypeName)) * { * AddSensorTables(Protocol, CardScript.Session, Creator, WareTypeName, Ware, StartDateOfService); * } * } * }*/ //** Заполнение данных о метрологических характеристиках **// TablesCreator Creator = new TablesCreator(); // Добавление таблиц метрологических характеристик прибора AddDeviceTables(Protocol, CardScript.Session, Creator, DeviceTypeName, DeviceCard, StartDateOfService); // Добавление таблиц с результатами испытаний датчиков if (AdditionalWaresList != null) { foreach (CardData Ware in AdditionalWaresList) { Guid WareTypeID = Ware.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid(); string WareTypeName = ApplicationCard.UniversalCard.GetItemName(WareTypeID); if (CalibrationLib.SensorsList.Any(r => r == WareTypeName)) { AddSensorTables(Protocol, CardScript.Session, Creator, WareTypeName, Ware, StartDateOfService); } } } return; }