Ejemplo n.º 1
0
        public frmTrafficsGoodsEdit()
        {
            oTraffic         = new TrafficGood();
            oCellSource      = new Cell();
            oStoreZoneSource = new StoreZone();
            oCellTarget      = new Cell();
            oStoreZoneTarget = new StoreZone();
            oUser            = new User();
            oDevice          = new Device();

            if (oTraffic.ErrorNumber != 0 ||
                oCellSource.ErrorNumber != 0 ||
                oStoreZoneSource.ErrorNumber != 0 ||
                oCellTarget.ErrorNumber != 0 ||
                oStoreZoneTarget.ErrorNumber != 0 ||
                oUser.ErrorNumber != 0 ||
                oDevice.ErrorNumber != 0)
            {
                IsValid = false;
            }

            if (IsValid)
            {
                InitializeComponent();
                oTraffic.ID = 0;
            }
        }
Ejemplo n.º 2
0
        private void PrintTrafficBill(DataDynamics.ActiveReports.ActiveReport3 rpReport)
        {
            // список операций
            TrafficGood oTrafficPrint = new TrafficGood();
            int         nMarkedCnt    = CalcMarkedRows();

            if (nMarkedCnt > 0 &&
                RFMMessage.MessageBoxYesNo("Отмечено записей: " + nMarkedCnt.ToString() + "\r\n" +
                                           "Напечатать лист заданий для всех отмеченных записей?") != DialogResult.Yes)
            {
                return;
            }
            TrafficPrepareIDList(oTrafficPrint, nMarkedCnt > 0);
            oTrafficPrint.FillData();
            if (oTrafficPrint.MainTable.Rows.Count == 0)
            {
                return;
            }

            DataView dv = new DataView(oTrafficPrint.MainTable);

            dv.Sort = "OutputID, CellTargetAddress, StoreZoneSourceID, CellSourceRank, CellSourceAddress, GoodAlias";
            DataTable tTable = dv.ToTable();

            // печать
            StartForm(new frmActiveReport(tTable, rpReport));
        }
Ejemplo n.º 3
0
        public void TrafficPrepareIDList(TrafficGood oTraffic, bool bMultiSelect)
        {
            oTraffic.ID     = null;
            oTraffic.IDList = null;
            int?nTrafficID = 0;

            if (bMultiSelect && grdData.IsCheckerShow)
            {
                oTraffic.IDList = "";

                DataView dMarked = new DataView(oTrafficList.MainTable);
                dMarked.RowFilter = "IsMarked = true";
                dMarked.Sort      = grdData.GridSource.Sort;
                foreach (DataRowView r in dMarked)
                {
                    if (!Convert.IsDBNull(r["ID"]))
                    {
                        nTrafficID      = (int)r["ID"];
                        oTraffic.IDList = oTraffic.IDList + nTrafficID.ToString() + ",";
                    }
                }
            }
            else
            {
                oTraffic.ID = (int)grdData.CurrentRow.Cells["grcID"].Value;
            }
        }
Ejemplo n.º 4
0
        public frmTrafficsGoods()
        {
            oTrafficList = new TrafficGood();
            oTrafficCur  = new TrafficGood();
            if (oTrafficList.ErrorNumber != 0 ||
                oTrafficCur.ErrorNumber != 0)
            {
                IsValid = false;
            }

            if (IsValid)
            {
                InitializeComponent();
            }
        }
Ejemplo n.º 5
0
        public frmReportTraffics()
        {
            InitializeComponent();

            oTrafficFrame = new TrafficFrame();
            oTrafficGood  = new TrafficGood();
            if (oTrafficFrame.ErrorNumber != 0 ||
                oTrafficGood.ErrorNumber != 0)
            {
                IsValid = false;
            }
            else
            {
                oCellSource = new Cell();
                oCellTarget = new Cell();
                if (oCellSource.ErrorNumber != 0 ||
                    oCellTarget.ErrorNumber != 0)
                {
                    IsValid = false;
                }
            }
        }
Ejemplo n.º 6
0
        public frmTrafficsGoodsManual(int?nTrafficOldID)
        {
            oTraffic         = new TrafficGood();
            oTrafficOld      = new TrafficGood();
            oCellSource      = new Cell();
            oStoreZoneSource = new StoreZone();
            oCellTarget      = new Cell();
            oStoreZoneTarget = new StoreZone();

            if (oTraffic.ErrorNumber != 0 ||
                oCellSource.ErrorNumber != 0 ||
                oStoreZoneSource.ErrorNumber != 0 ||
                oCellTarget.ErrorNumber != 0 ||
                oStoreZoneTarget.ErrorNumber != 0)
            {
                IsValid = false;
            }

            if (IsValid)
            {
                InitializeComponent();
                oTrafficOld.ID = nTrafficOldID;
            }
        }
Ejemplo n.º 7
0
        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();
            }
        }
