Пример #1
0
        /// <summary>
        /// Проверяет существование клиента, поставщика и рабочего на основе данных, полученных из строки DataGridView.
        /// </summary>
        /// <param name="realizationViewModel">Модель представления, содержащая в себе идентификаторы связанных таблиц с таблицей Реализация.</param>
        /// <returns></returns>
        private bool GetInfoHandleNotOK(RealizationEntitiesIDsVM realizationViewModel)
        {
            bool handleNotOK = false;
            int  clientId    = realizationViewModel.ClientID;
            int  supplierId  = realizationViewModel.SupplierID;
            int  seniorId    = realizationViewModel.SeniorID;
            int  productId   = realizationViewModel.ProductID;

            if (clientId == 0)
            {
                MessageBox.Show("Заказчик не найден", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                handleNotOK = true;
                return(handleNotOK);
            }
            if (supplierId == 0)
            {
                MessageBox.Show("Поставщик не найден", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                handleNotOK = true;
                return(handleNotOK);
            }
            if (seniorId == 0)
            {
                MessageBox.Show("Рабочий не найден", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                handleNotOK = true;
                return(handleNotOK);
            }
            if (productId == 0)
            {
                MessageBox.Show("Продукт не найден", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                handleNotOK = true;
                return(handleNotOK);
            }

            return(handleNotOK);
        }
Пример #2
0
        /// <summary>
        /// Возвращает новую/обновленную реализацию на основе данных, введенных в строке DataGridView
        /// </summary>
        /// <param name="currentRow">Строка, в которую были введены новые/обновленные данные.</param>
        /// <returns></returns>
        private Realization GetRealizationInfo(ref DataGridViewRow currentRow)
        {
            RealizationEntitiesIDsVM realizationViewModel = new RealizationEntitiesIDsVM()
            {
                ClientID      = clientController.GetClientIdByPhone(currentRow.Cells["Телефон заказчика"].Value.ToString()),
                SupplierID    = supplierController.GetSupplierIdByPhone(currentRow.Cells["Телефон поставщика"].Value.ToString()),
                RealizationID = realizationController.GetRealizationIdByNumber(currentRow.Cells["Номер договора"].Value.ToString()),
                SeniorID      = workerController.GetWorkerIdByPhone(currentRow.Cells["Телефон работника"].Value.ToString()),
                ProductID     = productController.GetProductIdByName(currentRow.Cells["Наименование продукта"].Value.ToString())
            };

            if (GetInfoHandleNotOK(realizationViewModel))
            {
                return(null);
            }

            string currentNumberRealization = currentRow.Cells["Номер договора"].Value.ToString();

            if (currentNumberRealization.Length > 8)
            {
                MessageBox.Show("Номер договора не должен превышать больше 8 символов");
                return(null);
            }
            else if (currentNumberRealization.Length < 8)
            {
                CreateNumberRealization(ref currentNumberRealization);
            }

            decimal     change      = GetChange((decimal)currentRow.Cells["Оплачено"].Value, (decimal)currentRow.Cells["Сумма к оплате"].Value);
            decimal     cost        = (decimal)currentRow.Cells["Стоимость"].Value;
            int         discount    = Convert.ToInt32(currentRow.Cells["Скидка (%)"].Value);
            decimal     amountDue   = GetAmountDue(cost, discount);
            Realization realization = new Realization()
            {
                ID             = (int)currentRow.Cells["ID"].Value,
                Number         = currentNumberRealization,
                RealizeDate    = Convert.ToDateTime(currentRow.Cells["Срок реализации"].Value),
                Cost           = (decimal)currentRow.Cells["Стоимость"].Value,
                Discount       = Convert.ToInt32(currentRow.Cells["Скидка (%)"].Value),
                AmountDue      = amountDue,
                PaidOf         = (decimal)currentRow.Cells["Оплачено"].Value,
                Change         = change,
                AmountProducts = (int)currentRow.Cells["Кол-во продукции"].Value,
                Realized       = (bool)currentRow.Cells["Реализовано"].Value,
                ClientID       = realizationViewModel.ClientID,
                SupplierID     = realizationViewModel.SupplierID,
                SeniorID       = realizationViewModel.SeniorID,
                ProductID      = realizationViewModel.ProductID
            };

            if (CellsIsNull(realization))
            {
                MessageBox.Show("Заполните все поля!");
                return(null);
            }

            return(realization);
        }