Example #1
0
        /// <summary>
        /// Обновление [Nu65]
        /// </summary>
        public static long Update(long id, long productId, string codeProduct, long measureId, string oldDbCodeMeasure,
                                  long materialId, string codeMaterial, string auxiliaryMaterialConsumptionRate, string workGuildId,
                                  string signMaterial, string parcelId, string unitValidation, DateTime date, string flowRate, string oldWorkGuildId,
                                  string oldParcelId)
        {
            var mssqlServer = Properties.Settings.Default.SqlServerNu65;
            var mssqlDb     = Properties.Settings.Default.SqlDbNu65Db;

            try
            {
                using (var mssqlConnection = DbControl.GetConnection(mssqlServer, mssqlDb))
                {
                    mssqlConnection.TryConnectOpen();
                    using (var mssqlTransaction = mssqlConnection.BeginTransaction())
                    {
                        // Обновление [Nu65Table] в MSSQL
                        Nu65StorageMssql.Update(id, measureId, auxiliaryMaterialConsumptionRate, workGuildId,
                                                signMaterial, parcelId, unitValidation, flowRate, mssqlConnection, mssqlTransaction);

                        var foxproDbPath = Properties.Settings.Default.FoxproDbFolder_Fox60_Arm_Base;
                        using (var oleDbConnection = DbControl.GetConnection(foxproDbPath))
                        {
                            oleDbConnection.TryConnectOpen();

                            // Проверка кодировок таблиц и соединения с таблицами FoxPro
                            // Проверка соединений требуется, так как транзации с этими таблицами не работают
                            oleDbConnection.VerifyInstalledEncoding("nu65a");
                            Nu65StorageFoxpro.TestConnection(oleDbConnection);

                            // Обновление [Nu65a] в таблице FoxPro
                            Nu65StorageFoxpro.Update(oleDbConnection, codeProduct, codeMaterial,
                                                     oldDbCodeMeasure, auxiliaryMaterialConsumptionRate, workGuildId,
                                                     signMaterial, parcelId, unitValidation, 0, oldWorkGuildId, oldParcelId);

                            // Подтверждение транзакции MSSQL
                            mssqlTransaction.Commit();
                        }
                    }
                }

                return(0);
            }
            catch (DbException ex) // DbException - суперкласс для SqlException и OleDbException
            {
                throw DbControl.HandleKnownDbFoxProAndMssqlServerExceptions(ex);
            }
        }
Example #2
0
        /// <summary>
        /// Удаление [Материала для продукта]
        /// </summary>
        public static bool Delete(Material material, Product editedProduct)
        {
            var mssqlServer = Properties.Settings.Default.SqlServerNu65;
            var mssqlDb     = Properties.Settings.Default.SqlDbNu65Db;

            try
            {
                using (var mssqlConnection = DbControl.GetConnection(mssqlServer, mssqlDb))
                {
                    mssqlConnection.TryConnectOpen();
                    using (var mssqlTransaction = mssqlConnection.BeginTransaction())
                    {
                        // Удаление записи о материале в MSSQL таблице
                        Nu65StorageMssql.DeleteById(material.Nu65TableId, mssqlConnection, mssqlTransaction);

                        var foxproDbPath = Properties.Settings.Default.FoxproDbFolder_Fox60_Arm_Base;


                        using (var oleDbConnection = DbControl.GetConnection(foxproDbPath))
                        {
                            oleDbConnection.TryConnectOpen();
                            Nu65StorageFoxpro.TestConnection(oleDbConnection);

                            // Удаление записи о материале в FoxPro таблице
                            Nu65StorageFoxpro.DeleteByMaterialCode(oleDbConnection, editedProduct.DisplayCodeString, material.CodeMaterial,
                                                                   material.WorkGuildId, material.ParcelId);

                            // Подтверждение транзакции MSSQL
                            mssqlTransaction.Commit();
                            return(true);
                        }
                    }
                }
            }
            catch (DbException ex) // DbException - суперкласс для SqlException и OleDbException
            {
                throw DbControl.HandleKnownDbFoxProAndMssqlServerExceptions(ex);
            }
        }
