Example #1
0
 /// <summary>
 /// Дополнительное изделие.
 /// </summary>
 public AdditionalWare(ScriptClassBase CardScript, string WareName, string WarePassportID, string WareItemID, string TypeID, string TypeName)
 {
     this.CardScript     = CardScript;
     this.WareName       = WareName;
     this.WarePassportID = WarePassportID;
     this.WareItemID     = WareItemID;
     this.TypeID         = TypeID;
     this.TypeName       = TypeName;
 }
Example #2
0
        public static void ReFill(CardData FileCard, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client,
                                  DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, DateTime StartDateOfCalibration)
        {
            string ClientName = Client.Equals(Guid.Empty) ? "СКБ ЭП" : Context.GetObject <PartnersCompany>(Client).Name;

            WordprocessingDocument Certificate = CalibrationLib.GetCalibrationCertificateTemplate(CardScript.Session);

            // Заполнение данных сертификата
            FillData(Certificate, CardScript, Context, DeviceCard, ClientName, CalibrationDate, AdditionalWaresList, StartDateOfService, StartDateOfCalibration);
            // Сохранение изменений
            Certificate.MainDocumentPart.Document.Save();
            // Закрытие сертификата
            Certificate.Close();
            // Замена файла в карточке сертификата
            CalibrationLib.RefreshFileCard(Context, CardScript, FileCard, CalibrationLib.TempFolder + "\\" + "Сертификат о калибровке.docx", CalibrationDate, DeviceCard, ClientName, "", true);
            return;
        }
Example #3
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="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="Document"> Редактируемый документ.</param>
        /// <param name="CardScript"> Скрипт карточки.</param>
        /// <param name="Context"> Объектный контекст.</param>
        /// <param name="DeviceCard"> Карточка прибора.</param>
        /// <param name="ClientName"> Название клиента.</param>
        /// <param name="VerificationDate"> Дата поверки.</param>
        /// <param name="AdditionalWaresList"> Перечень дополнительных изделий.</param>
        /// <param name="StartDateOfService"> Дата поступления на поверку.</param>
        /// <param name="PreviousVerifySerialNumber"> Серийный номер предыдущей поверки.</param>
        /// <param name="CausesOfUnfitness"> Серийный номер предыдущей поверки.</param>
        /// <returns></returns>
        public static void FillData(WordprocessingDocument Document, ScriptClassBase CardScript, ObjectContext Context,
                                    CardData DeviceCard, string ClientName, DateTime VerificationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string PreviousVerifySerialNumber, string CausesOfUnfitness)
        {
            // Формирование Извещения о непригодности
            Guid   DeviceTypeID   = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid();
            string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID);
            string DeviceNumber   = DeviceCard.GetDeviceNumber();

            // Данные для заполнения закладочных полей
            string FullDeviceType         = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название").ToString() + " " + DeviceTypeName + ",";
            string VerificationDateString = VerificationDate.ToLongDateString();
            string VerificationMethods    = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Методика поверки").ToString();
            string RegNum          = "ГР №" + ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Номер в Госреестре").ToString();
            string AdditionalWares = (AdditionalWaresList.Count > 0 ? "c датчиками " : "") + AdditionalWaresList.Select(r => ApplicationCard.UniversalCard.GetItemName(r.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid()) + " " + r.GetDeviceNumber()).Aggregate(AdditionalWaresList.Count == 2 ? " и " : ", ");

            // Заполнение закладочный полей
            FillBookmarks(Document, FullDeviceType, RegNum, AdditionalWares, PreviousVerifySerialNumber, DeviceNumber, VerificationMethods, VerificationDateString, CausesOfUnfitness);

            return;
        }
        public static void ReFill(CardData FileCard, ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client,
                                  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 ClientName     = Client.Equals(Guid.Empty) ? "СКБ ЭП" : Context.GetObject <PartnersCompany>(Client).Name;

            WordprocessingDocument Protocol = CalibrationLib.GetCalibrationProtocolTemplate(CardScript.Session, DeviceTypeName);

            // Заполнение данных протокола
            FillData(Protocol, CardScript, Context, DeviceCard, CalibrationDate, AdditionalWaresList, StartDateOfService);
            // Сохранение изменений
            Protocol.MainDocumentPart.Document.Save();
            // Закрытие протокола
            Protocol.Close();
            // Замена файла в карточке протокола
            CalibrationLib.RefreshFileCard(Context, CardScript, FileCard, CalibrationLib.TempFolder + "\\" + "Протокол калибровки " + DeviceTypeName.Replace("/", "-") + ".docm", CalibrationDate, DeviceCard,
                                           ClientName, "", true);
            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);
        }
