예제 #1
0
        private bool grdFramesTraffics_Restore()
        {
            grdFramesTraffics.GetGridState();
            grdFramesTraffics.DataSource = null;
            if (grdData.Rows.Count == 0 ||
                oFrameCur.ID == null ||
                grdData.CurrentRow != null && grdData.IsStatusRow(grdData.CurrentRow.Index))
            {
                return(true);
            }

            oTrafficFrame.ClearError();
            oTrafficFrame.ClearFilters();

            if (!dtrFramesHistoryDates.dtpBegDate.IsEmpty)
            {
                oTrafficFrame.FilterDateBeg = dtrFramesHistoryDates.dtpBegDate.Value.Date;
            }
            if (!dtrFramesHistoryDates.dtpEndDate.IsEmpty)
            {
                oTrafficFrame.FilterDateEnd = dtrFramesHistoryDates.dtpEndDate.Value.Date;
            }
            oTrafficFrame.FilterFramesList = oFrameCur.ID.ToString();
            oTrafficFrame.FillData();
            grdFramesTraffics.Restore(oTrafficFrame.MainTable);
            return(oTrafficFrame.ErrorNumber == 0);
        }
예제 #2
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            int?   nCellTargetID = null;
            bool   bFrameDestroy = chkFrameDestroy.Checked;
            int    nPriority     = (int)numPriority.Value;
            string sMessage      = "—оздать операции дл¤ транспортировки контейнера\n";

            if (optCellTarget.Checked)
            {
                if (cboCellTargetAddress.SelectedIndex < 0)
                {
                    RFMMessage.MessageBoxError("Ќе выбрана ¤чейка...");
                    return;
                }
                nCellTargetID = (int)cboCellTargetAddress.SelectedValue;
                if (nCellTargetID == (int)cboCellSourceAddress.SelectedValue)
                {
                    RFMMessage.MessageBoxError("¬ыбрана та же ¤чейка...");
                    return;
                }
                sMessage += "в ¤чейку " + cboCellTargetAddress.Text;
            }
            else
            {
                sMessage += "в подход¤щую ¤чейку длительного хранени¤";
            }
            if (bFrameDestroy)
            {
                sMessage += "\n" + "(при выполнении операции контейнер будет разобран)";
            }
            sMessage += "?";

            if (RFMMessage.MessageBoxYesNo(sMessage) == DialogResult.Yes)
            {
                oTraffic.ClearError();
                oTraffic.CreateManual((int)oFrame.ID, nCellTargetID, nPriority, bFrameDestroy);

                if (oTraffic.ErrorNumber == 0)
                {
                    //RFMMessage.MessageBoxInfo("—оздано задание на транспортировку поддона.");
                    DialogResult = DialogResult.Yes;
                    Dispose();
                }
            }
        }
