/// <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); }
/// <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); }