Example #8
0
        public static CardData Create(ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client,
                                      DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, DateTime StartDateOfCalibration, bool NewDevice = false)
        {
            string ClientName = Client.Equals(Guid.Empty) ? "СКБ ЭП" : Context.GetObject <PartnersCompany>(Client).Name;
            WordprocessingDocument Certificate = CalibrationLib.GetCalibrationCertificateTemplate(CardScript.Session);

            // Заполнение данных сертификата
            FillData(Certificate, CardScript, Context, DeviceCard, ClientName, CalibrationDate, AdditionalWaresList, StartDateOfService, StartDateOfCalibration);
            // Сохранение изменений
            Certificate.MainDocumentPart.Document.Save();
            // Закрытие сертификата
            Certificate.Close();
            // Создание карточки сертификата
            CardData NewFileCard = CalibrationLib.NewFileCard(Context, CardScript.Session, CalibrationLib.CalibrationCertificateCategoryID, CalibrationLib.TempFolder + "\\" + "Сертификат о калибровке.docx", CalibrationDate,
                                                              DeviceCard, ClientName, "", true, NewDevice);

            // Прикрепление карточки сертификата к карточке паспорта прибора
            CalibrationLib.AttachFileToCard(CardScript.Session, DeviceCard, NewFileCard);

            return(NewFileCard);
        }
Example #9
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);
        }
        public static CardData Create(ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client,
                                      DateTime VerificationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, bool IsPrimaryVerification)
        {
            Guid   DeviceTypeID             = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid();
            string DeviceTypeName           = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID);
            string ClientName               = Client.Equals(Guid.Empty) ? "ООО \"СКБ ЭП\"" : Context.GetObject <PartnersCompany>(Client).Name;
            WordprocessingDocument Protocol = CalibrationLib.GetVerificationProtocolTemplate(CardScript.Session, DeviceTypeName);

            // Заполнение данных протокола
            FillData(Protocol, CardScript, Context, DeviceCard, VerificationDate, ClientName, AdditionalWaresList, StartDateOfService, IsPrimaryVerification);
            // Сохранение изменений
            Protocol.MainDocumentPart.Document.Save();
            // Закрытие сертификата
            Protocol.Close();
            // Создание карточки протокола калибровки
            CardData ProtocolFileCard = CalibrationLib.NewFileCard(Context, CardScript.Session, CalibrationLib.VerificationProtocolCategoryID,
                                                                   CalibrationLib.TempFolder + "\\" + "Протокол поверки " + DeviceTypeName.Replace("/", "-") + ".docm", VerificationDate, DeviceCard, ClientName, "", false);

            // Прикрепление карточки протокола калировки к карточке паспорта прибора
            CalibrationLib.AttachFileToCard(CardScript.Session, DeviceCard, ProtocolFileCard);
            return(ProtocolFileCard);
        }