예제 #3
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (oTraffic.ID == null)
            {
                RFMMessage.MessageBoxError("Не определена операция транспортировки...");
                return;
            }

            int? nCellFinishID = null;
            int? nTrafficErrorID = null;
            bool bLockFrame = false, bLockCellSource = false, bLockCellFinish = false;

            if (optNoChanges.Checked)
            {
                if (RFMMessage.MessageBoxYesNo("Положение контейнера не меняется.\nСохранить только сведения и пользователе, устройстве и приоритете задания?") != DialogResult.Yes)
                {
                    return;
                }
            }

            if (optBufferCellSource.Checked)
            {
                if (cboBufferCellSourceAddress.SelectedValue == null || cboBufferCellSourceAddress.SelectedIndex < 0)
                {
                    RFMMessage.MessageBoxError("Не определен буфер ячейки-источника...\nСохранение невозможно.");
                    return;
                }
                if (RFMMessage.MessageBoxYesNo("Регистрируется установка контейнера в буфер ячейки-источника " + cboBufferCellSourceAddress.Text + ".\nСохранить?") == DialogResult.Yes)
                {
                    nCellFinishID = (int)cboBufferCellSourceAddress.SelectedValue;
                }
                else
                {
                    return;
                }
            }

            if (optBufferCellTarget.Checked)
            {
                if (cboBufferCellTargetAddress.SelectedValue == null || cboBufferCellTargetAddress.SelectedIndex < 0)
                {
                    RFMMessage.MessageBoxError("Не определен буфер ячейки-приемника...\nСохранение невозможно.");
                    return;
                }
                if (RFMMessage.MessageBoxYesNo("Регистрируется установка контейнера в буфер ячейки-приемника " + cboBufferCellTargetAddress.Text + ".\nСохранить?") == DialogResult.Yes)
                {
                    nCellFinishID = (int)cboBufferCellTargetAddress.SelectedValue;
                }
                else
                {
                    return;
                }
            }

            if (optCellTarget.Checked)
            {
                if (cboCellTargetAddress.SelectedValue == null || cboCellTargetAddress.SelectedIndex < 0)
                {
                    RFMMessage.MessageBoxError("Не определена ячейка-приемник...\nСохранение невозможно.");
                    return;
                }
                if (RFMMessage.MessageBoxYesNo("Регистрируется установка контейнера в ячейку-приемник " + cboCellTargetAddress.Text + ".\nСохранить?") == DialogResult.Yes)
                {
                    nCellFinishID = (int)cboCellTargetAddress.SelectedValue;
                }
                else
                {
                    return;
                }
            }

            if (optError.Checked)
            {
                if (cboTrafficError.SelectedValue == null || cboTrafficError.SelectedIndex < 0)
                {
                    RFMMessage.MessageBoxError("Не указана ошибка при неудачном выполнении задания...\nУкажите характер ошибки.");
                    return;
                }

                nTrafficErrorID = (int)cboTrafficError.SelectedValue;
                nCellFinishID   = (int)cboCellTargetAddress.SelectedValue;

                // код ошибки
                int     nSeverity = 0;
                DataRow rErr      = oTraffic.TableTrafficsFramesErrors.Rows.Find(nTrafficErrorID);
                if (rErr == null)
                {
                    RFMMessage.MessageBoxError("Не найден код ошибки...");
                    return;
                }
                nSeverity = Convert.ToInt32(rErr["Severity"]);
                if (nSeverity < 0)
                {
                    // специальный код ошибки (-> Lost&Found)
                    Setting oSet = new Setting();
                    string  sLostFoundAddress = oSet.FillVariable("sLostFoundAddress");
                    if (sLostFoundAddress == null || sLostFoundAddress.Length == 0)
                    {
                        RFMMessage.MessageBoxError("Не найдена виртуальная ячейка Lost&Found...");
                        return;
                    }

                    if (RFMMessage.MessageBoxYesNo("Регистрируется неудачное выполнение задания с ошибкой.\n" +
                                                   "Выбран тип ошибки: " + cboTrafficError.Text.Trim() + ",\n" +
                                                   "контейнер направляется в виртуальную ячейку " + sLostFoundAddress + ".\n" +
                                                   "Сохранить?") != DialogResult.Yes)
                    {
                        return;
                    }
                }
                else
                {
                    bLockFrame      = chkLockFrame.Checked;
                    bLockCellSource = chkLockCellSource.Checked;
                    bLockCellFinish = chkLockCellFinish.Checked;
                    string sText = "Регистрируется неудачное выполнение задания с ошибкой.\n" +
                                   "Контейнер считается установленным в ячейке-источнике " + cboCellSourceAddress.Text + ".\n";
                    if (bLockFrame)
                    {
                        sText += "Контейнер блокируется.\n";
                    }
                    if (bLockCellSource || bLockCellFinish)
                    {
                        Cell   oCellTemp  = new Cell();
                        string sShortCode = "";
                        if (bLockCellSource)
                        {
                            oCellTemp.ID = (int)cboCellSourceAddress.SelectedValue;
                            oCellTemp.FillData();
                            if (oCellTemp.ErrorNumber == 0 && oCellTemp.MainTable.Rows.Count == 1)
                            {
                                sShortCode = oCellTemp.MainTable.Rows[0]["StoreZoneTypeShortCode"].ToString();
                                if (sShortCode.Contains("STOR") || sShortCode.Contains("RILL"))
                                {
                                    sText += "Ячейка-источник " + cboCellSourceAddress.Text + " блокируется.\n";
                                }
                            }
                        }
                        if (bLockCellFinish)
                        {
                            oCellTemp.ID = (int)cboCellTargetAddress.SelectedValue;
                            oCellTemp.FillData();
                            if (oCellTemp.ErrorNumber == 0 && oCellTemp.MainTable.Rows.Count == 1)
                            {
                                sShortCode = oCellTemp.MainTable.Rows[0]["StoreZoneTypeShortCode"].ToString();
                                if (sShortCode.Contains("STOR") || sShortCode.Contains("RILL"))
                                {
                                    sText += "Ячейка-приемник " + cboCellTargetAddress.Text + " блокируется.\n";
                                }
                            }
                        }
                    }

                    if (RFMMessage.MessageBoxYesNo(sText + "\nСохранить?") != DialogResult.Yes)
                    {
                        return;
                    }
                }
            }

            int?nUserID, nDeviceID, nPriority;

            nUserID = nDeviceID = null;
            if (cboUser.SelectedValue != null && (int)cboUser.SelectedValue > 0)
            {
                nUserID = (int)cboUser.SelectedValue;
            }
            if (cboDevice.SelectedValue != null && (int)cboDevice.SelectedValue > 0)
            {
                nDeviceID = (int)cboDevice.SelectedValue;
            }
            nPriority = Convert.ToInt32(numPriority.Value);

            oTraffic.ClearError();
            oTraffic.SaveDataPartial((int)oTraffic.ID, nCellFinishID, nUserID, nDeviceID, nPriority, nTrafficErrorID);
            if (oTraffic.ErrorNumber == 0)
            {
                RFMMessage.MessageBoxInfo((optNoChanges.Checked) ? "Сохранено." : "Подтверждено.");
                if (txtFrameBarCode.Enabled)
                {
                    bSaved = true;
                    txtFrameBarCode.Text                                                 = txtFrameID4.Text = "";
                    chkStereo.Checked                                                    = false;
                    txtFrameGoodState.Text                                               = txtFrameOwner.Text = "";
                    cboCellSourceAddress.SelectedIndex                                   =
                        cboStoresZonesSource.SelectedIndex                               =
                            cboStoresZonesTypesSource.SelectedIndex                      =
                                cboBufferCellSourceAddress.SelectedIndex                 =
                                    cboCellTargetAddress.SelectedIndex                   =
                                        cboStoresZonesTarget.SelectedIndex               =
                                            cboStoresZonesTypesTarget.SelectedIndex      =
                                                cboBufferCellTargetAddress.SelectedIndex = -1;
                    txtFrameID4.Select();
                }
                else
                {
                    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) ? "зону отгрузки" : "пикинг") + " не созданы.");
            }
        }