/// <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;
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 4
0
        /// <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;
        }