Example #11
0
        /// <summary>
        /// Инициализирует карточку по заданным данным.
        /// </summary>
        /// <param name="ClassBase">Скрипт карточки.</param>
        /// <param name="e">Событие открытия карточки</param>
        public ApplicationCard(ScriptClassBase ClassBase, CardActivatedEventArgs e)
            : base(ClassBase)
        {
            try
            {
                /* Получение рабочих объектов */
                Table_Service     = ICardControl.FindPropertyItem <ITableControl>(RefApplicationCard.Service.Alias);
                Table_AddComplete = ICardControl.FindPropertyItem <ITableControl>(RefApplicationCard.AddComplete.Alias);

                Grid_Service     = ICardControl.GetGridView(RefApplicationCard.Service.Alias);
                Grid_AddComplete = ICardControl.GetGridView(RefApplicationCard.AddComplete.Alias);

                Control_Links = ICardControl.FindPropertyItem <LinksControlView>(RefApplicationCard.MainInfo.Links);

                /* Получение номера */
                if (GetControlValue(RefApplicationCard.MainInfo.Number).ToGuid().IsEmpty())
                {
                    CurrentNumerator        = CardScript.GetNumber(RefApplicationCard.NumberRuleName);
                    CurrentNumerator.Number = Convert.ToInt32(CurrentNumerator.Number).ToString("00000");
                    SetControlValue(RefApplicationCard.MainInfo.Number, Context.GetObjectRef <BaseCardNumber>(CurrentNumerator).Id);
                    WriteLog("Выдали номер: " + CurrentNumerator.Number);
                }
                else
                {
                    CurrentNumerator = Context.GetObject <BaseCardNumber>(GetControlValue(RefApplicationCard.MainInfo.Number));
                }

                /* Заполнение списка изменений */
                RefreshChanges();

                /* Значения по умолчанию */
                if (e.ActivateFlags.HasFlag(ActivateFlags.New))
                {
                    SetControlValue(RefApplicationCard.MainInfo.Status, (Int32)RefApplicationCard.MainInfo.State.Registered);
                }

                if (GetControlValue(RefApplicationCard.MainInfo.Negotiator).ToGuid().IsEmpty())
                {
                    try
                    {
                        StaffEmployee Emp = Context.GetEmployeeByPosition("Начальник отдела настройки");
                        SetControlValue(RefApplicationCard.MainInfo.Negotiator, Context.GetObjectRef(Emp).Id);
                    }
                    catch { MyMessageBox.Show("Не удалось найти ответственного исполнителя!", "Предупржедение", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
                }

                /* Привязка методов */
                CardScript.CardControl.CardClosed += CardControl_CardClosed;
                CardScript.CardControl.Saved      += CardControl_Saved;
                CardScript.CardControl.Saving     += CardControl_Saving;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.ShowClientInfo].ItemClick     += ShowClientInfo_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Calculation].ItemClick        += Calculation_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.PrintAcceptanceAct].ItemClick += PrintAcceptanceAct_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.PrintDeliveryAct].ItemClick   += PrintDeliveryAct_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Calibrate].ItemClick          += Calibrate_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Revoke].ItemClick             += Revoke_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.CreateAccountCard].ItemClick  += CreateAccountCard_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Marketing].ItemClick          += Marketing_ItemClick;

                Grid_Service.AddDoubleClickHandler(new Service_DoubleClickDelegate(Service_DoubleClick));
                AddTableHandler(RefApplicationCard.Service.Alias, "AddButtonClicked", "Service_AddButtonClicked");
                AddTableHandler(RefApplicationCard.Service.Alias, "RemoveButtonClicked", "Service_RemoveButtonClicked");

                /* Настройка */
                Customize();
            }
            catch (Exception Ex) { CallError(Ex); }
        }
        /// <summary>
        /// Заполнение данных Протокола поверки.
        /// </summary>
        /// <param name="Protocol">Документ протокола поверки.</param>
        /// <param name="CardScript">Скрипт карточки.</param>
        /// <param name="Context">Объектный контекст.</param>
        /// <param name="DeviceCard">Карточка прибора.</param>
        /// <param name="VerificationDate">Дата проведения поверки.</param>
        /// <param name="ClientName">Наименование клиента.</param>
        /// <param name="AdditionalWaresList">Перечень доп. изделий.</param>
        /// <param name="StartDateOfService">Дата поступления на серивсное обслуживание.</param>
        /// <param name="IsPrimaryVerification">Флаг первичной поверки.</param>
        public static void FillData(WordprocessingDocument Protocol, ScriptClassBase CardScript, ObjectContext Context,
                                    CardData DeviceCard, DateTime VerificationDate, string ClientName, List <CardData> AdditionalWaresList, DateTime StartDateOfService, bool IsPrimaryVerification)
        {
            // ====== Получение информации для заполнения закладочных полей в протоколе поверки ===== //

            // Идентификатор типа прибора определяется из карточки "Паспорта прибора"
            Guid DeviceTypeID = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid();
            // Тип поверки определяется из входных данных (если прибор новый или после ремонта, то тип поверки - "первичная", если прибор клиента после калибровки/поверки - то тип поверки - "периодическая")
            string VerificationType = IsPrimaryVerification ? "ПЕРВИЧНОЙ" : "ПЕРИОДИЧЕСКОЙ";
            // Краткое название прибора определяется из универсального справочника типа "Приборы и комплектующие"
            string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID);
            // Полное официальное название прибора определяется из универсального справочника типа "Приборы и комплектующие"
            string DisplayDeviceTypeName = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название").ToString() + " " + DeviceTypeName;
            // Перечень дополнительных изделий определяется из входного параметра AdditionalWaresList
            string AdditionalWares = (AdditionalWaresList.Count > 0 ? "c датчиками " : "") + AdditionalWaresList.Select(r =>
                                                                                                                        ApplicationCard.UniversalCard.GetItemName(r.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid()) + " № " + (r.GetDeviceNumber().Contains("/") == true ? r.GetDeviceNumber().Replace("/", " (") + " г)" : r.GetDeviceNumber())).Aggregate(AdditionalWaresList.Count == 2 ? " и " : ", ");
            // Заводской номер прибора определяется из карточки "Паспорта прибора"
            string DeviceNumber = DeviceCard.GetDeviceNumber() + " " + AdditionalWares;
            // Дата проведения поверки определяется из входного параметра VerificationDate
            string VerificationDateString = VerificationDate.ToLongDateString();
            // ФИО текущего сотрудника определяется из справочника сотрудников (строка отображения)
            string StaffName = Context.GetCurrentEmployee().DisplayString;
            // ФИО руководителя отдела Метрологической лаборатории определяется из справочника сотрудников по должности
            string ManagerName = Context.GetEmployeeByPosition(SKB.Base.Ref.RefServiceCard.Roles.MetrologicalLabManager) != null?Context.GetEmployeeByPosition(SKB.Base.Ref.RefServiceCard.Roles.MetrologicalLabManager).DisplayString : "";

            // Методика поверки определяется из универсального справочника типа "Пиборы и комплектующие"
            string VerificationMethods = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Методика поверки").ToString();
            // Дата выпуска прибора определяется из карточки "Паспорта прибора" (если в истории прибора есть строка о поступлени прибора на калибровку, то берется дата поступления на калибровку, если нет - то берется год прибора).
            string DateOfIssue = DeviceCard.GetDeviceDateOfIssue();

            // Перечень эталонов определяется из карточек "Оборудование" (отбираются все карточки "Оборудование", в которых указано, что данное оборудование является эталоном и используется для поверки текущего типа прибора).
            // Перечень эталонов разбивается на две части по количеству символов (для вставки в разные строки протокола поверки).
            string VerificationMeans  = "";
            string VerificationMeans2 = "";

            CalibrationLib.GetListOfMeasures(CardScript.Session, DeviceTypeID, false, true, 4, out VerificationMeans, out VerificationMeans2);
            // Перечень вспомогательных средств поверки определяется из карточек "Оборудование" (отбираются все карточки "Оборудование", в которых указано, что данное оборудование является вспомогательным средством поверки и используется для поверки текущего типа прибора)
            // Перечень вспомогательных средств поверки разбивается на две части по количеству символов (для вставки в разные строки протокола поверки).
            string AuxiliaryMeshuring  = "";
            string AuxiliaryMeshuring2 = "";

            CalibrationLib.GetListOfAuxiliaryMeasures(CardScript.Session, DeviceTypeID, false, true, 3, out AuxiliaryMeshuring, out AuxiliaryMeshuring2);

            // Значения влияющих факторов (температура, влажность, атмосферное давление) определяются из конструктора справочников, из узла "Журнал условий поверки".
            // Если прибор = МИКО-21, то значение атмосферного давления корректируется.
            // Определяются только в режиме авторматического заполнения протокола поверки.
            string Temperature;
            string Humidity;
            string AtmospherePressure;

            CalibrationLib.GetCalibrationConditions(CardScript.Session, Context, VerificationDate, out Temperature, out Humidity, out AtmospherePressure);
            if (DeviceTypeName == "МИКО-21")
            {
                AtmospherePressure = Math.Round(Convert.ToDouble(AtmospherePressure) / 7.501, 1).ToString();
            }

            // ===== Заполнение закладочных полей ===== //
            FillBookmarks(Protocol, DeviceCard, VerificationType, VerificationDateString, DisplayDeviceTypeName, DeviceNumber, ClientName, DateOfIssue, VerificationMethods, VerificationMeans, VerificationMeans2,
                          AuxiliaryMeshuring, AuxiliaryMeshuring2, Temperature, Humidity, AtmospherePressure, StaffName, ManagerName);

            // ===== Заполнение данных о метрологических характеристиках прибора ===== //

            // Определение режима заполнения протоколов поверки для текущего типа прибора
            int FormMode = (Int32)ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Формирование протокола поверки");

            // Заполнение данных о метрологических характеристиках осуществляется только в автоматическом режиме заполнения протокола поверки
            // Если режим заполнения - автоматический, то добавляем таблицы с данными метрологических характеристик
            if (FormMode == 2)
            {
                // Получение объекта создателя таблиц
                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, DeviceTypeName);
                        }
                    }
                }
            }
            return;
        }
        /// <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;
        }
