/// <summary>
        /// Логика формирование листа записей отчета [Печать по изделиям в разрезе детале-операций(сжатая)]
        /// </summary>
        public static List <PrintingOfProsuctInContextOfDetalOperations> GetPrintingOfProsuctInContextOfDetalOperations(
            decimal code, WorkGuild workGuild)
        {
            var reportResultList = new List <PrintingOfProsuctInContextOfDetalOperations>();

            var buildSqlQuery = string.Format(BodySqlQuery, code);

            if (workGuild != null)
            {
                buildSqlQuery += "AND " + string.Format(SqlQueryKc, workGuild.Id);
            }
            buildSqlQuery += SqlQueryGroup;

            var sqlResult = DataTableHelper.LoadDataTableByQuery(DbPathTrudnorm, buildSqlQuery, "SqlResult");

            foreach (var row in sqlResult.Select())
            {
                var productId   = (decimal)row["kizd"];
                var productMark = row["izdMark"] != DBNull.Value ? ((string)row["izdMark"]).Trim() : string.Empty;
                var productName = row["izdName"] != DBNull.Value ? ((string)row["izdName"]).Trim() : string.Empty;
                var detalId     = (decimal)row["detal"];
                var detalName   = row["detalName"] != DBNull.Value ? ((string)row["detalName"]).Trim() : string.Empty;
                var detalMark   = row["detalMark"] != DBNull.Value ? ((string)row["detalMark"]).Trim() : string.Empty;
                var kc          = (decimal)row["kc"];
                var vstk        = (decimal)row["vstksum"];
                var rstk        = (decimal)row["rstksum"];
                var kol         = (decimal)row["kol"];
                var operac      = (decimal)row["operac"];
                var tehnoper    = (decimal)row["tehoper"];

                var operationName = row["tehnoperName"] != DBNull.Value
                        ? ((string)row["tehnoperName"]).Trim()
                        : string.Empty;

                reportResultList.Add(new PrintingOfProsuctInContextOfDetalOperations()
                {
                    ProductId     = productId,
                    ProductName   = productName,
                    ProductMark   = productMark,
                    DetalId       = detalId,
                    DetalName     = detalName,
                    DetalMark     = detalMark,
                    Kc            = kc,
                    Kol           = kol,
                    Operac        = operac,
                    Tehoper       = tehnoper,
                    OperationName = operationName,
                    Vstk          = vstk,
                    Rstk          = rstk,
                });
            }

            reportResultList.Sort();
            return(reportResultList);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Логика формирование листа записей отчета [Расчет кол-ва рабочих по цехам на выпуск]
        /// </summary>
        public static List <CalculationNumberWorkguildWorkersRealase> GetCalculationNumberWorkguildWorkersRealases
            (WorkGuild workGuild, Area area)
        {
            var reportResultList = new List <CalculationNumberWorkguildWorkersRealase>();
            var buildSqlQuery    = BodySqlQuery;

            if (workGuild != null)
            {
                buildSqlQuery += string.Format(SqlQueryWorkGuild, workGuild.Id);
            }
            if (workGuild != null && area != null)
            {
                buildSqlQuery += string.Format(SqlQueryArea, area.Id);
            }

            buildSqlQuery += string.Format(SqlGroupQuery);

            var sqlResult = DataTableHelper.LoadDataTableByQuery(DbPathTrudnorm, buildSqlQuery, "SqlResult");

            foreach (var row in sqlResult.Select())
            {
                var productId      = (decimal)row["kizd"];
                var productMark    = row["obozn"] != DBNull.Value ? ((string)row["obozn"]).Trim() : string.Empty;
                var productName    = row["name"] != DBNull.Value ? ((string)row["name"]).Trim() : string.Empty;
                var professionId   = (decimal)row["prof"];
                var professionName = row["professionName"] != DBNull.Value
                    ? ((string)row["professionName"]).Trim()
                    : string.Empty;
                var vstk    = (decimal)row["vstksum"];
                var rstk    = (decimal)row["rstksum"];
                var prtnorm = (decimal)row["prtnormsum"];
                var nadb    = (decimal)row["nadbsum"];
                var vypusk  = (decimal)row["vypusk"];

                reportResultList.Add(new CalculationNumberWorkguildWorkersRealase()
                {
                    ProfessionId   = professionId,
                    ProfessionName = professionName,
                    ProductId      = productId,
                    ProductMark    = productMark,
                    ProductName    = productName,
                    Vstk           = vstk,
                    Rstk           = rstk,
                    Prtnorm        = prtnorm,
                    Nadb           = nadb,
                    Vypusk         = vypusk
                });
            }

            reportResultList.Sort();
            return(reportResultList);
        }
        /// <summary>
        /// Получение коллекции [Цехов предприятия]
        /// </summary>
        public static List <WorkGuild> GetAll()
        {
            var          dbFolder = Properties.Settings.Default.FoxProDbFolder_Foxpro_Trudnorm;
            const string query    = "SELECT DISTINCT kc FROM [Advx03] WHERE kc=2 or kc=3 or kc=4 or kc=5";

            var workGuilds = new List <WorkGuild>();

            try
            {
                using (var connection = DbControl.GetConnection(dbFolder))
                {
                    connection.TryConnectOpen();
                    // Проверки наличия установленных кодировок в DBF-файлах и проверки соединений с этими файлами
                    connection.VerifyInstalledEncoding("Advx03");

                    using (var oleDbCommand = new OleDbCommand(query, connection))
                    {
                        using (var reader = oleDbCommand.ExecuteReader())
                        {
                            while (reader != null && reader.Read())
                            {
                                var id        = reader.GetDecimal(0);
                                var workGuild = new WorkGuild {
                                    Id = id
                                };
                                workGuilds.Add(workGuild);
                            }
                        }
                    }
                }

                return(workGuilds);
            }
            catch (DbException ex)
            {
                throw DbControl.HandleKnownDbFoxProAndMssqlServerExceptions(ex);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Нажатие кнопки [Подтверждение]
        /// </summary>
        private void ConfirmButton_OnClick(object senderIsButton, RoutedEventArgs eventArgs)
        {
            // Валидация полей
            if (_isPeriod)
            {
                var isMonthPeriod = MonthPeriodRadioButton.IsChecked == true;
                var isYearPeriod  = YearPeriodRadioButton.IsChecked == true;
                var isPeriodDate  = PeriodRadioButton.IsChecked == true;
                if (!isMonthPeriod && !isYearPeriod && !isPeriodDate)
                {
                    const string           errorMessage = "Выберите период";
                    const MessageBoxButton buttons      = MessageBoxButton.OK;
                    const MessageBoxImage  messageType  = MessageBoxImage.Error;
                    MessageBox.Show(errorMessage, PageLiterals.HeaderValidation, buttons, messageType);
                    return;
                }

                if (isMonthPeriod || isYearPeriod)
                {
                    _specifiedDateTime = DatePicker.SelectedDate;
                }
                else
                {
                    _specifiedDateTimeStart = DateStartPicker.SelectedDate;
                    _specifiedDateTimeEnd   = DateEndPicker.SelectedDate;
                }
            }
            if (_isMonthOrYear)
            {
                var isMonth = MonthRadioButton.IsChecked == true;
                var isYear  = YearRadioButton.IsChecked == true;
                if (!isMonth && !isYear)
                {
                    const string           errorMessage = "Выберите период";
                    const MessageBoxButton buttons      = MessageBoxButton.OK;
                    const MessageBoxImage  messageType  = MessageBoxImage.Error;
                    MessageBox.Show(errorMessage, PageLiterals.HeaderValidation, buttons, messageType);
                    return;
                }
            }
            var isValidFields = IsValidFieldsWithShowMessageOtherwise();

            if (!isValidFields)
            {
                return;
            }
            if (_isMonthOrYear)
            {
                var isMonth = MonthRadioButton.IsChecked == true;
                if (isMonth)
                {
                    _monthOrYear = "m";
                }
                else
                {
                    _monthOrYear = "y";
                }
            }
            if (_isWorkGuild)
            {
                const WorkGuild allWorkGuilds  = null;
                var             isAllWorkGuild = WarehouseAllRadioButton.IsChecked == true;
                _specifiedWorkGuild = isAllWorkGuild ? allWorkGuilds : WorkGuildsComboBox.SelectedItem as WorkGuild;
            }
            if (_isWarehouse)
            {
                const Warehouse allWarehouses  = null;
                var             isAllWarehouse = WarehouseAllRadioButton.IsChecked == true;
                _specifiedWarehouse = isAllWarehouse ? allWarehouses : WarehousesComboBox.SelectedItem as Warehouse;
            }
            if (_isDate)
            {
                _specifiedDateTime = DatePicker.SelectedDate ?? DateTime.Today;
            }
            if (_isDatePeriod)
            {
                _specifiedDateTimeStart = DateStartPicker.SelectedDate;
                _specifiedDateTimeEnd   = DateEndPicker.SelectedDate;
            }
            if (_isMonthYear)
            {
                var nullableMonthKeyValuePair = MonthComboBox.SelectedItem as KeyValuePair <int, string>?;
                var month = nullableMonthKeyValuePair == null
                                        ? (int?)null
                                        : ((KeyValuePair <int, string>)nullableMonthKeyValuePair).Key;
                var year = YearIntegerUpDown.Value;

                _specifiedMonthAndYear = new Tuple <int?, int?>(month, year);
            }
            DialogResult = true;
            Close();
        }
        /// <summary>
        /// Логика формирование листа записей отчета [Печать по изделиям в разрезе деталей]
        /// </summary>
        public static List <PrintingOfProsuctInContextOfDetails> GetPrintingOfProsuctInContextOfDetails(Product product,
                                                                                                        WorkGuild workGuild)
        {
            var reportResultList = new List <PrintingOfProsuctInContextOfDetails>();

            var buildSqlQuery = BodySqlQuery;

            if (product != null)
            {
                buildSqlQuery += "WHERE " + string.Format(SqlQueryKizd, product.Id);
            }
            if (workGuild != null && product == null)
            {
                buildSqlQuery += "WHERE " + string.Format(SqlQueryKc, workGuild.Id);
            }
            else if (workGuild != null)
            {
                buildSqlQuery += "AND " + string.Format(SqlQueryKc, workGuild.Id);
            }
            buildSqlQuery += SqlQueryGroup;

            var sqlResult = DataTableHelper.LoadDataTableByQuery(DbPathTrudnorm, buildSqlQuery, "SqlResult");

            foreach (var row in sqlResult.Select())
            {
                var productId   = (decimal)row["kizd"];
                var productMark = row["izdMark"] != DBNull.Value ? ((string)row["izdMark"]).Trim() : string.Empty;
                var productName = row["izdName"] != DBNull.Value ? ((string)row["izdName"]).Trim() : string.Empty;
                var detalId     = (decimal)row["detal"];
                var detalName   = row["detalName"] != DBNull.Value ? ((string)row["detalName"]).Trim() : string.Empty;
                var detalMark   = row["detalMark"] != DBNull.Value ? ((string)row["detalMark"]).Trim() : string.Empty;
                var kc          = (decimal)row["kc"];
                var vstk        = (decimal)row["vstksum"];
                var rstk        = (decimal)row["rstksum"];
                var kol         = (decimal)row["kol"];

                var flag = false;

                foreach (var item in reportResultList)
                {
                    if (item.ProductId == productId && item.DetalId == detalId &&
                        item.Kc == kc)
                    {
                        item.Vstk += vstk;
                        item.Rstk += rstk;
                        flag       = true;
                    }
                }

                if (!flag)
                {
                    reportResultList.Add(new PrintingOfProsuctInContextOfDetails()
                    {
                        ProductId   = productId,
                        ProductName = productName,
                        ProductMark = productMark,
                        DetalId     = detalId,
                        DetalName   = detalName,
                        DetalMark   = detalMark,
                        Kc          = kc,
                        Kol         = kol,
                        Vstk        = vstk,
                        Rstk        = rstk
                    });
                }
            }
            reportResultList.Sort();
            return(reportResultList);
        }