Ejemplo n.º 8
0
        private void btnCellNewChoose_Click(object sender, EventArgs e)
        {
            nCellNewID                   = null;
            txtCellNewAddress.Text       =
                txtStoreZoneNewName.Text =
                    "";

            _SelectedCellID = null;

            if (StartForm(new frmSelectOneCell(this)) == DialogResult.Yes)
            {
                if (_SelectedCellID != null)
                {
                    int nCellNewID_Temp = (int)_SelectedCellID;

                    oCellNew.ID = (int)nCellNewID_Temp;
                    oCellNew.FillData();
                    if (oCellNew.ErrorNumber != 0 || oCellNew.MainTable == null || oCellNew.MainTable.Rows.Count != 1)
                    {
                        RFMMessage.MessageBoxError("ќшибка при получении данных о новой ¤чейке...");
                        return;
                    }

                    if (nCellCurID.HasValue && nCellNewID_Temp == nCellCurID)
                    {
                        RFMMessage.MessageBoxError("¬ыбрана та же ¤чейка...");
                        return;
                    }

                    DataRow c = oCellNew.MainTable.Rows[0];
                    // проверки - можно ли сделать закрепление в эту ¤чейку?

                    // 1. это подход¤щий тип ¤чейки?
                    if (!Convert.ToBoolean(c["ForStorage"]) || !Convert.ToBoolean(c["ForPicking"]))
                    {
                        RFMMessage.MessageBoxError("ячейка имеет другой тип...");
                        return;
                    }

                    // 2.1. есть остаток?
                    oCellNew.FillTableCellsContents(nCellNewID_Temp, false);
                    if (oCellNew.ErrorNumber != 0)
                    {
                        RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ товаров в ¤чейке...");
                        return;
                    }

                    foreach (DataRow cc in oCellNew.TableCellsContents.Rows)
                    {
                        if (Convert.ToDecimal(cc["Qnt"]) != 0)
                        {
                            RFMMessage.MessageBoxError("¬ ¤чейке имеетс¤ другой товар...");
                            return;
                        }
                    }

                    // 2.2. есть трафики в/из новой ¤чейки
                    TrafficFrame oTrafficFrameTemp = new TrafficFrame();
                    oTrafficFrameTemp.FilterConfirmed = false;

                    oTrafficFrameTemp.FilterCellsTargetList = nCellNewID_Temp.ToString();
                    oTrafficFrameTemp.FillData();
                    if (oTrafficFrameTemp.ErrorNumber != 0)
                    {
                        RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ транспортировок поддонов в ¤чейку...");
                        return;
                    }
                    if (oTrafficFrameTemp.MainTable.Rows.Count > 0)
                    {
                        RFMMessage.MessageBoxError("≈сть невыполненные транспортировки поддонов в ¤чейку...");
                        return;
                    }

                    oTrafficFrameTemp.FilterCellsTargetList = null;
                    oTrafficFrameTemp.FilterCellsSourceList = nCellNewID_Temp.ToString();
                    oTrafficFrameTemp.FillData();
                    if (oTrafficFrameTemp.ErrorNumber != 0)
                    {
                        RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ транспортировок поддонов из ¤чейки...");
                        return;
                    }
                    if (oTrafficFrameTemp.MainTable.Rows.Count > 0)
                    {
                        RFMMessage.MessageBoxError("≈сть невыполненные транспортировки поддонов из ¤чейки...");
                        return;
                    }


                    TrafficGood oTrafficGoodTemp = new TrafficGood();
                    oTrafficGoodTemp.FilterConfirmed = false;

                    oTrafficGoodTemp.FilterCellsTargetList = nCellNewID_Temp.ToString();
                    oTrafficGoodTemp.FillData();
                    if (oTrafficGoodTemp.ErrorNumber != 0)
                    {
                        RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ перемещений коробок в ¤чейку...");
                        return;
                    }
                    if (oTrafficGoodTemp.MainTable.Rows.Count > 0)
                    {
                        RFMMessage.MessageBoxError("≈сть невыполненные перемещени¤ коробок в ¤чейку...");
                        return;
                    }

                    oTrafficGoodTemp.FilterCellsTargetList = null;
                    oTrafficGoodTemp.FilterCellsSourceList = nCellNewID_Temp.ToString();
                    oTrafficGoodTemp.FillData();
                    if (oTrafficGoodTemp.ErrorNumber != 0)
                    {
                        RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ перемещений коробок из ¤чейки...");
                        return;
                    }
                    if (oTrafficGoodTemp.MainTable.Rows.Count > 0)
                    {
                        RFMMessage.MessageBoxError("≈сть невыполненные перемещени¤ коробок из ¤чейки...");
                        return;
                    }

                    // 2. товар
                    if (!Convert.IsDBNull(c["FixedPackingID"]))
                    {
                        int nPackingTempID = Convert.ToInt32(c["FixedPackingID"]);
                        if (nPackingTempID == nPackingID)
                        {
                            RFMMessage.MessageBoxError("ячейка уже закреплена за этим товаром...");
                            return;
                        }

                        else
                        {
                            // ¤чейка закреплена за другим товаром
                            if (RFMMessage.MessageBoxYesNo("Ќова¤ ¤чейка закреплена за другим товаром\n(" + c["PackingAlias"].ToString() + ").\n\n" +
                                                           "ѕродолжить?") != DialogResult.Yes)
                            {
                                return;
                            }
                        }
                    }

                    // нова¤ ¤чейка пуста и по всем отношени¤м нам подходит

                    // спросим еще про остатки и трафики в/из текущей ¤чейки, если есть
                    // (DateAccept проверим уже в хр_пр)
                    oCellCur.FillTableCellsContents((int)nCellCurID, false);
                    if (oCellCur.ErrorNumber != 0)
                    {
                        RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ товаров в текущей ¤чейке...");
                        return;
                    }

                    foreach (DataRow cc in oCellCur.TableCellsContents.Rows)
                    {
                        if (Convert.ToDecimal(cc["Qnt"]) != 0)
                        {
                            if (RFMMessage.MessageBoxYesNo("¬ текущей ¤чейке имеетс¤ товар.\n" +
                                                           "¬есь он будет переведен в новую ¤чейку.\n\nѕродолжить?") != DialogResult.Yes)
                            {
                                return;
                            }
                        }
                    }


                    TrafficFrame oTrafficFrameCur = new TrafficFrame();
                    oTrafficFrameCur.FilterConfirmed = false;

                    oTrafficFrameCur.FilterCellsTargetList = nCellCurID.ToString();
                    oTrafficFrameCur.FillData();
                    if (oTrafficFrameCur.ErrorNumber != 0)
                    {
                        RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ транспортировок поддонов в текущую ¤чейку...");
                        return;
                    }
                    if (oTrafficFrameCur.MainTable.Rows.Count > 0)
                    {
                        if (RFMMessage.MessageBoxYesNo("≈сть невыполненные транспортировки поддонов в текущую ¤чейку.\n" +
                                                       "¬се они будут переведены в новую ¤чейку.\n\nѕродолжить?") != DialogResult.Yes)
                        {
                            return;
                        }
                    }

                    oTrafficFrameCur.FilterCellsTargetList = null;
                    oTrafficFrameCur.FilterCellsSourceList = nCellCurID.ToString();
                    oTrafficFrameCur.FillData();
                    if (oTrafficFrameCur.ErrorNumber != 0)
                    {
                        RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ транспортировок поддонов из текущей ¤чейки...");
                        return;
                    }
                    if (oTrafficFrameCur.MainTable.Rows.Count > 0)
                    {
                        if (RFMMessage.MessageBoxYesNo("≈сть невыполненные транспортировки поддонов из текущей ¤чейки.\n" +
                                                       "¬се они будут переведены в новую ¤чейку.\n\nѕродолжить?") != DialogResult.Yes)
                        {
                            return;
                        }
                    }


                    TrafficGood oTrafficGoodCur = new TrafficGood();
                    oTrafficGoodCur.FilterConfirmed = false;

                    oTrafficGoodCur.FilterCellsTargetList = nCellCurID.ToString();
                    oTrafficGoodCur.FillData();
                    if (oTrafficGoodCur.ErrorNumber != 0)
                    {
                        RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ перемещений коробок в текущую ¤чейку...");
                        return;
                    }
                    if (oTrafficGoodCur.MainTable.Rows.Count > 0)
                    {
                        if (RFMMessage.MessageBoxYesNo("≈сть невыполненные перемещени¤ коробок в текущую ¤чейку.\n" +
                                                       "¬се они будут переведены в новую ¤чейку.\n\nѕродолжить?") != DialogResult.Yes)
                        {
                            return;
                        }
                    }

                    oTrafficGoodCur.FilterCellsTargetList = null;
                    oTrafficGoodCur.FilterCellsSourceList = nCellCurID.ToString();
                    oTrafficGoodCur.FillData();
                    if (oTrafficGoodCur.ErrorNumber != 0)
                    {
                        RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ перемещений коробок из ¤чейки...");
                        return;
                    }
                    if (oTrafficGoodCur.MainTable.Rows.Count > 0)
                    {
                        if (RFMMessage.MessageBoxYesNo("≈сть невыполненные перемещени¤ коробок из текущей ¤чейки.\n" +
                                                       "¬се они будут переведены в новую ¤чейку.\n\nѕродолжить?") != DialogResult.Yes)
                        {
                            return;
                        }
                    }

                    // OwnerID? GoodStateID?

                    nCellNewID  = (int)nCellNewID_Temp;
                    oCellNew.ID = nCellNewID;

                    txtCellNewAddress.Text   = c["Address"].ToString();
                    txtStoreZoneNewName.Text = c["StoreZoneName"].ToString();
                }
            }
        }