Example #14
0
        /// <summary>
        /// Заполнить данные свидетельства о поверке.
        /// </summary>
        /// <param name="Certificate"> Файл свидетельства о поверке.</param>
        /// <param name="CardScript">Скрипт.</param>
        /// <param name="Context">Объектный контекст.</param>
        /// <param name="DeviceCard">Карточка прибора.</param>
        /// <param name="ClientName">Название клиента.</param>
        /// <param name="VerificationDate">Дата поверки.</param>
        /// <param name="AdditionalWaresList">Перечень дополнительных изделий.</param>
        /// <param name="StartDateOfService">Дата поступления на поверку.</param>
        /// <param name="PreviousVerifySerialNumber">Дата поступления на поверку.</param>
        public static void FillData(WordprocessingDocument Certificate, ScriptClassBase CardScript, ObjectContext Context,
                                    CardData DeviceCard, string ClientName, DateTime VerificationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, string PreviousVerifySerialNumber)
        {
            // Формирование сертификата
            Guid   DeviceTypeID   = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid();
            string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID);
            string DeviceNumber   = DeviceCard.GetDeviceNumber();

            DeviceNumber = DeviceNumber.Contains("/") == true?DeviceNumber.Replace("/", " (") + " г)" : DeviceNumber;

            // Данные для заполнения закладочных полей
            string FullDeviceType         = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название").ToString() + " " + DeviceTypeName + ",";
            string VerificationDateString = VerificationDate.ToLongDateString();
            int    VerificationInterval   = CalibrationLib.GetVerificationInterval(ApplicationCard.UniversalCard, DeviceTypeID);
            string ValidUntil             = VerificationDate.AddMonths(VerificationInterval).AddDays(-1).ToLongDateString();
            string VerificationMethods    = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Методика поверки").ToString();
            string VerificationScope      = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Объем поверки") == null ? "в полном объеме" : ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Объем поверки").ToString();
            string Suitability            = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Пригодность к применению") == null ? "" : " " + ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Пригодность к применению").ToString();
            string RegNum          = "ГР №" + ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Номер в Госреестре").ToString();
            string AdditionalWares = (AdditionalWaresList.Count > 0 ? "c датчиками " : "-") + AdditionalWaresList.Select(r =>
                                                                                                                         ApplicationCard.UniversalCard.GetItemName(r.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid()) + " № " + (r.GetDeviceNumber().Contains("/") == true ? r.GetDeviceNumber().Replace("/", " (") + " г)" : r.GetDeviceNumber())).Aggregate(AdditionalWaresList.Count == 2 ? " и " : ", ");
            string VerificationMeans = CalibrationLib.GetListOfMeasures(CardScript.Session, DeviceTypeID, false, true);
            // ФИО текущего сотрудника определяется из справочника сотрудников (строка отображения)
            string StaffName = Context.GetCurrentEmployee().FirstName.Substring(0, 1) + "." + Context.GetCurrentEmployee().MiddleName.Substring(0, 1) + ". " + Context.GetCurrentEmployee().LastName;
            // ФИО руководителя отдела Метрологической лаборатории определяется из справочника сотрудников по должности
            StaffEmployee MetrologicalLabManagerEmployee = Context.GetEmployeeByPosition(SKB.Base.Ref.RefServiceCard.Roles.MetrologicalLabManager);
            string        ManagerName = MetrologicalLabManagerEmployee != null?MetrologicalLabManagerEmployee.FirstName.Substring(0, 1) + "." + MetrologicalLabManagerEmployee.MiddleName.Substring(0, 1) + ". " + MetrologicalLabManagerEmployee.LastName : "";

            // Условия поверки
            string TempPath = "";
            WordprocessingDocument ParentDocument = CalibrationLib.GetDocument(CardScript.Session, DeviceCard, CalibrationLib.VerificationProtocolCategoryID, out TempPath);
            Table ParentTable = ParentDocument == null ? null : ParentDocument.GetTable("при следующих значениях влияющих факторов:");

            List <string> Collection = new List <string>();

            if (ParentTable != null)
            {
                for (int i = 1; i < ParentTable.Elements <TableRow>().Count(); i++)
                {
                    Collection.Add(ParentTable.GetCellValue(i, 1) + ": " + ParentTable.GetCellValue(i, 2) + " " + ParentTable.GetCellValue(i, 3) + " ");
                }
            }
            string Factors  = Collection.Count() > 0 ? Collection.Aggregate() : "";
            string Factors2 = "";

            if (Factors.Length > 27)
            {
                int i = Factors.Substring(0, 27).LastIndexOf(" ");
                if (i > 0)
                {
                    Factors2 = Factors.Substring(i);
                    Factors  = Factors.Substring(0, i);
                }
            }

            // Заполнение закладочный полей
            FillBookmarks(Certificate, ValidUntil, FullDeviceType, RegNum, AdditionalWares, PreviousVerifySerialNumber, DeviceNumber, VerificationMethods, VerificationScope, Suitability, VerificationMeans, Factors, Factors2, VerificationDateString, StaffName, ManagerName);

            // Добавление дополнительных данных
            return;
        }
