Esempio n. 1
0
 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);
 }
Esempio n. 2
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() + ")";
                    }
                }
            }
        }