Ejemplo n.º 1
0
        public static Guid Ссылка(this ОтражениеВУСН Значение)
        {
            switch (Значение)
            {
            case ОтражениеВУСН.Принимаются: return(Принимаются);

            case ОтражениеВУСН.НеПринимаются: return(НеПринимаются);

            case ОтражениеВУСН.аспределяются: return(аспределяются);
            }
            return(Guid.Empty);
        }
Ejemplo n.º 2
0
 public static ОтражениеВУСН Получить(this ОтражениеВУСН Значение, Guid Ссылка)
 {
     if (Ссылка == Принимаются)
     {
         return(ОтражениеВУСН.Принимаются);
     }
     else if (Ссылка == НеПринимаются)
     {
         return(ОтражениеВУСН.НеПринимаются);
     }
     else if (Ссылка == аспределяются)
     {
         return(ОтражениеВУСН.аспределяются);
     }
     return(ОтражениеВУСН.ПустаяСсылка);
 }
Ejemplo n.º 3
0
 public static byte[] Ключ(this ОтражениеВУСН Значение)
 {
     return(Ссылка(Значение).ToByteArray());
 }
Ejemplo n.º 4
0
 public static ОтражениеВУСН Получить(this ОтражениеВУСН Значение, byte[] Ссылка)
 {
     return(Получить(Значение, new Guid(Ссылка)));
 }
        }                                                                                                                            //Вид начислений оплаты труда по статье255 НК
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для справочников.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Reference155(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_ParentIDRRef
						,_Folder
						,_Description
						,_Fld1876RRef
						,_Fld1877RRef
						,_Fld1878RRef
						,_Fld1879RRef
						,_Fld1880RRef
						,_Fld1881RRef
						,_Fld1882RRef
						,_Fld1883RRef
						,_Fld1884RRef
						,_Fld1885RRef
						,_Fld1886RRef
						,_Fld1887RRef
						,_Fld1888RRef
						,_Fld1889RRef
						,_Fld1890RRef
						,_Fld1891RRef
						,_Fld1892RRef
						,_Fld1893RRef
						,_Fld26611RRef
						,_Fld26612RRef
						,_Fld26613RRef)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Предопределенный
						,@Родитель
						,@ЭтоГруппа
						,@Наименование
						,@СчетДт
						,@СубконтоДт1
						,@СубконтоДт2
						,@СубконтоДт3
						,@СпособРаспределенияЗатрат
						,@СчетКт
						,@СубконтоКт1
						,@СубконтоКт2
						,@СубконтоКт3
						,@СчетДтНУ
						,@СубконтоДтНУ1
						,@СубконтоДтНУ2
						,@СубконтоДтНУ3
						,@СчетКтНУ
						,@СубконтоКтНУ1
						,@СубконтоКтНУ2
						,@СубконтоКтНУ3
						,@ОтражениеВУСН
						,@ПодразделениеДт
						,@ПодразделениеКт
						,@ВидНачисленийОплатыТрудаПоСтатье255НК)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Reference155
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_IsMetadata	= @Предопределенный
						,_ParentIDRRef	= @Родитель
						,_Folder	= @ЭтоГруппа
						,_Description	= @Наименование
						,_Fld1876RRef	= @СчетДт
						,_Fld1877RRef	= @СубконтоДт1
						,_Fld1878RRef	= @СубконтоДт2
						,_Fld1879RRef	= @СубконтоДт3
						,_Fld1880RRef	= @СпособРаспределенияЗатрат
						,_Fld1881RRef	= @СчетКт
						,_Fld1882RRef	= @СубконтоКт1
						,_Fld1883RRef	= @СубконтоКт2
						,_Fld1884RRef	= @СубконтоКт3
						,_Fld1885RRef	= @СчетДтНУ
						,_Fld1886RRef	= @СубконтоДтНУ1
						,_Fld1887RRef	= @СубконтоДтНУ2
						,_Fld1888RRef	= @СубконтоДтНУ3
						,_Fld1889RRef	= @СчетКтНУ
						,_Fld1890RRef	= @СубконтоКтНУ1
						,_Fld1891RRef	= @СубконтоКтНУ2
						,_Fld1892RRef	= @СубконтоКтНУ3
						,_Fld1893RRef	= @ОтражениеВУСН
						,_Fld26611RRef	= @ПодразделениеДт
						,_Fld26612RRef	= @ПодразделениеКт
						,_Fld26613RRef	= @ВидНачисленийОплатыТрудаПоСтатье255НК
						Where _IDRRef = @Ссылка"                        ;
                    }
                    Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray());
                    /*Команда.Parameters.AddWithValue("Версия", Версия);*/
                    Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления);
                    Команда.Parameters.AddWithValue("Предопределенный", Предопределенный);
                    Команда.Parameters.AddWithValue("Родитель", одитель);
                    Команда.Parameters.AddWithValue("ЭтоГруппа", ЭтоГруппа?new byte[] { 0 }:new byte[] { 1 });
                    Команда.Parameters.AddWithValue("Наименование", Наименование);
                    Команда.Parameters.AddWithValue("СчетДт", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоДт1", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоДт2", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоДт3", Guid.Empty);
                    Команда.Parameters.AddWithValue("СпособРаспределенияЗатрат", СпособРаспределенияЗатрат.Ссылка);
                    Команда.Parameters.AddWithValue("СчетКт", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоКт1", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоКт2", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоКт3", Guid.Empty);
                    Команда.Parameters.AddWithValue("СчетДтНУ", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоДтНУ1", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоДтНУ2", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоДтНУ3", Guid.Empty);
                    Команда.Parameters.AddWithValue("СчетКтНУ", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоКтНУ1", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоКтНУ2", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоКтНУ3", Guid.Empty);
                    Команда.Parameters.AddWithValue("ОтражениеВУСН", ОтражениеВУСН.Ключ());
                    Команда.Parameters.AddWithValue("ПодразделениеДт", ПодразделениеДт.Ссылка);
                    Команда.Parameters.AddWithValue("ПодразделениеКт", ПодразделениеКт.Ссылка);
                    Команда.Parameters.AddWithValue("ВидНачисленийОплатыТрудаПоСтатье255НК", ВидНачисленийОплатыТрудаПоСтатье255НК.Ключ());
                    Команда.ExecuteNonQuery();
                }
            }
        }