Example #15
0
        public static void FillData(WordprocessingDocument Certificate, ScriptClassBase CardScript, ObjectContext Context,
                                    CardData DeviceCard, string ClientName, DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, DateTime StartDateOfCalibration)
        {
            // Формирование сертификата
            Guid   DeviceTypeID   = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid();
            string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID);
            string DeviceNumber   = DeviceCard.GetDeviceNumber();

            DeviceNumber = DeviceNumber.Contains("/") == true?DeviceNumber.Replace("/", " (") + " г)" : DeviceNumber;

            string DeviceNumber2;

            switch (DeviceTypeName)
            {
            case "ПКР-2М":
                DeviceNumber  = "ПКР-2" + " № " + DeviceNumber;
                DeviceNumber2 = "";
                break;

            case "ПКВ/У3.0-01":
                DeviceNumber  = "ПКВ/У3.0" + " № " + DeviceNumber;
                DeviceNumber2 = "";
                break;

            case "ТК-026":
                DeviceNumber  = " № " + DeviceNumber;
                DeviceNumber2 = "(для ПКВ/М7)";
                break;

            case "ТК-021":
                DeviceNumber  = " № " + DeviceNumber;
                DeviceNumber2 = "(для ПКВ/У3)";
                break;

            default:
                DeviceNumber  = DeviceTypeName + " № " + DeviceNumber;
                DeviceNumber2 = "";
                break;
            }
            // Данные для заполнения закладочных полей
            string FullDeviceType        = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название").ToString();
            string ReceiptDateString     = StartDateOfCalibration.ToLongDateString();
            string CalibrationDateString = CalibrationDate.ToLongDateString();
            string CalibrationMethods    = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Методика поверки").ToString();
            //string CalibrationMeans = ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Средства калибровки").ToString();
            string CalibrationMeans = CalibrationLib.GetListOfMeasures(CardScript.Session, DeviceTypeID, true, false) + ".";
            // Условия калибровки
            string Temperature;
            string Humidity;
            string AtmospherePressure;

            CalibrationLib.GetCalibrationConditions(CardScript.Session, Context, CalibrationDate, out Temperature, out Humidity, out AtmospherePressure);
            // Заполнение закладочный полей
            FillBookmarks(Certificate, FullDeviceType, DeviceNumber, DeviceNumber2, ReceiptDateString, ClientName, CalibrationDateString, CalibrationMethods, Temperature,
                          Humidity, AtmospherePressure, CalibrationMeans);
            //** Заполнение данных о метрологических характеристиках **//
            // Добавление заголовка
            AddTitle(Certificate);
            // Добавление таблицы метрологических характеристик прибора
            TablesCreator Creator = new TablesCreator();

            AddDeviceTables(Certificate, 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))
                    {
                        string WareNumber = Ware.GetDeviceNumber();
                        AddSensorTables(Certificate, CardScript.Session, Creator, WareTypeName, WareNumber, Ware, StartDateOfService);
                    }
                }
            }
            // Добавление дополнительных данных
            AddAdditionalTables(Certificate, Creator, DeviceTypeName);
            return;
        }