Example #3
0
        /// <summary>
        /// Обработка нажатия мышки на строку DataGrid поиска сущностей
        /// </summary>
        private void SearchDataGrid_OnPreviewMouseDown(object senderIsDataGrid, MouseButtonEventArgs eventArgs)
        {
            // DataGrid поиска сущности
            var searchDataGrid = senderIsDataGrid as DataGrid;

            if (searchDataGrid == null)
            {
                return;
            }
            // Grid-обёртка DataGrid и TextBox поиска
            var searchWrapperGrid = VisualTreeHelper.GetParent(searchDataGrid) as Grid;

            if (searchWrapperGrid == null)
            {
                return;
            }
            // TextBox поиска/добавления
            var searchTextBox = searchWrapperGrid.Children.OfType <TextBox>().FirstOrDefault();

            if (searchTextBox == null)
            {
                return;
            }
            // Выбранная строка (объект) DataGrid поиска сущности
            var rawSelectedItem = searchDataGrid.SelectedItem;

            if (rawSelectedItem == null)
            {
                return;
            }
            string displayed;
            var    selectedItemType = rawSelectedItem.GetType();

            if (selectedItemType == typeof(Product)) // Если тип найденой сущности: [Изделие]
            {
                _selectedProduct1             = (Product)rawSelectedItem;
                Product1CodeLabel.Content     = _selectedProduct1.CodeProduct.ToString(CultureInfo.CurrentCulture);
                Product1NameLabel.Content     = _selectedProduct1.Name;
                Product1MarkLabel.Content     = _selectedProduct1.Mark;
                MaterialWrapperGrid.IsEnabled = true;
                MaterialCodeLabel.Content     = string.Empty;
                MaterialNameLabel.Content     = string.Empty;
                MaterialMarkLabel.Content     = string.Empty;
                MaterialGostLabel.Content     = string.Empty;
                MeasureLabel.Content          = string.Empty;
                AuxiliaryMaterialConsumptionRateLabel.Content = string.Empty;
                _searchMaterialStorage = Nu65StorageMssql.GetMaterialsByProductIdWhithMeasure(_selectedProduct1.Id);
                _searchMaterialStorage.Sort();
                SearchMaterialDataGrid.ItemsSource = _searchMaterialStorage;
                displayed = _selectedProduct1.CodeProduct.ToString(CultureInfo.CurrentCulture);
            }
            else if (selectedItemType == typeof(Material)) // Если тип найденой сущности: [Материал]
            {
                _selectedMaterial         = (Material)rawSelectedItem;
                MaterialCodeLabel.Content = _selectedMaterial.CodeMaterial.ToString(CultureInfo.CurrentCulture);
                MaterialNameLabel.Content = _selectedMaterial.Name;
                MaterialMarkLabel.Content = _selectedMaterial.Profile;
                MaterialGostLabel.Content = _selectedMaterial.Gost;
                MeasureLabel.Content      = _selectedMaterial.Measure.ShortName;
                WorkGuildLabel.Content    = _selectedMaterial.WorkGuildId;
                RegionLabel.Content       = _selectedMaterial.ParcelId;
                AuxiliaryMaterialConsumptionRateLabel.Content = _selectedMaterial.AuxiliaryMaterialConsumptionRate;
                displayed = _selectedMaterial.CodeMaterial.ToString(CultureInfo.CurrentCulture);
            }
            else
            {
                displayed = rawSelectedItem.ToString();
            }
            // Вывод выбраного значения в TextBox поиска/добавления
            searchTextBox.Text = displayed;

            // Перевод фокуса ввода на нижележащий визуальный элемент после [DataGrid] поиска сущности
            var request = new TraversalRequest(FocusNavigationDirection.Down)
            {
                Wrapped = false
            };

            eventArgs.Handled = true;
            if (searchDataGrid.MoveFocus(request))
            {
                searchDataGrid.Visibility = Visibility.Collapsed;
            }
        }
Example #4
0
 /// <summary>
 /// Получение коллекции [Материалов] продукта с ед. изм.
 /// </summary>
 public static List <Material> GetMaterialsByProductIdWhithMeasure(long productId)
 {
     return(Nu65StorageMssql.GetMaterialsByProductIdWhithMeasure(productId));
 }
Example #5
0
 /// <summary>
 /// Получение коллекции [Nu65View]
 /// </summary>
 public static List <Nu65View> GetAllView()
 {
     return(Nu65StorageMssql.GetAllView());
 }
Example #6
0
 /// <summary>
 /// Получение коллекции [Nu65]
 /// </summary>
 public static List <Nu65> GetAll()
 {
     return(Nu65StorageMssql.GetAll());
 }
Example #7
0
 /// <summary>
 /// Проверка на дублиткат
 /// </summary>
 public static bool IsDublicate(long productId, long materialId, string workGuildId, string parcelId)
 {
     return(Nu65StorageMssql.IsDublicate(productId, materialId, workGuildId, parcelId));
 }