private void btnSave_Click(object sender, EventArgs e) { // перебираем строки oCell int nCnt = 0; bool bDeleteHole = chkDeleteHole.Checked; // очистить результаты прошлой неудачной попытки удалени¤ foreach (DataRow r in oCell.MainTable.Rows) { if (Convert.ToInt32(r["ID"]) < 0) { r["ID"] = -Convert.ToInt32(r["ID"]); } } oCell.ClearError(); if (RFMMessage.MessageBoxYesNo("¬ыполн¤етс¤ попытка удалени¤ " + RFMPublic.RFMUtilities.Declen(oCell.MainTable.Rows.Count, "¤чейки", "¤чеек", "¤чеек") + ".\n" + "ѕродолжить?") == DialogResult.Yes) { nCnt = oCell.Delete("TEST", bDeleteHole); if (nCnt > 0) { if (RFMMessage.MessageBoxYesNo("ћожно удалить " + RFMUtilities.Declen(nCnt, "¤чейку", "¤чейки", "¤чеек") + ".\n" + "¬ыполнить удаление?") == DialogResult.Yes) { nCnt = oCell.Delete("DELETE", bDeleteHole); if (nCnt > 0) { RFMMessage.MessageBoxInfo("”далено: " + RFMUtilities.Declen(nCnt, "¤чейка", "¤чейки", "¤чеек") + "."); } else { RFMMessage.MessageBoxInfo("ячейки не были удалены..."); } } } else { RFMMessage.MessageBoxError("ячейки не могут быть удалены..."); } if (oCell.ErrorNumber == 0 && nCnt > 0) { DialogResult = DialogResult.Yes; Dispose(); } } }
private void btnSave_Click(object sender, EventArgs e) { DateTime dDate = dtpDate.Value.Date; int nCnt = 0; if (grdTrips.Columns["dgvcIsMarked"] != null) { int nColIndex = grdTrips.Columns["dgvcIsMarked"].Index; foreach (DataGridViewRow gr in grdTrips.Rows) { if (Convert.ToBoolean(gr.Cells[nColIndex].Value)) { nCnt++; } } } if (nCnt == 0) { RFMMessage.MessageBoxError("Не отмечено ни одного рейса..."); return; } if (RFMMessage.MessageBoxYesNo("Создать " + RFMUtilities.Declen(nCnt, "рейс", "рейса", "рейсов") + " для " + ((optSelfDelivery.Checked) ? RFMUtilities.Declen(nCnt, "машины клиента", "машин клиентов", "машин клиентов") : RFMUtilities.Declen(nCnt, "арендованной машины", "арендованных машин", "арендованных машин")) + "\nна " + dDate.ToString("dd.MM.yyyy") + "?") != DialogResult.Yes) { return; } oTrip.ClearError(); oTrip.SaveOthersByDate(tCars, dDate, optSelfDelivery.Checked); if (oTrip.ErrorNumber == 0) { RFMMessage.MessageBoxInfo("Рейсы созданы."); DialogResult = DialogResult.Yes; Dispose(); } }
private void btnSave_Click(object sender, EventArgs e) { if (!chkDocumentsOK.Checked) { if (txtNoteExecute.Text.Trim().Length == 0) { RFMMessage.MessageBoxError("Не установлен признак \"Документы в порядке\".\n" + "Введите примечание к выполнению!"); txtNoteExecute.Select(); return; } } StringBuilder sbZero = new StringBuilder(""); int nZero = 0, nZeroSaid = 0; StringBuilder sbDiff = new StringBuilder(""); int nDiff = 0, nDiffSaid = 0; StringBuilder sbReturnZero = new StringBuilder(""); int nReturnZero = 0, nReturnZeroSaid = 0; StringBuilder sbReturnDiff = new StringBuilder(""); int nReturnDiff = 0, nReturnDiffSaid = 0; int nReturnFirstID = -1; int nLimit = 10; // max число товаров при выводе проблем foreach (DataRow droOutGoods in oOutputDocument.TableOutputsDocumentsGoods.Rows) { if ((decimal)droOutGoods["QntBrought"] == 0) { if ((decimal)droOutGoods["QntConfirmed"] > 0) { if (nZero < nLimit) { sbZero = sbZero.Append(droOutGoods["GoodAlias"].ToString() + "\n"); nZeroSaid++; } nZero++; if (droOutGoods["ReturnReasonID"] == null || droOutGoods["ReturnReasonID"] == DBNull.Value) { if (nReturnZero < nLimit) { sbReturnZero = sbReturnZero.Append(droOutGoods["GoodAlias"].ToString() + "\n"); nReturnZeroSaid++; } nReturnZero++; if (nReturnFirstID < 0) { nReturnFirstID = (int)droOutGoods["ID"]; } } } } else { if ((decimal)droOutGoods["QntBrought"] != (decimal)droOutGoods["QntConfirmed"]) { if (nDiff < nLimit) { sbDiff = sbDiff.Append(droOutGoods["GoodAlias"].ToString() + "\n"); nDiffSaid++; } nDiff++; if (droOutGoods["ReturnReasonID"] == null || droOutGoods["ReturnReasonID"] == DBNull.Value) { if (nReturnDiff < nLimit) { sbReturnDiff = sbReturnDiff.Append(droOutGoods["GoodAlias"].ToString() + "\n"); nReturnDiffSaid++; } nReturnDiff++; if (nReturnFirstID < 0) { nReturnFirstID = (int)droOutGoods["ID"]; } } } } } if (nZero > 0) { if (nZero == oOutputDocument.TableOutputsDocumentsGoods.Rows.Count) { if (RFMMessage.MessageBoxYesNo("Ни один товар не доставлен получателю.\n\n" + "Все-таки подтвердить доставку заказа?") == DialogResult.No) { return; } } else { if (nZero - nZeroSaid > 0) { sbZero = sbZero.Append("и еще " + RFMUtilities.Declen(nZero - nZeroSaid, "товар", "товара", "товаров") + "\n"); } if (RFMMessage.MessageBoxYesNo("Следующие товары:\n" + sbZero + "не доставлены получателю.\n\n" + "Все-таки подтвердить доставку заказа?") == DialogResult.No) { return; } } } if (nDiff > 0) { if (nDiff - nDiffSaid > 0) { sbDiff = sbDiff.Append("и еще " + RFMUtilities.Declen(nDiff - nDiffSaid, "товара", "товаров", "товаров") + "\n"); } if (RFMMessage.MessageBoxYesNo("Для следующих товаров:\n" + sbDiff + "доставленное количество не равно отгруженному.\n\n" + "Все-таки подтвердить доставку заказа?") == DialogResult.No) { return; } } // причины возврата if (nReturnZero > 0) { if (nReturnZero == oOutputDocument.TableOutputsDocumentsGoods.Rows.Count) { /* * if (RFMMessage.MessageBoxYesNo("Ни один товар не доставлен получателю,\n" + * "ни для одного товара не указаны причины возврата.\n\n" + * "Перенос заказа не был выполнен!\n\n" + * "Все-таки подтвердить доставку заказа?") == DialogResult.No) * return; */ RFMMessage.MessageBoxError("Ни один товар не доставлен получателю,\n" + "ни для одного товара не указаны причины возврата.\n\n" + "Перенос заказа не был выполнен!\n\n" + "Подтверждение доставки заказа не выполняется!"); return; } else { if (nReturnZero - nReturnZeroSaid > 0) { sbReturnZero = sbReturnZero.Append("и еще " + RFMUtilities.Declen(nReturnZero - nReturnZeroSaid, "товар", "товара", "товаров") + "\n"); } /* * if (RFMMessage.MessageBoxYesNo("Следующие товары:\n" + sbReturnZero + "не доставлены получателю и\n" + * "для них не указана причина возврата.\n\n" + * "Все-таки подтвердить доставку заказа?") == DialogResult.No) * return; */ RFMMessage.MessageBoxError("Следующие товары:\n" + sbReturnZero + "не доставлены получателю и\n" + "для них не указана причина возврата.\n\n" + "Подтверждение доставки заказа не выполняется!"); if (nReturnFirstID >= 0) { int nGridPosition = ((RFMBindingSource)dgvOutputsDocumentsGoods.GridSource).Find("ID", nReturnFirstID); if (nGridPosition >= 0) { dgvOutputsDocumentsGoods.GridSource.Position = nGridPosition; } } return; } } if (nReturnDiff > 0) { if (nReturnDiff - nReturnDiffSaid > 0) { sbReturnDiff = sbReturnDiff.Append("и еще " + RFMUtilities.Declen(nReturnDiff - nReturnDiffSaid, "товара", "товаров", "товаров") + "\n"); } /* * if (RFMMessage.MessageBoxYesNo("Для следующих товаров:\n" + sbReturnDiff + "доставленное количество не равно отгруженному и\n" + * "и не указана причина возврата.\n\n" + * "Все-таки подтвердить доставку заказа?") == DialogResult.No) * return; */ RFMMessage.MessageBoxError("Для следующих товаров:\n" + sbReturnDiff + "доставленное количество не равно отгруженному и\n" + "и не указана причина несоответствия отгруженного и доставленного количества.\n\n" + "Подтверждение доставки заказа не выполняется!"); if (nReturnFirstID >= 0) { int nGridPosition = ((RFMBindingSource)dgvOutputsDocumentsGoods.GridSource).Find("ID", nReturnFirstID); if (nGridPosition >= 0) { dgvOutputsDocumentsGoods.GridSource.Position = nGridPosition; } } return; } /* * // по кол-ву денег * if (numGetMoneyWished.Value != numGetMoneyConfirmed.Value) * { * if (RFMMessage.MessageBoxYesNo("Не совпадает сумма:\n" + * "ожидаемая (" + numGetMoneyWished.Value.ToString("### ### ##0.00").Trim() + ") и полученная (" + numGetMoneyConfirmed.Value.ToString("### ### ##0.00").Trim() + ").\n\n" + * "Все-таки подтвердить доставку заказа?") == DialogResult.No) * return; * } * if (numGetMoneyWished.Value != 0 && numGetMoneyConfirmed.Value == 0 && * !chkIsWarrantReturned.Checked) * { * if (RFMMessage.MessageBoxYesNo("Не указана полученная сумма,\n" + * "не указано также, что доверенность возвращена.\n\n" + * "Все-таки подтвердить?") == DialogResult.No) * return; * } * if (numGetMoneyConfirmed.Value != 0 && * chkIsWarrantReturned.Checked) * { * if (RFMMessage.MessageBoxYesNo("Указана полученная сумма,\n" + * "указано также, что доверенность возвращена.\n\n" + * "Все-таки подтвердить?") == DialogResult.No) * return; * } */ // по паллетам if (numGetPalletsQntWished.Value != numGetPalletsQntConfirmed.Value) { if (RFMMessage.MessageBoxYesNo("Не совпадает количество паллет:\n" + "ожидаемое (" + numGetPalletsQntWished.Value.ToString("#####0").Trim() + ") и полученное (" + numGetPalletsQntConfirmed.Value.ToString("#####0").Trim() + ").\n\n" + "Все-таки подтвердить доставку заказа?") == DialogResult.No) { return; } } // добрались. уже сохраняем if (true) // (RFMMessage.MessageBoxYesNo("Подтвердить доставку заказа получателю?") == DialogResult.Yes) { oOutputDocument.NoteExecute = txtNoteExecute.Text.Trim(); oOutputDocument.DocumentsOK = chkDocumentsOK.Checked; /* * oOutputDocument.GetMoneyConfirmed = numGetMoneyConfirmed.Value; * oOutputDocument.IsWarrantReturned = chkIsWarrantReturned.Checked; */ oOutputDocument.GetPalletsQntConfirmed = (int)numGetPalletsQntConfirmed.Value; // добрались. сохраняем. Refresh(); WaitOn(this); oOutputDocument.ClearError(); bool bResult = oOutputDocument.Bring(((RFMFormBase)Application.OpenForms[0]).UserInfo.UserID); WaitOff(this); if (bResult && oOutputDocument.ErrorNumber == 0) { //RFMMessage.MessageBoxInfo("Зарегистрирована доставка заказа получателю."); DialogResult = DialogResult.Yes; Dispose(); } } }
private void btnSave_Click(object sender, EventArgs e) { if (cboStoresZones.SelectedValue == null || cboStoresZones.SelectedIndex < 0) { RFMMessage.MessageBoxError("Не указана складская зона..."); return; } int nStoreZoneID = (int)cboStoresZones.SelectedValue; string sCBuilding = txtCBuilding.Text.Trim(); string sCLine = txtCLine.Text.Trim(); string sCRackBeg = txtCRackBeg.Text.Trim(); string sCRackEnd = txtCRackEnd.Text.Trim(); string sCLevelBeg = txtCLevelBeg.Text.Trim(); string sCLevelEnd = txtCLevelEnd.Text.Trim(); string sCPlaceBeg = txtCPlaceBeg.Text.Trim(); string sCPlaceEnd = txtCPlaceEnd.Text.Trim(); if ((nBuildingLen > 0 && sCBuilding.Length != nBuildingLen) || (nLineLen > 0 && sCLine.Length != nLineLen) || (nRackLen > 0 && (sCRackBeg.Length != nRackLen || sCRackEnd.Length != nRackLen)) || (nLevelLen > 0 && (sCLevelBeg.Length != nLevelLen || sCLevelEnd.Length != nLevelLen)) || (nPlaceLen > 0 && (sCPlaceBeg.Length != nPlaceLen || sCPlaceEnd.Length != nPlaceLen))) { RFMMessage.MessageBoxError("Неверное указание составляющих адреса..."); return; } if (nRackLen > 0) { if (sCRackBeg.Length != sCRackEnd.Length || sCRackBeg.CompareTo(sCRackEnd) > 0) { RFMMessage.MessageBoxError("Неверное указание начального и конечного стояка..."); return; } } if (nLevelLen > 0) { if (sCLevelBeg.Length != sCLevelEnd.Length || sCLevelBeg.CompareTo(sCLevelEnd) > 0) { RFMMessage.MessageBoxError("Неверное указание начального и конечного уровня..."); return; } } if (nPlaceLen > 0) { if (sCPlaceBeg.Length != sCPlaceEnd.Length || sCPlaceBeg.CompareTo(sCPlaceEnd) > 0) { RFMMessage.MessageBoxError("Неверное указание начального и конечного паллетоместа..."); return; } } // здание, линия (буквы), стояк, уровень, место - по маске string sEmpty = ""; if (nBuildingLen > 0) { if (sCBuilding.Length != nBuildingLen) { RFMMessage.MessageBoxError("Неверное указание здания (" + RFMUtilities.Declen(nBuildingLen, "символ", "символа", "символа") + ")..."); return; } } char cA = Convert.ToChar("A"); char cZ = Convert.ToChar("Z"); char c0 = Convert.ToChar("0"); char c9 = Convert.ToChar("9"); if (nLineLen > 0) { if (sCLine.Length != nLineLen || (sEmpty.PadRight(nLineLen, cA)).CompareTo(sCLine) > 0 || sCLine.CompareTo(sEmpty.PadRight(nLineLen, cZ)) > 0) { RFMMessage.MessageBoxError("Неверное указание линии (" + RFMUtilities.Declen(nLineLen, "латинская заглавная буква", "литанские заглавные буквы", "латинских заглавных букв") + ")..."); return; } } Int16 nX; if (nRackLen > 0) { if (sCRackBeg.Length != nRackLen || !Int16.TryParse(sCRackBeg, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nRackLen, c9))) { RFMMessage.MessageBoxError("Неверное указание начального стояка (" + nRackLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nRackLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nRackLen, c9)) + ")..."); return; } if (sCRackEnd.Length != nRackLen || !Int16.TryParse(sCRackEnd, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nRackLen, c9))) { RFMMessage.MessageBoxError("Неверное указание конечного стояка (" + nRackLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nRackLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nRackLen, c9)) + ")..."); return; } } if (nLevelLen > 0) { if (sCLevelBeg.Length != nLevelLen || !Int16.TryParse(sCLevelBeg, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nLevelLen, c9))) { RFMMessage.MessageBoxError("Неверное указание начального уровня (" + nLevelLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nLevelLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nLevelLen, c9)) + ")..."); return; } if (sCLevelEnd.Length != nLevelLen || !Int16.TryParse(sCLevelEnd, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nLevelLen, c9))) { RFMMessage.MessageBoxError("Неверное указание конечного уровня (" + nLevelLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nLevelLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nLevelLen, c9)) + ")..."); return; } } if (nPlaceLen > 0) { if (sCPlaceBeg.Length != nPlaceLen || !Int16.TryParse(sCPlaceBeg, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nPlaceLen, c9))) { RFMMessage.MessageBoxError("Неверное указание начальной ячейки (паллетоместа) на уровне (" + nPlaceLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nPlaceLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nPlaceLen, c9)) + ")..."); return; } if (sCPlaceEnd.Length != nPlaceLen || !Int16.TryParse(sCPlaceEnd, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nPlaceLen, c9))) { RFMMessage.MessageBoxError("Неверное указание конечной ячейки (паллетоместа) на уровне (" + nPlaceLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nPlaceLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nPlaceLen, c9)) + ")..."); return; } } bool bAddThrough = chkAddThrough.Checked; bool bAddHoleLine = chkAddHoleLine.Checked; bool bAddHole = chkAddHole.Checked; oCell.ClearError(); if (RFMMessage.MessageBoxYesNo("Выполняется попытка добавления ячеек: \n" + ((nBuildingLen > 0) ? ("Здание: " + sCBuilding + "\n") : "") + ((nLineLen > 0) ? ("Линия: " + sCLine + "\n") : "") + ((nRackLen > 0) ? ("Стояк: c " + sCRackBeg + " по " + sCRackEnd + "\n") : "") + ((nLevelLen > 0) ? ("Уровень: c " + sCLevelBeg + " по " + sCLevelEnd + "\n") : "") + ((nPlaceLen > 0) ? ("Паллетоместо: c " + sCPlaceBeg + " по " + sCPlaceEnd + "\n") : "") + "\n" + "Продолжить?") == DialogResult.Yes) { int nCnt = oCell.AddRange("TEST", sCBuilding, sCLine, sCRackBeg, sCRackEnd, sCLevelBeg, sCLevelEnd, sCPlaceBeg, sCPlaceEnd, nStoreZoneID, bAddThrough, bAddHoleLine, bAddHole); if (oCell.ErrorNumber == 0) { if (nCnt > 0) { if (RFMMessage.MessageBoxYesNo("Можно добавить " + RFMUtilities.Declen(nCnt, "ячейку", "ячейки", "ячеек") + ".\n" + "Выполнить добавление?") == DialogResult.Yes) { nCnt = oCell.AddRange("ADD", sCBuilding, sCLine, sCRackBeg, sCRackEnd, sCLevelBeg, sCLevelEnd, sCPlaceBeg, sCPlaceEnd, nStoreZoneID, bAddThrough, bAddHoleLine, bAddHole); if (oCell.ErrorNumber == 0) { if (nCnt > 0) { RFMMessage.MessageBoxInfo("Добавлено " + RFMUtilities.Declen(nCnt, "ячейка", "ячейки", "ячеек") + "."); RFMMessage.MessageBoxInfo("Не забудьте добавить и назначить буферную ячейку\n" + "для добавленных ячеек."); } else { RFMMessage.MessageBoxInfo("Ячейки не были добавлены..."); } } } } else { RFMMessage.MessageBoxError("Ячейки не могут быть добавлены..."); } } if (oCell.ErrorNumber == 0 && nCnt > 0) { DialogResult = DialogResult.Yes; Dispose(); } } }
private void mniServiceTrafficGoodChangeUser_Click(object sender, EventArgs e) { RFMMenuUtilities.MenuClear((ToolStripMenuItem)sender); if (grdData.DataSource == null || grdData.Rows.Count == 0) { return; } // текущая запись или все отмеченные string sText = "Зарегистрировать сотрудника, выполнявшего "; int nCnt = CalcMarkedRows(); if (nCnt == 0) { if (grdData.CurrentRow == null || grdData.IsStatusRow(grdData.CurrentRow.Index)) { return; } sText += "текущее перемещение"; nCnt = 1; } else { sText += RFMUtilities.Declen(nCnt, "отмеченное перемещение", "отмеченных перемещения", "отмеченных перемещений"); } sText += " коробок/штук?"; if (RFMMessage.MessageBoxYesNo(sText) == DialogResult.Yes) { // список сотрудников User oUser = new User(); oUser.FilterActual = true; oUser.FillData(); if (oUser.ErrorNumber != 0 || oUser.MainTable == null) { RFMMessage.MessageBoxError("Ошибка при получении данных о сотрудниках..."); return; } if (oUser.MainTable.Rows.Count == 0) { RFMMessage.MessageBoxError("Нет данных о сотрудниках..."); return; } int nNewUserID = 0; string sNewUserName = ""; _SelectedID = null; if (StartForm(new frmSelectID(this, oUser.MainTable, "Name", "Сотрудник", "Сотрудник, выполнявший перемещения")) == DialogResult.Yes) { if (_SelectedID.HasValue) { nNewUserID = (int)_SelectedID; sNewUserName = _SelectedText; } } if (nNewUserID == 0) { return; } TrafficGood oTrafficGoodForChangeUser = new TrafficGood(); TrafficPrepareIDList(oTrafficGoodForChangeUser, true); if (!oTrafficGoodForChangeUser.ID.HasValue && (oTrafficGoodForChangeUser.IDList == null || oTrafficGoodForChangeUser.IDList.Length == 0)) { oTrafficGoodForChangeUser.ID = Convert.ToInt32(grdData.CurrentRow.Cells["grcID"].Value); } oTrafficGoodForChangeUser.FillData(); if (oTrafficGoodForChangeUser.ErrorNumber != 0 || oTrafficGoodForChangeUser.MainTable == null) { RFMMessage.MessageBoxError("Ошибка при получении данных о перемещениях коробок/штук..."); return; } if (oTrafficGoodForChangeUser.MainTable.Rows.Count == 0) { RFMMessage.MessageBoxError("Нет данных о выбранных перемещениях коробок/штук..."); return; } // уже есть данные о сотрудниках в выбранных перемещениях? int nOldUsersCnt = 0; foreach (DataRow tr in oTrafficGoodForChangeUser.MainTable.Rows) { if (!Convert.IsDBNull(tr["UserID"])) { nOldUsersCnt++; } } if (nOldUsersCnt > 0) { if (oTrafficGoodForChangeUser.MainTable.Rows.Count == 1) { // одно перемещение if (RFMMessage.MessageBoxYesNo("Для выбранного перемещения уже зарегистрирован сотрудник.\n" + "Все-таки зарегистрировать нового сотрудника \"" + sNewUserName + "\"?") != DialogResult.Yes) { return; } } else { // не одно перемещение if (RFMMessage.MessageBoxYesNo("Для " + nOldUsersCnt.ToString().Trim() + " из " + RFMUtilities.Declen(nCnt, " выбранного перемещения", "выбранных перемещений", "выбранных перемещений") + " коробок/штук уже зарегистрирован сотрудник.\n" + "Все-таки зарегистрировать нового сотрудника \"" + sNewUserName + "\" для всех " + RFMUtilities.Declen(nCnt, " выбранного перемещения", "выбранных перемещений", "выбранных перемещений") + " коробок/штук?") != DialogResult.Yes) { return; } } } foreach (DataRow tr in oTrafficGoodForChangeUser.MainTable.Rows) { oTrafficGoodForChangeUser.UserChange((int)tr["ID"], nNewUserID); } grdData_Restore(); } }
private void btnSave_Click(object sender, EventArgs e) { if (grdData.DataSource == null || oCCS.TablePrepareInventoryAct.Rows.Count == 0) { return; } int nMarkedRowsCount = grdData.GetMarkedRows(); if (nMarkedRowsCount == 0) { RFMMessage.MessageBoxError("Не отмечено ни одной записи!"); return; } // Замена для пустого владельца int? nEmptyOwnerID = (int?)cboOwners.SelectedValue; string sEmptyOwnerName = (cboOwners.Text.Length > 0 ? cboOwners.Text : ""); // Копирование выбранных записей во временную отсортированную таблицу DataTable sortedTable = CopyTable(oCCS.TablePrepareInventoryAct, "GoodsForAct", "Qnt <> 0 AND IsMarked = true", "HostName, OwnerName, GoodStateName, GoodGroupName, GoodName"); if (sortedTable.Rows.Count == 0) { RFMMessage.MessageBoxError("Нечего сохранять!"); return; } // Подсчет количества создаваемых актов и проверка на пустых владельцев List <string> combinations = new List <string>(); List <string> emptyHosts = new List <string>(); string sHostName, sOwnerName, sGoodStateName, sCombination; foreach (DataRow r in sortedTable.Rows) { sHostName = r["HostName"].ToString(); sOwnerName = r["OwnerName"].ToString(); sGoodStateName = r["GoodStateName"].ToString(); sCombination = sHostName + "$" + (sOwnerName.Length > 0 ? sOwnerName : sEmptyOwnerName) + "$" + sGoodStateName; if (!combinations.Contains(sCombination)) { // Добавление нового сочетания параметров акта combinations.Add(sCombination); // Добавление в список нового хоста для пустого владельца if (sOwnerName.Length == 0) { if (!emptyHosts.Contains(sHostName)) { emptyHosts.Add(sHostName); } } } } // Проверки допустимости сохранения данных if (emptyHosts.Count > 1) { RFMMessage.MessageBoxError("Обнаружено несколько хостов с пустым владельцем!\r\nСохранение невозможно!"); return; } else if (emptyHosts.Count == 1 && !nEmptyOwnerID.HasValue) { RFMMessage.MessageBoxError("Не выбрана замена для актов с пустым владельцем!\r\nСохранение невозможно!"); return; } // Последнее китайское предупреждение if (RFMMessage.MessageBoxYesNo("Создать " + RFMUtilities.Declen(combinations.Count, "акт", "акта", "актов") + "?\r\nВнимание, данная операция необратима!") != DialogResult.Yes) { return; } // Замена пустого владельца if (emptyHosts.Count > 0) { foreach (DataRow r in sortedTable.Rows) { if (r["OwnerName"].ToString().Length == 0) { r["OwnerID"] = nEmptyOwnerID; } } } // Сохранение актов System.IO.StringWriter writer = new System.IO.StringWriter(); sortedTable.WriteXml(writer); this.Cursor = Cursors.WaitCursor; bool bResult = oCCS.SaveInventoryAct(snapshotID, writer.ToString(), sortedTable.TableName); this.Cursor = null; if (!bResult) { RFMMessage.MessageBoxError(oCCS.ErrorStr); return; } this.Close(); }
private void btnSave_Click(object sender, EventArgs e) { DataRow rx = oCell.MainTable.Rows[0]; if (cboStoresZones.SelectedValue == null || cboStoresZones.SelectedIndex < 0) { RFMMessage.MessageBoxError("Ќе указана складска¤ зона..."); return; } int nStoreZoneID = (int)cboStoresZones.SelectedValue; string sAddress = txtAddress.Text.Trim(); if (sAddress.Length == 0) { RFMMessage.MessageBoxError("Ќе указан адрес ¤чейки..."); return; } // длина адреса if (sAddress.Length > nAddressLen) { RFMMessage.MessageBoxError("—лишком длинный адрес ¤чейки..."); return; } // допустимые символы (дл¤ печати штрих-кода) string cCharsAvailable = "0123456789" + ".:-=" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz"; for (int i = 0; i < sAddress.Length; i++) { string c = sAddress.Substring(i, 1); if (!cCharsAvailable.Contains(c)) { RFMMessage.MessageBoxError("Ќеверный символ в адресе ¤чейки: " + c + "\nƒл¤ адреса опустимы только латинские буквы и цифры."); return; } } // не исправили ли руками префикс-суффикс if (sStoreZonePrefix.Length > 0 && sAddress.Substring(0, sStoreZonePrefix.Length) != sStoreZonePrefix) { RFMMessage.MessageBoxError("Ќеверное начало адреса ¤чейки.\nƒолжно быть: " + sStoreZonePrefix); return; } if (sStoreZoneSuffix.Length > 0 && sAddress.Substring(sAddress.Length - sStoreZoneSuffix.Length) != sStoreZoneSuffix) { RFMMessage.MessageBoxError("Ќеверное окончание адреса ¤чейки.\nƒолжно быть: " + sStoreZoneSuffix); return; } string sCBuilding = txtCBuilding.Text.Trim(); string sCLine = txtCLine.Text.Trim(); string sCRack = txtCRack.Text.Trim(); string sCLevel = txtCLevel.Text.Trim(); string sCPlace = txtCPlace.Text.Trim(); if (sCBuilding.Length == 0 && sCLine.Length == 0 && sCRack.Length == 0 && sCLevel.Length == 0 && sCPlace.Length == 0) { if (RFMMessage.MessageBoxYesNo("Ќе указана ни одна составл¤юща¤ адреса...\n¬се-таки сохранить?") != DialogResult.Yes) { return; } } if (sAddressMask.Length > 0) { // указаны ли все нужные составл¤ющие адреса и кака¤ у них длина? if ((nBuildingLen > 0 && sCBuilding.Length != nBuildingLen) || (nLineLen > 0 && sCLine.Length != nLineLen) || (nRackLen > 0 && sCRack.Length != nRackLen) || (nLevelLen > 0 && sCLevel.Length != nLevelLen) || (nPlaceLen > 0 && sCPlace.Length != nPlaceLen)) { RFMMessage.MessageBoxError("Ќеверное указание составл¤ющих адреса..."); return; } // здание, лини¤ (буквы), сто¤к, уровень, место - по маске string sEmpty = ""; if (nBuildingLen > 0) { if (sCBuilding.Length != nBuildingLen) { RFMMessage.MessageBoxError("Ќеверное указание здани¤ (" + RFMUtilities.Declen(nBuildingLen, "символ", "символа", "символа") + ")..."); return; } } char cA = Convert.ToChar("A"); char cZ = Convert.ToChar("Z"); char c0 = Convert.ToChar("0"); char c9 = Convert.ToChar("9"); if (nLineLen > 0) { if (sCLine.Length != nLineLen || (sEmpty.PadRight(nLineLen, cA)).CompareTo(sCLine) > 0 || sCLine.CompareTo(sEmpty.PadRight(nLineLen, cZ)) > 0) { RFMMessage.MessageBoxError("Ќеверное указание линии (" + RFMUtilities.Declen(nLineLen, "латинска¤ заглавна¤ буква", "литанские заглавные буквы", "латинских заглавных букв") + ")..."); return; } } Int16 nX; if (nRackLen > 0) { if (sCRack.Length != nRackLen || !Int16.TryParse(sCRack, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nRackLen, c9))) { RFMMessage.MessageBoxError("Ќеверное указание сто¤ка (" + nRackLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nRackLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nRackLen, c9)) + ")..."); return; } } if (nLevelLen > 0) { if (sCLevel.Length != nLevelLen || !Int16.TryParse(sCLevel, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nLevelLen, c9))) { RFMMessage.MessageBoxError("Ќеверное указание уровн¤ (" + nLevelLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nLevelLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nLevelLen, c9)) + ")..."); return; } } if (nPlaceLen > 0) { if (sCPlace.Length != nPlaceLen || !Int16.TryParse(sCPlace, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nPlaceLen, c9))) { RFMMessage.MessageBoxError("Ќеверное указание ¤чейки (паллетоместа) на уровне (" + nPlaceLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nPlaceLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nPlaceLen, c9)) + ")..."); return; } } } // * собственно сохранение * oCell.ClearError(); rx["StoreZoneID"] = nStoreZoneID; rx["Address"] = sAddress; rx["CBuilding"] = sCBuilding; rx["CLine"] = sCLine; rx["CRack"] = sCRack; rx["CLevel"] = sCLevel; rx["CPlace"] = sCPlace; oCell.AddressSave((int)rx["ID"]); if (oCell.ErrorNumber == 0) { DialogResult = DialogResult.Yes; Dispose(); } }
private void btnSave_Click(object sender, EventArgs e) { if (cboStoresZones.SelectedValue == null || cboStoresZones.SelectedIndex < 0) { RFMMessage.MessageBoxError("Не указана складская зона..."); return; } int nStoreZoneID = (int)cboStoresZones.SelectedValue; string sAddress = txtAddress.Text.Trim(); if (sAddress.Length == 0) { RFMMessage.MessageBoxError("Не указан адрес ячейки..."); return; } // длина адреса if (sAddress.Length > nAddressLen) { RFMMessage.MessageBoxError("Слишком длинный адрес ячейки..."); return; } // допустимые символы (для печати штрих-кода) string cCharsAvailable = "0123456789" + ".:-=" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz"; for (int i = 0; i < sAddress.Length; i++) { string c = sAddress.Substring(i, 1); if (!cCharsAvailable.Contains(c)) { RFMMessage.MessageBoxError("Неверный символ в адресе ячейки: " + c + "\nДля адреса опустимы только латинские буквы и цифры."); return; } } // не исправили ли руками префикс-суффикс if (sStoreZonePrefix.Length > 0 && sAddress.Substring(0, sStoreZonePrefix.Length) != sStoreZonePrefix) { RFMMessage.MessageBoxError("Неверное начало адреса ячейки.\nДолжно быть: " + sStoreZonePrefix); return; } if (sStoreZoneSuffix.Length > 0 && sAddress.Substring(sAddress.Length - sStoreZoneSuffix.Length) != sStoreZoneSuffix) { RFMMessage.MessageBoxError("Неверное окончание адреса ячейки.\nДолжно быть: " + sStoreZoneSuffix); return; } string sCBuilding = txtCBuilding.Text.Trim(); string sCLine = txtCLine.Text.Trim(); string sCRack = txtCRack.Text.Trim(); string sCLevel = txtCLevel.Text.Trim(); string sCPlace = txtCPlace.Text.Trim(); if (sCBuilding.Length == 0 && sCLine.Length == 0 && sCRack.Length == 0 && sCLevel.Length == 0 && sCPlace.Length == 0) { if (RFMMessage.MessageBoxYesNo("Не указана ни одна составляющая адреса...\nВсе-таки сохранить?") != DialogResult.Yes) { return; } } if (sAddressMask.Length > 0 & chkAddressManual.Checked == false) { // указаны ли все нужные составляющие адреса и какая у них длина? if ((nBuildingLen > 0 && sCBuilding.Length != nBuildingLen) || (nLineLen > 0 && sCLine.Length != nLineLen) || (nRackLen > 0 && sCRack.Length != nRackLen) || (nLevelLen > 0 && sCLevel.Length != nLevelLen) || (nPlaceLen > 0 && sCPlace.Length != nPlaceLen)) { RFMMessage.MessageBoxError("Неверное указание составляющих адреса..."); return; } // здание, линия (буквы), стояк, уровень, место - по маске string sEmpty = ""; if (nBuildingLen > 0) { if (sCBuilding.Length != nBuildingLen) { RFMMessage.MessageBoxError("Неверное указание здания (" + RFMUtilities.Declen(nBuildingLen, "символ", "символа", "символа") + ")..."); return; } } char cA = Convert.ToChar("A"); char cZ = Convert.ToChar("Z"); char c0 = Convert.ToChar("0"); char c9 = Convert.ToChar("9"); if (nLineLen > 0) { if (sCLine.Length != nLineLen || (sEmpty.PadRight(nLineLen, cA)).CompareTo(sCLine) > 0 || sCLine.CompareTo(sEmpty.PadRight(nLineLen, cZ)) > 0) { RFMMessage.MessageBoxError("Неверное указание линии (" + RFMUtilities.Declen(nLineLen, "латинская заглавная буква", "литанские заглавные буквы", "латинских заглавных букв") + ")..."); return; } } Int16 nX; if (nRackLen > 0) { if (sCRack.Length != nRackLen || !Int16.TryParse(sCRack, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nRackLen, c9))) { RFMMessage.MessageBoxError("Неверное указание стояка (" + nRackLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nRackLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nRackLen, c9)) + ")..."); return; } } if (nLevelLen > 0) { if (sCLevel.Length != nLevelLen || !Int16.TryParse(sCLevel, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nLevelLen, c9))) { RFMMessage.MessageBoxError("Неверное указание уровня (" + nLevelLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nLevelLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nLevelLen, c9)) + ")..."); return; } } if (nPlaceLen > 0) { if (sCPlace.Length != nPlaceLen || !Int16.TryParse(sCPlace, out nX) || nX < 1 || nX > Convert.ToInt16(sEmpty.PadRight(nPlaceLen, c9))) { RFMMessage.MessageBoxError("Неверное указание ячейки (паллетоместа) на уровне (" + nPlaceLen.ToString().Trim() + "-значное число: " + (sEmpty.PadRight(nPlaceLen - 1, c0)) + "1" + ".." + (sEmpty.PadRight(nPlaceLen, c9)) + ")..."); return; } } } else if (txtAddress.Text.Length == 0) { RFMMessage.MessageBoxError("Адрес ячейки не может быть пустым..."); return; } // * собственно сохранение * oCell.ClearError(); int nCellID = oCell.AddSpecial(sAddress, sCBuilding, sCLine, sCRack, sCLevel, sCPlace, nStoreZoneID); if (oCell.ErrorNumber == 0) { MotherForm.GotParam = new object[] { nCellID }; DialogResult = DialogResult.Yes; Dispose(); } }
private void grdCells_Restore() { WaitOn(this); oCells.ClearFilters(); oCells.ID = null; oCells.IDList = null; // собираем услови¤ oCells.FilterActual = true; // выбранные ¤чейки if (sSelectedCellsIDList.Length > 0) { oCells.IDList = sSelectedCellsIDList; } // выбранные товары - в ¤чейках if (sSelectedPackingsIDList.Length > 0) { oCells.CellsContents_FilterPackingsList = sSelectedPackingsIDList; } // срок годности if (chkDateValidPercent.Checked) { oCells.CellsContents_FilterCheckDateValid = Convert.ToInt32(numDateValidPercent.Value); } grdCells.DataSource = null; oCells.FillData(); if (oCells.MainTable.Columns["InFilter"] == null) { oCells.MainTable.Columns.Add("InFilter", Type.GetType("System.Boolean")); } if (chkShowContents.Checked) { if (oCells.MainTable.Columns["GoodAlias"] == null) { oCells.MainTable.Columns.Add("GoodAlias", Type.GetType("System.String")); } if (oCells.MainTable.Columns["Weighting"] == null) { oCells.MainTable.Columns.Add("Weighting", Type.GetType("System.Boolean")); } if (oCells.MainTable.Columns["InBox"] == null) { oCells.MainTable.Columns.Add("InBox", Type.GetType("System.Decimal")); } if (oCells.MainTable.Columns["Qnt"] == null) { oCells.MainTable.Columns.Add("Qnt", Type.GetType("System.Decimal")); } if (oCells.MainTable.Columns["Boxes"] == null) { oCells.MainTable.Columns.Add("Boxes", Type.GetType("System.Decimal")); } if (oCells.MainTable.Columns["DateValid"] == null) { oCells.MainTable.Columns.Add("DateValid", Type.GetType("System.DateTime")); } } // остаток кор. if (chkRestBoxes.Checked || chkShowContents.Checked || sSelectedPackingsIDList.Length > 0) { decimal nRestBoxes = numRestBoxes.Value; Cell oCellTemp = new Cell(); foreach (DataRow r in oCells.MainTable.Rows) { // ¤чейки хранени¤ if (chkForStorageOnly.Checked && !Convert.ToBoolean(r["ForStorage"])) { continue; } oCellTemp.ID = Convert.ToInt32(r["ID"]); oCellTemp.FillTableCellsContents(oCellTemp.ID, false); if (oCellTemp.TableCellsContents.Columns["InFilter"] == null) { oCellTemp.TableCellsContents.Columns.Add("InFilter", Type.GetType("System.Boolean")); } if (oCellTemp.TableCellsContents.Rows.Count > 0) { // есть еще другие товары в ¤чейке // оставить только те, которые в пределах фильтра foreach (DataRow rcc in oCellTemp.TableCellsContents.Rows) { rcc["InFilter"] = true; if (sSelectedPackingsIDList.Length > 0 && !sSelectedPackingsIDList.Contains("," + rcc["PackingID"].ToString() + ",")) { rcc["InFilter"] = false; } if (chkRestBoxes.Checked && Convert.ToDecimal(rcc["BoxQnt"]) > Convert.ToDecimal(numRestBoxes.Value)) { rcc["InFilter"] = false; } if (chkDateValidPercent.Checked && !Convert.IsDBNull(rcc["DateValid"]) && Convert.ToDecimal(rcc["DateValidPercent"]) > Convert.ToDecimal(numDateValidPercent.Value)) { rcc["InFilter"] = false; } } DataTable dcc = CopyTable(oCellTemp.TableCellsContents, "dcc", "InFilter = true", ""); if (dcc.Rows.Count > 0) { DataRow rcc = dcc.Rows[0]; r["InFilter"] = true; if (chkShowContents.Checked) { if (dcc.Rows.Count > 1) { r["GoodAlias"] = RFMUtilities.Declen(dcc.Rows.Count, "товар", "товара", "товаров"); } else { r["GoodAlias"] = rcc["GoodAlias"]; r["Weighting"] = rcc["Weighting"]; r["InBox"] = rcc["InBox"]; r["Qnt"] = rcc["Qnt"]; r["Boxes"] = Convert.ToDecimal(rcc["Qnt"]) / Convert.ToDecimal(rcc["InBox"]); r["DateValid"] = rcc["DateValid"]; } } } } } } //grdCells.Restore(CopyTable(oCells.MainTable, "dt", ((chkDateValidPercent.Checked || chkRestBoxes.Checked || sSelectedPackingsIDList.Length > 0) ? "InFilter" : ""), "StoreZoneName, Address")); string sFilter = ""; if (chkDateValidPercent.Checked || chkRestBoxes.Checked || sSelectedPackingsIDList.Length > 0) { sFilter = "InFilter"; } if (chkForStorageOnly.Checked) { if (sFilter.Length == 0) { sFilter = "ForStorage"; } else { sFilter += " and ForStorage"; } } if (dt == null) { dt = CopyTable(oCells.MainTable, "dt", sFilter, "StoreZoneName, Address"); dt.PrimaryKey = new DataColumn[] { dt.Columns["CellID"] }; } else { //dt.Merge(CopyTable(oCells.MainTable, "dt", ((chkDateValidPercent.Checked || chkRestBoxes.Checked || sSelectedPackingsIDList.Length > 0) ? "InFilter" : ""), "StoreZoneName, Address")); DataTable dtX = CopyTable(oCells.MainTable, "dt", sFilter, "StoreZoneName, Address"); foreach (DataRow rc in dtX.Rows) { int nCellID = Convert.ToInt32(rc["CellID"]); if (dt.Rows.Find(nCellID) == null) { dt.ImportRow(rc); } } } grdCells.Restore(dt); grdCells.MarkAllRows(true); WaitOff(this); }
private void btnSave_Click(object sender, EventArgs e) { int?nCellBufferID; if (cboCellAddressBuffer.SelectedValue == null || cboCellAddressBuffer.SelectedIndex < 0) { if (RFMMessage.MessageBoxYesNo("Ќе выбрана буферна¤ ¤чейка.\nќчистить указание на буферную ¤чейку?") == DialogResult.Yes) { nCellBufferID = null; } else { return; } } else { nCellBufferID = (int)cboCellAddressBuffer.SelectedValue; } bool bCellBufferUpdate = chkCellsBuffersUpdate.Checked; int nCellID; int nCnt = 0; // перебираем строки oCell foreach (DataRow r in oCell.MainTable.Rows) { nCellID = (int)r["ID"]; oCell.SetBufferCell(nCellID, nCellBufferID, bCellBufferUpdate); if (oCell.ErrorNumber == 0) { nCnt++; } } if (nCnt > 0) { RFMMessage.MessageBoxInfo(((nCellBufferID.HasValue) ? "”становлена" : "ќчищена") + " буферна¤ ¤чейка дл¤ " + RFMUtilities.Declen(nCnt, "¤чейки", "¤чеек", "¤чеек") + "."); } else { RFMMessage.MessageBoxInfo("Ѕуферна¤ ¤чейка не " + ((nCellBufferID.HasValue) ? "установлена" : "очищена") + "..."); } if (oCell.ErrorNumber == 0 && nCnt > 0) { DialogResult = DialogResult.Yes; Dispose(); } }
private void btnSave_Click(object sender, EventArgs e) { if (grdData.DataSource == null || grdData.Rows.Count == 0) { RFMMessage.MessageBoxError("Не получен список доступных поддонов..."); return; } // проверяем отмеченные контейнеры int nMarkedCnt = 0; foreach (DataRow r in dt.Rows) { if (!Convert.IsDBNull(r["IsMarked"]) && Convert.ToBoolean(r["IsMarked"])) { nMarkedCnt++; } } if (nMarkedCnt == 0) { RFMMessage.MessageBoxError("Не отмечено ни одного поддона..."); return; } if (chkForOutput.Checked) { // в отгрузку if (cboCellOutput.SelectedValue == null || cboCellOutput.SelectedIndex < 0) { RFMMessage.MessageBoxError("Не выбрана ячейка отгрузки..."); return; } Cell oCellOutputTemp = new Cell(); oCellOutputTemp.ID = (int)cboCellOutput.SelectedValue; oCellOutputTemp.FillData(); if (oCellOutputTemp.ErrorNumber != 0 || oCellOutputTemp.MainTable == null || oCellOutputTemp.MainTable.Rows.Count != 1) { RFMMessage.MessageBoxError("Ошибка при получении данных о ячейке отгрузки..."); return; } nCellFinishID = Convert.ToInt32(oCellOutputTemp.MainTable.Rows[0]["ID"]); sCellFinishAddress = oCellOutputTemp.MainTable.Rows[0]["Address"].ToString(); if (RFMMessage.MessageBoxYesNo("Создать операции транспортировки в ячейку отгрузки " + sCellFinishAddress + " для " + RFMPublic.RFMUtilities.Declen(nMarkedCnt, "поддона", "поддонов", "поддонов") + "?") != DialogResult.Yes) { return; } } else { if (oCellPicking.MainTable == null || oCellPicking.MainTable.Rows.Count == 0) { RFMMessage.MessageBoxError("Не определена ячейка пикинга для товара."); return; } nCellFinishID = Convert.ToInt32(oCellPicking.MainTable.Rows[0]["ID"]); sCellFinishAddress = oCellPicking.MainTable.Rows[0]["Address"].ToString(); // в пикинг if (RFMMessage.MessageBoxYesNo("Создать операции транспортировки в ячейку пикинга " + sCellFinishAddress + " для " + RFMPublic.RFMUtilities.Declen(nMarkedCnt, "поддона", "поддонов", "поддонов") + "?") != DialogResult.Yes) { return; } } // создаем транспортировки последовательно int nFrameID; int nOK = 0; string sNote = txtNoteManual.Text.Trim(); foreach (DataRow r in dt.Rows) { if (!Convert.IsDBNull(r["IsMarked"]) && Convert.ToBoolean(r["IsMarked"])) { oTraffic.ClearError(); nFrameID = Convert.ToInt32(r["FrameID"]); oTraffic.CreateManualDirect(nFrameID, (int)nCellFinishID, nPriority, sNote); if (oTraffic.ErrorNumber == 0) { nOK++; } } } if (nOK > 0) { RFMMessage.MessageBoxInfo("Создано " + RFMUtilities.Declen(nOK, "задание", "задания", "заданий") + " на транспортировку поддонов в " + ((chkForOutput.Checked) ? "зону отгрузки" : "пикинг") + "."); DialogResult = DialogResult.Yes; Dispose(); } else { RFMMessage.MessageBoxError("Задания на транспортировку поддонов в " + ((chkForOutput.Checked) ? "зону отгрузки" : "пикинг") + " не созданы."); } }