Example #16
0
        public static bool Verify(ScriptClassBase CardScript, ObjectContext Context, CardData DeviceCard, Guid Client,
                                  DateTime CalibrationDate, List <CardData> AdditionalWaresList, DateTime StartDateOfService, bool IsNewDevice = false)
        {
            string ErrorText = "";

            Guid   DeviceTypeID   = DeviceCard.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Прибор'").GetString(CardOrd.Properties.Value).ToGuid();
            string DeviceTypeName = ApplicationCard.UniversalCard.GetItemName(DeviceTypeID);
            string DeviceNumber   = DeviceCard.GetDeviceNumber();

            // Наличие в справочнике полного названия прибора
            if (ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Полное название") == null)
            {
                ErrorText = ErrorText + " - Не удалось определить полное название прибора.\n";
            }

            // Наличие в справочнике методики поверки
            if (ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Методика поверки") == null)
            {
                ErrorText = ErrorText + " - Не удалось определить методику поверки для указанного прибора.\n";
            }

            // Наличие в справочнике средств калибровки
            //if (ApplicationCard.UniversalCard.GetItemPropertyValue(DeviceTypeID, "Средства калибровки") == null)
            if (CalibrationLib.GetListOfMeasures(CardScript.Session, DeviceTypeID, true, false) == "-")
            {
                ErrorText = ErrorText + " - Не удалось определить средства калибровки для указанного прибора.\n";
            }

            // Наличие сведений об условиях калибровки на указанную дату калибровки
            ErrorText = ErrorText + CalibrationLib.CheckCalibrationJournal(CardScript, Context, CalibrationDate);


            //** Проверка родительских документов **//
            TablesCreator Creator         = new TablesCreator();
            string        DeviceErrorText = "";

            // Проверка протокола калибровки прибора
            if (Creator.CertificateDeviceTablesCollection.Any(r => r.DeviceTypes.Any(s => s == DeviceTypeName) && r.ParentDocumentCategory == CertificateTableLook.DocumentCategory.CalibrationProtocol))
            {
                DeviceErrorText = CalibrationLib.CheckDocument(CardScript.Session, DeviceCard, StartDateOfService, CalibrationLib.CalibrationProtocolCategoryID, IsNewDevice);
                if (DeviceErrorText != "")
                {
                    ErrorText = ErrorText + " - Не удалось найти данные о калибровке для " + DeviceTypeName + " " + DeviceNumber + ":\n" + DeviceErrorText;
                }
            }

            // Проверка данных измерений для некоторых приборов
            //if (CalibrationLib.MeasuringDataList.Any(r => r == DeviceTypeName))
            if (Creator.CertificateDeviceTablesCollection.Any(r => r.DeviceTypes.Any(s => s == DeviceTypeName) && r.ParentDocumentCategory == CertificateTableLook.DocumentCategory.MeasuringData))
            {
                DeviceErrorText = CalibrationLib.CheckDocument(CardScript.Session, DeviceCard, StartDateOfService, CalibrationLib.MeasuringDataCategoryID, IsNewDevice);
                if (DeviceErrorText != "")
                {
                    ErrorText = ErrorText + " - Не удалось найти данные измерений для " + DeviceTypeName + " " + DeviceNumber + ":\n" + DeviceErrorText;
                }
            }

            // Проверка протоколов приемосдаточных испытаний для датчиков
            if ((AdditionalWaresList != null) && (AdditionalWaresList.Count() > 0))
            {
                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))
                    {
                        string WareNumber = Ware.Sections[CardOrd.Properties.ID].FindRow("@Name = 'Заводской номер прибора'").GetString(CardOrd.Properties.Value).ToString();
                        string WareYear   = Ware.Sections[CardOrd.Properties.ID].FindRow("@Name = '/Год прибора'").GetString(CardOrd.Properties.Value).ToString();
                        WareNumber = WareNumber.Length == 4 ? WareNumber : WareNumber + "/" + WareYear;

                        string SensorsErrorText = CalibrationLib.CheckDocument(CardScript.Session, Ware, StartDateOfService, CalibrationLib.AcceptanceTestingProtocolCategoryID, IsNewDevice);
                        if (SensorsErrorText != "")
                        {
                            ErrorText = ErrorText + " - Не удалось найти данные о приемосдаточных испытаниях для " + WareTypeName + " " + WareNumber + ":\n" + SensorsErrorText;
                        }
                    }
                }
            }
            if (ErrorText == "")
            {
                return(true);
            }
            else
            {
                XtraMessageBox.Show("Не удалось сформировать 'Сертификат о калибровке'. Обнаружены следующие ошибки:\n\n" + ErrorText +
                                    "\nОбратитесь к администратору системы.", "", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                return(false);
            }
        }
