private bool cboPalletsTypes_Restore() { oGood.FillTablePalletsTypes(); cboPalletsTypes.ValueMember = oGood.TablePalletsTypes.Columns[0].Caption; cboPalletsTypes.DisplayMember = oGood.TablePalletsTypes.Columns[1].Caption; cboPalletsTypes.DataSource = new DataView(oGood.TablePalletsTypes); return(oGood.ErrorNumber == 0); }
private void btnCellChange_Click(object sender, EventArgs e) { if (sender != null) { if (RFMMessage.MessageBoxYesNo("Изменить ячейку, в которой находится контейнер?") != DialogResult.Yes) { return; } } _SelectedCellID = null; if (StartForm(new frmSelectOneCell(this)) == DialogResult.Yes) { if (_SelectedCellID != null) { Cell oCellChoosen = new Cell(); oCellChoosen.ID = _SelectedCellID; oCellChoosen.FillData(); if (oCellChoosen.MainTable.Rows.Count == 1) { // выбранная ячейка DataRow r = oCellChoosen.MainTable.Rows[0]; // текущий контейнер DataRow f = oFrame.MainTable.Rows[0]; // можно ли поставить этот контейнер в выбранную ячейку? if (r["ForFrames"] != DBNull.Value && !(bool)r["ForFrames"]) { RFMMessage.MessageBoxError("Выбранная ячейка не предназначена для контейнеров..."); return; } decimal nMaxPalletQnt = 0; if (r["MaxPalletQnt"] == DBNull.Value) { if (r["StoreZoneMaxPalletQnt"] == DBNull.Value) { nMaxPalletQnt = 999999; } else { nMaxPalletQnt = Convert.ToDecimal(r["StoreZoneMaxPalletQnt"]); } } else { nMaxPalletQnt = Convert.ToDecimal(r["MaxPalletQnt"]); } if (nMaxPalletQnt > 0 && nMaxPalletQnt < 999999) { int nFramesQntInCell = oCellChoosen.GetFramesQnt(Convert.ToInt32(oCellChoosen.ID), false); int nFramesQntToCell = oCellChoosen.GetFramesQnt(Convert.ToInt32(oCellChoosen.ID), true); if (nMaxPalletQnt < nFramesQntInCell + nFramesQntToCell + 1) { RFMMessage.MessageBoxError("Выбранная ячейка может содержать максимальное количество контейнеров: " + nMaxPalletQnt + "\n\n" + "Сейчас в ячейке находится контейнеров: " + nFramesQntInCell.ToString() + "\n" + "Сейчас в ячейку направляется контейнеров: " + nFramesQntToCell.ToString() + "\n\n" + "Размещение еще одного контейнера в ячейке невозможно..."); return; } } int nFramePalletTypeID = 0; if (f["PalletTypeID"] != DBNull.Value) { nFramePalletTypeID = Convert.ToInt32(f["PalletTypeID"]); if (r["PalletTypeID"] != DBNull.Value) { int nPalletTypeID = Convert.ToInt32(r["PalletTypeID"]); if (nPalletTypeID != nFramePalletTypeID) { RFMMessage.MessageBoxError("Тип поддона в ячейке не совпадает с типом поддона контейнеров..."); return; } } } decimal nMaxWeight = Convert.ToDecimal(r["MaxWeight"]); // пересчитать вес контейнера = вес поддона + вес коробок + вес товара decimal nFrameWeight = 0; Good oGoodCalc = new Good(); oGoodCalc.FillTablePalletsTypes(); foreach (DataRow pt in oGoodCalc.TablePalletsTypes.Rows) { if (nFramePalletTypeID == Convert.ToInt32(pt["ID"])) { nFrameWeight = Convert.ToDecimal(pt["PalletWeight"]); } } foreach (DataRow c in oFrame.TableFramesContents.Rows) { if (c["Changes"].ToString() != "D") { oGoodCalc.PackingID = Convert.ToInt32(c["PackingID"]); oGoodCalc.FillData(); DataRow g = oGoodCalc.MainTable.Rows[0]; nFrameWeight = +Convert.ToDecimal(c["BoxQnt"]) * Convert.ToDecimal(g["BoxWeight"]) + Convert.ToDecimal(c["Qnt"]) * Convert.ToDecimal(g["Netto"]); } } if (nMaxWeight > 0 && nFrameWeight > nMaxWeight) { if (RFMMessage.MessageBoxYesNo("Максимально допустимый вес для выбранной ячейки: " + System.Math.Round(nMaxWeight, 0).ToString() + "\n" + "Вес контейнера: " + System.Math.Round(nFrameWeight, 0).ToString() + ",\n" + "что больше допустимого веса для ячейки на " + System.Math.Round((Convert.ToDecimal(nFrameWeight - nMaxWeight)), 0).ToString() + "кг \n\n" + "Все-таки сохранить?") != DialogResult.Yes) { return; } } decimal nCellHeight = Convert.ToDecimal(r["CellHeight"]); decimal nFrameHeight = Convert.ToDecimal(f["FrameHeight"]); if (nCellHeight > 0 && nFrameHeight > nCellHeight) { if (RFMMessage.MessageBoxYesNo("Высота выбранной ячейки: " + nCellHeight.ToString() + "\n" + "Высота контейнера: " + nFrameHeight.ToString() + ",\n" + "что больше высоты ячейки на " + (Convert.ToDecimal(nFrameHeight - nCellHeight)).ToString() + " м \n\n" + "Все-таки сохранить?") != DialogResult.Yes) { return; } } // можем сохранять oCell.ID = oCellChoosen.ID; oCell.FillData(); lblCellAddress.Text = oCell.MainTable.Rows[0]["Address"].ToString() + " (" + oCell.MainTable.Rows[0]["StoreZoneName"].ToString() + ")"; } } } }