Example #17
0
        /// <summary>
        /// Инициализирует карточку по заданным данным.
        /// </summary>
        /// <param name="ClassBase">Скрипт карточки.</param>
        public MarketingFilesCard(ScriptClassBase ClassBase)
            : base(ClassBase)
        {
            try
            {
                /* Назначение прав */
                NeedAssign      = CardScript.CardControl.ActivateFlags.HasFlag(ActivateFlags.New) || CardScript.CardControl.ActivateFlags.HasFlag(ActivateFlags.NewFromTemplate);
                NeedSynchronize = false;

                Boolean Open = true;
                if (!NeedAssign)
                {
                    if (CardScript.CardControl.ModeId == RefMarketingFilesCard.Modes.OpenFiles || CardScript.CardControl.ModeId.IsEmpty())
                    {
                        if (MyHelper.OpenFolder(FolderPath).HasValue)
                        {
                            Open = false;
                            CardScript.CardFrame.Close();
                        }
                    }
                    else if (CardScript.CardControl.ModeId == RefMarketingFilesCard.Modes.OpenCardAndFiles)
                    {
                        MyHelper.OpenFolder(FolderPath);
                    }
                }

                if (Open)
                {
                    /* Получение рабочих объектов */
                    _Control_Categories = ICardControl.FindPropertyItem <CollectionControlView>(RefMarketingFilesCard.Categories.Alias);
                    _Button_Upload      = ICardControl.FindPropertyItem <SimpleButton>(RefMarketingFilesCard.Buttons.Upload);
                    _Edit_Files         = ICardControl.FindPropertyItem <TextEdit>(RefMarketingFilesCard.MainInfo.Files);
                    ArchiveTempPath     = CardScript.Session.GetArchiveTempPath();
                    if (ICardControl.ContainsControl(RefMarketingFilesCard.EquipmentSorts.Alias))
                    {
                        Control_EquipmentSorts = ICardControl.FindPropertyItem <CollectionControlView>(RefMarketingFilesCard.EquipmentSorts.Alias);
                    }
                    if (ICardControl.ContainsControl(RefMarketingFilesCard.EquipmentTypes.Alias))
                    {
                        Control_EquipmentTypes = ICardControl.FindPropertyItem <CollectionControlView>(RefMarketingFilesCard.EquipmentTypes.Alias);
                    }
                    if (ICardControl.ContainsControl(RefMarketingFilesCard.Manufacturers.Alias))
                    {
                        Control_Manufacturers = ICardControl.FindPropertyItem <CollectionControlView>(RefMarketingFilesCard.Manufacturers.Alias);
                    }
                    if (!Control_EquipmentSorts.IsNull() && !Control_EquipmentTypes.IsNull())
                    {
                        Selector_EquipmentTypes = new SelectHelper(Context, SelectionType.BaseUniversalItem, Control_EquipmentTypes.TypeIds[0].NodeId, false,
                                                                   new List <String>()
                        {
                            Dynamic.CardBaseUniversalItem.EquipmentDirectory.ID + "\t" + Dynamic.CardBaseUniversalItem.EquipmentDirectory.Sort
                        },
                                                                   new List <String>()
                        {
                            Control_EquipmentSorts.SelectedItems.Select(item => item.ObjectId.ToUpper()).Aggregate("\t")
                        }, false);
                    }

                    /* Привязка методов */
                    if (!IsReadOnly)
                    {
                        CardScript.CardControl.CardClosed -= CardControl_CardClosed;
                        CardScript.CardControl.CardClosed += CardControl_CardClosed;
                        CardScript.CardControl.Saved      -= CardControl_Saved;
                        CardScript.CardControl.Saved      += CardControl_Saved;
                        CardScript.CardControl.Saving     -= CardControl_Saving;
                        CardScript.CardControl.Saving     += CardControl_Saving;
                        _Button_Upload.Click    -= Button_Upload_Click;
                        _Button_Upload.Click    += Button_Upload_Click;
                        _Edit_Files.DoubleClick -= Edit_Files_DoubleClick;
                        _Edit_Files.DoubleClick += Edit_Files_DoubleClick;
                        if (!Control_EquipmentSorts.IsNull() && !Control_EquipmentTypes.IsNull())
                        {
                            Control_EquipmentSorts.ValueChanged             -= Control_EquipmentSorts_ValueChanged;
                            Control_EquipmentSorts.ValueChanged             += Control_EquipmentSorts_ValueChanged;
                            Control_EquipmentTypes.CustomChoosingValue      -= Control_EquipmentTypes_CustomChoosingValue;
                            Control_EquipmentTypes.CustomChoosingValue      += Control_EquipmentTypes_CustomChoosingValue;
                            Control_EquipmentTypes.CustomizeTypeSearchQuery -= Control_EquipmentTypes_CustomizeTypeSearchQuery;
                            Control_EquipmentTypes.CustomizeTypeSearchQuery += Control_EquipmentTypes_CustomizeTypeSearchQuery;
                        }
                    }

                    Customize();
                    RefreshChanges();
                }
            }
            catch (Exception Ex) { CallError(Ex); }
        }