예제 #1
0
        // обработка контейнеров --------------------------------------------------------

        /// <summary>
        /// добавление новых контейнеров в таблицу Ѕƒ, по окончании MainTable состоит из добавленных контейнеров
        /// </summary>
        public bool AddFramesEmpty(int nCnt)
        {
            ClearData();

            int nCntOk = 0;

            string sqlSelect = "insert Frames (OwnerID, GoodStateID, DateBirth, DateLastOperation, State, Actual) " +
                               "values (Null, Null, GetDate(), Null, ' ', 1) " +
                               "select @@identity as _NewID";
            SqlCommand _oCommand = new SqlCommand(sqlSelect, _Connect);

            for (int i = 1; i <= nCnt; i++)
            {
                try
                {
                    //FillReadings(new SqlDataAdapter(_oCommand), null, "TableNewFrames");
                    SqlDataAdapter adapter = new SqlDataAdapter(_oCommand);
                    adapter.Fill(_DS, "TableNewFrames");
                    AddMainTable(Convert.ToInt32(_DS.Tables["TableNewFrames"].Rows[nCntOk]["_NewID"]));
                    nCntOk++;
                }
                catch (Exception ex)
                {
                    _ErrorNumber = -13;
                    _ErrorStr    = "ќшибка при добавлении контейнера к списку контейнеров...\r\n" + ex.Message;
                    RFMMessage.MessageBoxError(_ErrorStr);
                    break;
                }
            }

            RFMMessage.MessageBoxInfo("—оздано новых контейнеров: " + nCntOk.ToString());

            return(_ErrorNumber == 0);
        }
        private bool grdData_Restore()
        {
            WaitOn(this);
            grdData.DataSource = null;

            DateTime?dDateBeg = null;

            if (!dtrDates.dtpBegDate.IsEmpty)
            {
                dDateBeg = dtrDates.dtpBegDate.Value.Date;
            }
            DateTime?dDateEnd = null;

            if (!dtrDates.dtpEndDate.IsEmpty)
            {
                dDateEnd = dtrDates.dtpEndDate.Value.Date;
            }
            int nMode = (radByAddress.Checked ? 1 : 2);

            oReport.Report_TripsPointsCalc(dDateBeg, dDateEnd, sSelectedDriversIDList, sSelectedOwnersIDList, nMode);
            if (oReport.ErrorNumber == 0 && oReport.MainTable != null)
            {
                if (oReport.MainTable.Rows.Count == 0)
                {
                    WaitOff(this);
                    RFMMessage.MessageBoxInfo("Нет данных...");
                }
                grdData.Restore(oReport.MainTable);
            }
            WaitOff(this);
            return(oReport.ErrorNumber == 0);
        }
예제 #3
0
 private bool grdOutputsDocuments_Restore()
 {
     WaitOn(this);
     grdOutputsDocuments.DataSource     = null;
     oOutputDocument.FilterDateBeg      = dtrDates.dtpBegDate.Value;
     oOutputDocument.FilterDateEnd      = dtrDates.dtpEndDate.Value;
     oOutputDocument.FilterDeliveryNeed = true;
     oOutputDocument.FillData();
     if (oOutputDocument.ErrorNumber == 0 && oOutputDocument.MainTable != null)
     {
         if (oOutputDocument.MainTable.Rows.Count == 0)
         {
             RFMMessage.MessageBoxInfo("Нет данных...");
         }
         else
         {
             string sFilter = "DeliveryPrice > 0";
             if (chkFactureNeedOnly.Checked)
             {
                 sFilter += " and PF_FactureNeed = true";
             }
             dt = CopyTable(oOutputDocument.MainTable, "dt", sFilter, "DateOutput, FactureNumber, TripAlias, PartnerTargetName, ID");
             if (dt != null)
             {
                 grdOutputsDocuments.Restore(dt);
             }
         }
     }
     ShowTotal();
     WaitOff(this);
     return(oOutputDocument.ErrorNumber == 0);
 }
예제 #4
0
        private void btnOutputsDocumentBring_Click(object sender, EventArgs e)
        {
            if (grdOutputsDocuments.Rows.Count == 0 || grdOutputsDocuments.CurrentRow == null ||
                !oOutputDocumentCur.ID.HasValue)
            {
                return;
            }

            int nOutputDocumentID = (int)oOutputDocumentCur.ID;

            oOutputDocumentCur.ReFillOne(nOutputDocumentID);

            if (!oOutputDocumentCur.IsConfirmed)
            {
                RFMMessage.MessageBoxInfo("≈ще не зарегистрирована отгрузка товара со склада.");
                return;
            }
            if (oOutputDocumentCur.IsBrought)
            {
                RFMMessage.MessageBoxInfo("”же подтверждена доставка товара получателю.");
                return;
            }
            if (!oOutputDocumentCur.TripID.HasValue ||
                (int)oOutputDocumentCur.TripID != nTripID)
            {
                RFMMessage.MessageBoxError("–асходный документ перенесен.");
                return;
            }

            if (StartForm(new frmOutputsDocumentsBring(nOutputDocumentID)) == DialogResult.Yes)
            {
                grdOutputsDocuments_Restore();
            }
        }
예제 #5
0
        private void btnOutputsDocumentZeroBring_Click(object sender, EventArgs e)
        {
            if (grdOutputsDocuments.Rows.Count == 0 || grdOutputsDocuments.CurrentRow == null ||
                !oOutputDocumentCur.ID.HasValue)
            {
                return;
            }

            int nOutputDocumentID = (int)oOutputDocumentCur.ID;

            oOutputDocumentCur.ReFillOne(nOutputDocumentID);

            if (!oOutputDocumentCur.IsConfirmed)
            {
                RFMMessage.MessageBoxInfo("≈ще не зарегистрирована отгрузка товара со склада.");
                return;
            }
            if (oOutputDocumentCur.IsBrought)
            {
                RFMMessage.MessageBoxInfo("”же подтверждена доставка товара получателю.");
                return;
            }
            if (!oOutputDocumentCur.TripID.HasValue ||
                (int)oOutputDocumentCur.TripID != nTripID)
            {
                RFMMessage.MessageBoxError("–асходный документ перенесен.");
                return;
            }

            if (RFMMessage.MessageBoxYesNo("¬нимание!\n\n" +
                                           "ѕри регистрации недоставки всего товара по документу количество доставленного товара равно нулю;\n" +
                                           "изменение доставленного количества стандартными средствами невозможно!\n\n" +
                                           "¬се-таки зарегистрировать недоставку всего товара по документу?") == DialogResult.Yes)
            {
                oOutputDocumentCur.FillTableOutputsDocumentsFailsReasons();
                _SelectedID = null;
                if (StartForm(new frmSelectID(this, oOutputDocumentCur.TableOutputsDocumentsFailsReasons, "Name, GuiltyName", "ѕричина недоставки получателю, ¬иновник")) == DialogResult.Yes)
                {
                    if (!_SelectedID.HasValue)
                    {
                        RFMMessage.MessageBoxError("Ќе указана причина недоставки товара получателю.");
                        return;
                    }

                    int nOutputDocumentFailReasonID = (int)_SelectedID;

                    oOutputDocumentCur.BringZero(((RFMFormBase)Application.OpenForms[0]).UserInfo.UserID, nOutputDocumentFailReasonID);
                }
                _SelectedID = null;

                grdOutputsDocuments_Restore();
            }
        }
예제 #6
0
        private void frmOutputEdit_Load(object sender, EventArgs e)
        {
            bool blResult = cboHeavers_Restore();

            if (!blResult)
            {
                RFMMessage.MessageBoxError("Ошибка получения списка грузчиков...");
                Dispose();
            }

            // сам расход
            oOutput.ID = ID;
            oOutput.FillData();
            if (oOutput.ErrorNumber != 0 || oOutput.MainTable.Rows.Count == 0)
            {
                RFMMessage.MessageBoxError("Ошибка при получении данных о расходе...");
                Dispose();
            }

            // транспортировки контейнеров в расходе
            oOutput.FillTableOutputsTraffics(ID, true);
            if (oOutput.ErrorNumber != 0)
            {
                RFMMessage.MessageBoxError("Ошибка при получении данных о транспортировках поддонов для расхода...");
                Dispose();
                return;
            }
            if (oOutput.TableOutputsTrafficsFrames.Rows.Count == 0)
            {
                RFMMessage.MessageBoxInfo("Для расхода не создано транспортировок поддонов.\n\r" +
                                          "Нечего подтверждать...");
                Dispose();
                return;
            }

            //
            DataRow r = oOutput.MainTable.Rows[0];

            txtID.Text            = r["ID"].ToString();
            txtErpCode.Text       = r["ErpCode"].ToString();
            txtDateOutput.Text    = r["DateOutput"].ToString().Substring(0, 10);
            txtOutputBarCode.Text = r["BarCode"].ToString();

            txtOwnerName.Text   = r["OwnerName"].ToString();
            txtPartnerName.Text = r["PartnerName"].ToString();

            txtGoodStateName.Text  = r["GoodStateName"].ToString();
            txtOutputTypeName.Text = r["OutputTypeName"].ToString();
            txtCellAdress.Text     = r["CellAddress"].ToString();

            btnSelect_Click(null, null);
        }
예제 #7
0
        // разрешение очередного пересечения ворот
        private bool PassPermit(bool bPermit)
        {
            if (grdData.CurrentRow == null)
            {
                return(false);
            }

            if (grdData.IsStatusRow(grdData.CurrentRow.Index))
            {
                return(false);
            }

            oPassCur.ReFillOne((int)oPassCur.ID);

            if (bPermit)
            {
                if (oPassCur.IsPermitted)
                {
                    RFMMessage.MessageBoxInfo("Очередное пересечение ворот разрешено.");
                    return(false);
                }
                // проверки
                if (oPassCur.DatePass.Date.AddDays(1) < DateTime.Now.Date)
                {
                    RFMMessage.MessageBoxError("Срок действия пропуска уже истек.");
                    return(false);
                }
            }
            else             //	if (!bPermit)
            {
                if (!oPassCur.IsPermitted)
                {
                    RFMMessage.MessageBoxInfo("Очередное пересечение ворот запрещено.");
                    return(false);
                }
                // проверки
                if (oPassCur.DatePass.Date.AddDays(1) <= DateTime.Now.Date)
                {
                    RFMMessage.MessageBoxError("Срок действия пропуска уже истек.");
                    return(false);
                }
            }

            oPassCur.Permit(oPassCur.ID, bPermit, ((RFMFormMain)Application.OpenForms[0]).UserInfo.UserID);
            if (oPassCur.ErrorNumber == 0)
            {
                //RFMMessage.MessageBoxInfo("Очередное пересечение ворот " + ((bPermit) ? "разрешено" : "запрещено") + ".");
                grdData_Restore();
            }
            return(oPassCur.ErrorNumber == 0);
        }
예제 #8
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            // Проверить наличие записей
            if (tableShifts.Rows.Count == 0)
            {
                return;
            }

            // Проверить заполненность старших смен
            foreach (DataRow r in tableShifts.Rows)
            {
                if (r["MajorName"].ToString().Length == 0)
                {
                    MessageBox.Show("Не заполнены данные о старших сотрудниках в смене");
                    return;
                }
            }

            // Для сохранения данных обнуляем oShift.MainTable и добавляем одну пустую строку
            oShift.ClearData();
            oShift.ID = -1;
            oShift.FillData();
            DataRow newRow = oShift.MainTable.NewRow();

            oShift.MainTable.Rows.Add(newRow);

            // Сохраняем данные
            foreach (DataRow r in tableShifts.Rows)
            {
                oShift.MainTable.Rows[0]["ID"]      = 0;
                oShift.MainTable.Rows[0]["DateBeg"] = r["DateBeg"];
                oShift.MainTable.Rows[0]["DateEnd"] = r["DateEnd"];
                oShift.MainTable.Rows[0]["MajorID"] = r["MajorID"];
                oShift.MainTable.Rows[0]["IsNight"] = r["IsNight"];
                oShift.MainTable.Rows[0]["Note"]    = r["Note"];

                WaitOn(this);
                oShift.ClearError();
                bool bResult = oShift.SaveData(0);
                WaitOff(this);
                if (!bResult | oShift.ErrorNumber != 0)
                {
                    RFMMessage.MessageBoxError("Ошибка сохранения данных о сменах...");
                    return;
                }
            }

            RFMMessage.MessageBoxInfo("Данные сохранены");
            DialogResult = DialogResult.Yes;
            Dispose();
        }
예제 #9
0
        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();
            }
        }
예제 #10
0
        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();
                }
            }
        }
예제 #11
0
 private bool dgvGoods_Restore()
 {
     oReport.ReportPickFreeRills();
     if (oReport.ErrorNumber != 0)
     {
         return(false);
     }
     if (oReport.DS.Tables.Count == 0 || oReport.DS.Tables[0].Rows.Count == 0)
     {
         RFMMessage.MessageBoxInfo("Нет товаров для перемещения!");
         return(false);
     }
     dgvGoods.Restore(oReport.DS.Tables[0]);
     tmrRestore.Enabled = true;
     return(oReport.ErrorNumber == 0);
 }
예제 #12
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (tcList.CurrentPage.Name.ToUpper().Contains("DATA"))
            {
                if (grdData.CurrentRow == null)
                {
                    return;
                }
                if (!oFactureCur.ID.HasValue)
                {
                    return;
                }

                // перечитать
                oFactureCur.ReFillOne((int)oFactureCur.ID);

                // проверки
                if (oFactureCur.OutputDocumentID.HasValue)
                {
                    OutputDocument oOutputDocumentTemp = new OutputDocument();
                    oOutputDocumentTemp.ID = oFactureCur.OutputDocumentID;
                    oOutputDocumentTemp.ReFillOne((int)oOutputDocumentTemp.ID);
                    if (oOutputDocumentTemp.DateBring != null)
                    {
                        RFMMessage.MessageBoxError("Заказ уже доставлен клиенту...\nУдаление не выполняется.");
                        return;
                    }
                }

                if (RFMMessage.MessageBoxYesNo("Удалить счет-фактуру?") == DialogResult.Yes)
                {
                    Refresh();
                    WaitOn(this);
                    bool bResult = oFactureCur.Delete((int)oFactureCur.ID);
                    WaitOff(this);
                    if (bResult && oFactureCur.ErrorNumber == 0)
                    {
                        RFMMessage.MessageBoxInfo("Счет-фактура удален.");
                    }
                    else
                    {
                        RFMMessage.MessageBoxError("Ошибка при удалении счета-фактуры...");
                    }
                    grdData_Restore();
                }
            }
        }
예제 #13
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (RFMMessage.MessageBoxYesNo("Сохранить приход?") != DialogResult.Yes)
            {
                return;
            }
            bool bSave = false;

            for (int i = 0; i < oInput.TableInputsGoods.Rows.Count; i++)
            {
                if ((decimal)oInput.TableInputsGoods.Rows[i]["QntArranged"] > 0)
                {
                    bSave = true;
                    break;
                }
            }
            if (!bSave && RFMMessage.MessageBoxYesNo("Не обработано ни одного товара!\nВсе равно сохранить приход?") == DialogResult.No)
            {
                return;
            }

            int?nUserID = null;

            if (cboHeavers.SelectedValue != null)
            {
                nUserID = (int)cboHeavers.SelectedValue;
            }
            int?nCellID = null;

            if (cboCells.SelectedValue != null)
            {
                nCellID = (int)cboCells.SelectedValue;
            }

            RFMCursorWait.Set(true);
            oInput.ClearError();
            oInput.InputsBoxesSave(nInputID, nUserID, nCellID);
            RFMCursorWait.Set(true);
            if (oInput.ErrorNumber == 0)
            {
                RFMMessage.MessageBoxInfo("Приход успешно сохранен!");
                DialogResult = DialogResult.Yes;
                this.Dispose();
            }
            return;
        }
예제 #14
0
        private bool grdOutputsDocumentsGoods_Restore()
        {
            grdOutputsDocumentsGoods.DataSource = null;

            oOutputDocument.FillTableOutputsDocumentsGoods();
            if (oOutputDocument.ErrorNumber != 0 || oOutputDocument.TableOutputsDocumentsGoods == null)
            {
                RFMMessage.MessageBoxError("ќшибка при получении данных о товарах в расходном документе...");
                return(false);
            }

            if (oOutputDocument.TableOutputsDocumentsGoods.Rows.Count == 0)
            {
                RFMMessage.MessageBoxError("Ќет данных о товарах в расходном документе...");
                return(false);
            }

            // только товары с проблемами
            string sFilter = "QntWished <> QntConfirmed";

            if (oOutputDocument.IsBrought)
            {
                sFilter += " or QntWished <> QntBrought or QntConfirmed <> QntBrought";
            }

            dt = null;
            dt = CopyTable(oOutputDocument.TableOutputsDocumentsGoods, "dt", sFilter, "ByOrder, GoodGroupName, GoodAlias");
            if (dt == null)
            {
                RFMMessage.MessageBoxError("ќшибка при получении данных о проблемных товарах в расходном документе...");
                return(false);
            }
            else
            {
                if (dt.Rows.Count == 0)
                {
                    RFMMessage.MessageBoxInfo("¬ расходном документе нет проблемных товаров...");
                    return(false);
                }
            }

            grdOutputsDocumentsGoods.Restore(dt);

            return(oOutputDocument.ErrorNumber == 0);
        }
예제 #15
0
        private bool grdTrips_Restore()
        {
            WaitOn(this);
            grdTrips.DataSource = null;

            DateTime?dDateBeg = null;

            if (!dtrDates.dtpBegDate.IsEmpty)
            {
                dDateBeg = dtrDates.dtpBegDate.Value.Date;
            }
            DateTime?dDateEnd = null;

            if (!dtrDates.dtpEndDate.IsEmpty)
            {
                dDateEnd = dtrDates.dtpEndDate.Value.Date;
            }
            string sSelectedDriversIDList = ucSelectRecordID_Drivers.GetIdString();

            oReport.Report_DriversWorksTimes(dDateBeg, dDateEnd, sSelectedDriversIDList,
                                             ((chkTotal.Checked) ? 2 : 1));
            if (oReport.ErrorNumber == 0 && oReport.MainTable != null)
            {
                if (oReport.MainTable.Rows.Count == 0)
                {
                    WaitOff(this);
                    RFMMessage.MessageBoxInfo("Нет данных...");
                }
                grdTrips.Restore(oReport.MainTable);
            }

            foreach (DataGridViewColumn c in grdTrips.Columns)
            {
                if (c.Name.Substring(c.Name.Length - 1, 1) != "_")
                {
                    c.Visible = !chkTotal.Checked;
                }
            }


            WaitOff(this);
            return(oReport.ErrorNumber == 0);
        }
        private void frmOutputsDocumentsTTNData_Load(object sender, EventArgs e)
        {
            bool bOK = true;

            if (dt == null)
            {
                if (oOutputDocument != null)
                {
                    if (FillOutputsDocuments_dt())
                    {
                        if (dt == null || dt.Rows.Count == 0)
                        {
                            RFMMessage.MessageBoxInfo("Нет расходных документов...");
                            bOK = false;
                        }
                    }
                }

                if (oOutput != null)
                {
                    if (FillOutputs_dt())
                    {
                        if (dt == null || dt.Rows.Count == 0)
                        {
                            RFMMessage.MessageBoxInfo("Нет расходов...");
                            bOK = false;
                        }
                    }
                }
            }

            if (bOK)
            {
                grdData.IsCheckerShow = true;
                grdData_Restore();
            }
            else
            {
                Dispose();
                return;
            }
        }
예제 #17
0
 private void btnSave_Click(object sender, EventArgs e)
 {
     switch (tcList.SelectedTab.Name)
     {
     case "tabData":
     case "tabOddmentsSaved":
         if (RFMMessage.MessageBoxYesNo("Сохранить текущие остатки?") == DialogResult.Yes)
         {
             oOddmentSavedList.ClearError();
             int nNewOddmentSavedID = oOddmentSavedList.SaveCopyData();
             if (oOddmentSavedList.ErrorNumber == 0 && nNewOddmentSavedID > 0)
             {
                 RFMMessage.MessageBoxInfo("Остатки сохранены.");
                 grdOddmentsSaved_Restore();
                 grdOddmentsSaved.GridSource.Position = grdOddmentsSaved.GridSource.Find(oOddmentSavedList.ColumnID, nNewOddmentSavedID);
             }
         }
         break;
     }
 }
예제 #18
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (tcList.CurrentPage.Name.ToUpper().Contains("DATA"))
            {
                if (grdData.CurrentRow == null)
                {
                    return;
                }
                if (!oWarrantCur.ID.HasValue)
                {
                    return;
                }

                // перечитать
                oWarrantCur.ReFillOne((int)oWarrantCur.ID);

                // проверки
                if (oWarrantCur.DateReturn != null)
                {
                    RFMMessage.MessageBoxError("Зарегистрирован возврат доверенности...\nУдаление не выполняется.");
                    return;
                }

                if (RFMMessage.MessageBoxYesNo("Удалить доверенность?") == DialogResult.Yes)
                {
                    Refresh();
                    WaitOn(this);
                    bool bResult = oWarrantCur.Delete((int)oWarrantCur.ID);
                    WaitOff(this);
                    if (bResult && oWarrantCur.ErrorNumber == 0)
                    {
                        RFMMessage.MessageBoxInfo("Доверенность удалена.");
                    }
                    else
                    {
                        RFMMessage.MessageBoxError("Ошибка при удалении доверенности...");
                    }
                    grdData_Restore();
                }
            }
        }
예제 #19
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (cboHeavers.SelectedIndex < 0 || cboHeavers.SelectedValue == null)
            {
                RFMMessage.MessageBoxError("Не указан грузчик...");
                return;
            }

            bool lChecked = false;

            foreach (DataRow r in oOutput.TableOutputsTrafficsFrames.Rows)
            {
                if ((bool)r["Checked"] && !(bool)r["IsConfirmed"])
                {
                    lChecked = true;
                }
            }
            if (!lChecked)
            {
                RFMMessage.MessageBoxError("Не отмечено ни одной транспортировки...");
                return;
            }

            if (RFMMessage.MessageBoxYesNo("Подтвердить транспортировки поддонов?") == DialogResult.Yes)
            {
                Refresh();
                WaitOn(this);
                oOutput.ClearError();
                bool bResult = oOutput.ConfirmTraffics(ID, true, null, (int)cboHeavers.SelectedValue, oOutput.TableOutputsTrafficsFrames);
                WaitOff(this);
                if (bResult && oOutput.ErrorNumber == 0)
                {
                    RFMMessage.MessageBoxInfo("Подтверждены транспортировки поддонов.");
                    Dispose();
                }
                else
                {
                    RFMMessage.MessageBoxError("Ошибка подтверждения транспортировок поддонов...");
                }
            }
        }
예제 #20
0
        private void btnExit_Click(object sender, EventArgs e)
        {
            bool bNotNull = false;

            for (int _i = 0; _i < oInputDocument.TableInputsDocumentsGoods.Rows.Count; _i++)
            {
                if ((decimal)oInputDocument.TableInputsDocumentsGoods.Rows[_i]["QntBrought"] > 0)
                {
                    bNotNull = true;
                    break;
                }
            }
            if (!bNotNull && bAskedDelete)
            {
                if (oInputDocument.Delete((int)oInputDocument.ID))
                {
                    RFMMessage.MessageBoxInfo("Не введено ни одного товара.\n Документ удален.");
                }
            }
            Dispose();
        }
예제 #21
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            DataTable dt = CopyTable((DataTable)dgvCells.GridSource.DataSource, "ChangedCells", "Rank <> PreRank", "", new string[] { "ID", "Rank" });

            if (dt.Rows.Count > 0)
            {
                string       strCells = null;
                StringWriter swTable  = new StringWriter();
                dt.WriteXml(swTable);
                strCells = swTable.ToString();
                if (oCell.SaveRank(strCells))
                {
                    RFMMessage.MessageBoxInfo("Сохранено!");
                    dgvCells_Restore();
                }
            }
            else
            {
                RFMMessage.MessageBoxInfo("Нет изменений...");
            }
        }
        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();
            }
        }
예제 #23
0
        private void mniService_CellsForOutputsClear_Click(object sender, EventArgs e)
        {
            if (RFMMessage.MessageBoxYesNo("Выполнить \"очистку\" ячеек отгрузки\n" +
                                           "(все товары без контейнеров, зарегистрированные в ячейках отгрузки и не предназначенные для выдачи, " +
                                           "будут \"перенесены\" в виртуальную ячейку Lost&Found)?") != DialogResult.Yes)
            {
                return;
            }

            if (RFMMessage.MessageBoxYesNo("ВНИМАНИЕ!\n\n" +
                                           "Операция \"очистки\" ячеек отгрузки является необратимой!\n\n" +
                                           "Все-таки выполнить \"очистку\" ячеек отгрузки?") != DialogResult.Yes)
            {
                return;
            }

            WaitOn(this);
            if (oCellContentSnapshotList.CellsForOutputsClear(((RFMFormBase)Application.OpenForms[0]).UserInfo.UserID))
            {
                WaitOff(this);
                RFMMessage.MessageBoxInfo("Операция \"очистки\" ячеек отгрузки выполнена.");
            }
            WaitOff(this);
        }
예제 #24
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (oTraffic.ID == null)
            {
                RFMMessage.MessageBoxError("Не определена операция перемещения штук/коробок...");
                return;
            }

            decimal?nQntConfirmed = numBoxConfirmed.Value * _nInBox + numRestQntConfirmed.Value;

            int? nCellFinishID   = null;
            int? nTrafficErrorID = null;
            bool bLockCellFinish = false;

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

            if (optCellTarget.Checked)
            {
                if (cboCellTargetAddress.SelectedValue == null || cboCellTargetAddress.SelectedIndex < 0)
                {
                    RFMMessage.MessageBoxError("Не определена ячейка-приемник...\nСохранение невозможно.");
                    return;
                }

                if (nQntConfirmed > _nQntWished)
                {
                    if (RFMMessage.MessageBoxYesNo("Количество фактически перемещенного товара больше, чем заказано.\nВсе-таки сохранить?") != DialogResult.Yes)
                    {
                        return;
                    }
                }

                if (nQntConfirmed == 0)
                {
                    if (RFMMessage.MessageBoxYesNo("Не указано количество фактически перемещенного товара.\nВсе-таки сохранить?") != DialogResult.Yes)
                    {
                        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;
                }
                bLockCellFinish = chkLockCellFinish.Checked;
                if (RFMMessage.MessageBoxYesNo("Регистрируется неудачное выполнение задания с ошибкой.\n" +
                                               "Товар считается размещенным в ячейке-источнике " + cboCellSourceAddress.Text + ".\n" +
                                               ((bLockCellFinish) ? "Ячейка-приемник " + cboCellTargetAddress.Text + " блокируется.\n\n" : "") +
                                               "Сохранить?") == DialogResult.Yes)
                {
                    nTrafficErrorID = (int)cboTrafficError.SelectedValue;
                    nCellFinishID   = (int)cboCellTargetAddress.SelectedValue;
                    nQntConfirmed   = 0;
                }
                else
                {
                    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, nQntConfirmed,
                                     nUserID, nDeviceID, nPriority,
                                     nTrafficErrorID, bLockCellFinish);
            if (oTraffic.ErrorNumber == 0)
            {
                RFMMessage.MessageBoxInfo((optNoChanges.Checked) ? "Сохранено." : "Подтверждено.");
                {
                    DialogResult = DialogResult.Yes;
                    Dispose();
                }
            }
        }
예제 #25
0
        private void frmCellsMedicationFrames_Load(object sender, EventArgs e)
        {
            bool lResult = true;

            grcBoxQnt.AgrType      =
                grcPalQnt.AgrType  =
                    grcQnt.AgrType =
                        EnumAgregate.Sum;

            // параметры ячейки
            oCell.FillData();
            if (oCell.ErrorNumber != 0 || oCell.MainTable.Rows.Count == 0)
            {
                RFMMessage.MessageBoxError("Ошибка при получении данных о ячейке...");
                Dispose();
            }

            DataRow r = oCell.MainTable.Rows[0];

            if (r == null)
            {
                RFMMessage.MessageBoxError("Не определена ячейка...");
                lResult = false;
            }

            if (lResult)
            {
                // работаем только с контейнерными ячейками
                if (r["ForFrames"] != DBNull.Value && !(bool)r["ForFrames"])
                {
                    RFMMessage.MessageBoxError("Ячейка не предназначена для контейнеров...");
                    lResult = false;
                }
            }

            if (lResult)
            {
                _sAddress      = r["Address"].ToString();
                lblCellID.Text = _sAddress + " (код " + r["ID"].ToString() + ")";

                if (r["FixedOwnerID"] != DBNull.Value && r["FixedOwnerID"] != null)
                {
                    _nFixedOwnerID = (int)r["FixedOwnerID"];
                    cboFixedOwner_Restore((int)_nFixedOwnerID);
                    if (cboFixedOwner.Text != null)
                    {
                        RFMMessage.MessageBoxInfo("Внимание!\n\nЯчейка закреплена за хранителем:\n" + cboFixedOwner.Text);
                    }
                }
                if (r["FixedGoodStateID"] != DBNull.Value && r["FixedGoodStateID"] != null)
                {
                    _nFixedGoodStateID = (int)r["FixedGoodStateID"];
                    cboFixedGoodState_Restore((int)_nFixedGoodStateID);
                    if (cboFixedGoodState.Text != null)
                    {
                        RFMMessage.MessageBoxInfo("Внимание!\n\nЯчейка закреплена за состоянием:\n" + cboFixedGoodState.Text);
                    }
                }
                if (r["FixedPackingID"] != DBNull.Value && r["FixedPackingID"] != null)
                {
                    _nFixedPackingID = (int)r["FixedPackingID"];
                    cboFixedPacking_Restore((int)_nFixedPackingID);
                    if (cboFixedPacking.Text != null)
                    {
                        RFMMessage.MessageBoxInfo("Внимание!\n\nЯчейка закреплена за товаром:\n" + cboFixedPacking.Text);
                    }
                }

                string sMaxPalletQnt = "";
                if (r["MaxPalletQnt"] != DBNull.Value)
                {
                    _nMaxPalletQnt = (decimal)r["MaxPalletQnt"];
                }
                else
                {
                    if (r["StoreZoneMaxPalletQnt"] != DBNull.Value)
                    {
                        _nMaxPalletQnt = (decimal)r["StoreZoneMaxPalletQnt"];
                    }
                    else
                    {
                        _nMaxPalletQnt = 999999;
                        sMaxPalletQnt  = "не огр.";
                    }
                }
                if (sMaxPalletQnt.Length == 0)
                {
                    sMaxPalletQnt = (_nMaxPalletQnt - System.Math.Round(_nMaxPalletQnt, 0) != 0) ? _nMaxPalletQnt.ToString() : ((int)System.Math.Round(_nMaxPalletQnt, 0)).ToString();
                }
                lblMaxPalletQnt.Text = lblMaxPalletQnt.Text + " " + sMaxPalletQnt;

                // содержимое ячейки
                oCell.FillTableCellsContents(oCell.ID, false);
                if (oCell.ErrorNumber != 0)
                {
                    lResult = false;
                }
            }

            if (lResult)
            {
                // если в ячейке оказались и контейнеры и товары - оставим только контейнеры
                bool bDiff = false;
                foreach (DataRow rd in oCell.TableCellsContents.Rows)
                {
                    if (Convert.IsDBNull(rd["FrameID"]))
                    {
                        bDiff = true;
                        break;
                    }
                }
                if (bDiff)
                {
                    DataView dv = new DataView(oCell.TableCellsContents);
                    dv.RowFilter = "FrameID is not Null";
                    DataTable dt = dv.ToTable();
                    oCell.TableCellsContents.Clear();
                    foreach (DataRow rrd in dt.Rows)
                    {
                        oCell.TableCellsContents.ImportRow(rrd);
                    }
                }
            }

            if (lResult)
            {
                oCell.TableCellsContents.Columns.Add("FrameNew", Type.GetType("System.Boolean"));
                oCell.TableCellsContents.Columns.Add("Changes", Type.GetType("System.String"));
                foreach (DataRow rd in oCell.TableCellsContents.Rows)
                {
                    rd["FrameNew"] = false;
                    rd["Changes"]  = "";
                }

                grdCellsContents_Restore();
            }

            if (lResult)
            {
                lResult = cboFrame_Restore();
                if (lResult)
                {
                    //  заполнение cbo-классификаторов
                    lResult = cboGood_Restore() &&
                              cboOwner_Restore() &&
                              cboGoodState_Restore();
                }
                if (!lResult)
                {
                    RFMMessage.MessageBoxError("Ошибка при заполнении классификаторов (контейнеры, товары)...");
                }
            }

            if (lResult)
            {
                cboFrame.SelectedValue     = -1;
                cboGood.SelectedValue      = -1;
                cboOwner.SelectedValue     = -1;
                cboGoodState.SelectedValue = -1;
                numQnt.Value = 0;
            }

            // если что-то не получилось - выход
            if (!lResult)
            {
                Dispose();
            }

            pnlDataChange.Enabled = false;
            btnAdd.Enabled        = true;
            btnDelete.Enabled     = false;
            btnGridSave.Enabled   = false;
            btnGridUndo.Enabled   = false;

            //grdCellsContents.Select();

            _bLoaded = true;
        }
예제 #26
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();
                }
            }
        }
예제 #27
0
        private void btnGo_Click(object sender, EventArgs e)
        {
            // возвращаем код выбранного товара/упаковки в родительскую форму, поле _SelectedPackingID

            string _SelectedPackingsIDList    = null;
            int?   _SelectedPackingID         = null;
            string _SelectedPackingsAliasText = "";

            if (grdData.Rows.Count > 0)
            {
                if (ucSelect != null)
                {
                    ucSelect.SaveData(grdData, "GoodAlias", useCheck);
                }
                else
                {
                    if (useCheck && grdData.IsCheckerShow)
                    {
                        // список ID
                        _SelectedPackingsIDList    = "";
                        _SelectedPackingsAliasText = "";

                        DataView dMarked = new DataView(oGoods.MainTable);
                        dMarked.RowFilter = "IsMarked = true";
                        dMarked.Sort      = grdData.GridSource.Sort;
                        int i = 0;
                        int nFirstCntRecords = 3;                         // количество первых записей дл¤ наборного текстового значени¤
                        foreach (DataRowView r in dMarked)
                        {
                            if (!Convert.IsDBNull(r["PackingID"]))
                            {
                                _SelectedPackingsIDList += r["PackingID"].ToString() + ",";

                                if (i < nFirstCntRecords)
                                {
                                    _SelectedPackingsAliasText += r["PackingAlias"].ToString().Trim() + ", ";
                                }
                                else
                                {
                                    if (i == nFirstCntRecords)
                                    {
                                        _SelectedPackingsAliasText += "...";
                                    }
                                }
                                i++;
                            }
                        }
                        if (_SelectedPackingsIDList.Length == 0)
                        {
                            // нет отметок - берем текущую запись
                            if (grdData.CurrentRow != null)
                            {
                                _SelectedPackingsIDList    = grdData.CurrentRow.Cells["grcPackingID"].Value.ToString() + ",";
                                _SelectedPackingsAliasText = grdData.CurrentRow.Cells["grcGoodAlias"].Value.ToString().Trim();
                            }
                        }

                        // приводим наборное текстовое поле к виду: (5) раз, два, три, ...
                        if (_SelectedPackingsIDList.Length == 0)
                        {
                            _SelectedPackingsIDList    = null;
                            _SelectedPackingsAliasText = "";
                        }
                        else
                        {
                            _SelectedPackingsAliasText = _SelectedPackingsAliasText.Trim();
                            if (_SelectedPackingsAliasText.Substring(_SelectedPackingsAliasText.Length - 1, 1) == ",")
                            {
                                _SelectedPackingsAliasText = _SelectedPackingsAliasText.Substring(0, _SelectedPackingsAliasText.Length - 1);
                            }
                            _SelectedPackingsAliasText = "(" + RFMUtilities.Occurs(_SelectedPackingsIDList, ",").ToString() + "): " +
                                                         _SelectedPackingsAliasText;
                        }

                        if (bFromParentForm && parentForm != null)
                        {
                            RFMUtilities.SetFormField(parentForm, "_SelectedPackingsIDList", _SelectedPackingsIDList);
                            RFMUtilities.SetFormField(parentForm, "_SelectedPackingsAliasText", _SelectedPackingsAliasText);
                        }
                    }
                    else
                    {
                        // ID текущей строки
                        if (grdData.CurrentRow != null)
                        {
                            _SelectedPackingID         = (int)grdData.CurrentRow.Cells["grcPackingID"].Value;
                            _SelectedPackingsAliasText = grdData.CurrentRow.Cells["grcGoodAlias"].Value.ToString().Trim();
                        }

                        if (bFromParentForm && parentForm != null)
                        {
                            RFMUtilities.SetFormField(parentForm, "_SelectedPackingID", _SelectedPackingID);
                            RFMUtilities.SetFormField(parentForm, "_SelectedPackingsAliasText", _SelectedPackingsAliasText);
                        }
                    }
                }
            }
            else
            {
                RFMMessage.MessageBoxInfo("Ќе выбрано ни одного товара...");
            }

            DialogResult = DialogResult.Yes;
            Dispose();
        }
예제 #28
0
        private bool grdTrips_Restore()
        {
            WaitOn(this);
            grdTrips.DataSource = null;

            DateTime?dDateBeg = null;

            if (!dtrDates.dtpBegDate.IsEmpty)
            {
                dDateBeg = dtrDates.dtpBegDate.Value.Date;
            }
            DateTime?dDateEnd = null;

            if (!dtrDates.dtpEndDate.IsEmpty)
            {
                dDateEnd = dtrDates.dtpEndDate.Value.Date;
            }

            string sSelectedOwnersIDList          = ucSelectRecordID_Owners.GetIdString();
            string sSelectedPartnersIDList        = ucSelectRecordID_Partners.GetIdString();
            string sSelectedDepartmentNamesList   = null;
            string sSelectedDepartmentNamesIDList = ucSelectRecordID_DepartmentNames.GetIdString();

            if (sSelectedDepartmentNamesIDList != null)
            {
                sSelectedDepartmentNamesIDList = "," + sSelectedDepartmentNamesIDList + ",";
                if (TableDepartmentNames != null && TableDepartmentNames.Rows.Count > 0)
                {
                    sSelectedDepartmentNamesList = sNamesListDeliliter;
                    foreach (DataRow mn in TableDepartmentNames.Rows)
                    {
                        if (sSelectedDepartmentNamesIDList.Contains("," + mn["ID"].ToString().Trim() + ","))
                        {
                            sSelectedDepartmentNamesList += mn["DepartmentName"].ToString() + sNamesListDeliliter;
                        }
                    }
                }
            }
            string sSelectedManagerNamesList   = null;
            string sSelectedManagerNamesIDList = ucSelectRecordID_ManagerNames.GetIdString();

            if (sSelectedManagerNamesIDList != null)
            {
                if (TableManagerNames != null && TableManagerNames.Rows.Count > 0)
                {
                    sSelectedManagerNamesList   = sNamesListDeliliter;
                    sSelectedManagerNamesIDList = "," + sSelectedManagerNamesIDList + ",";
                    foreach (DataRow mn in TableManagerNames.Rows)
                    {
                        if (sSelectedManagerNamesIDList.Contains("," + mn["ID"].ToString().Trim() + ","))
                        {
                            sSelectedManagerNamesList += mn["ManagerName"].ToString() + sNamesListDeliliter;
                        }
                    }
                }
            }

            string sMode = "";

            if (optGroupByD.Checked)
            {
                sMode = "D";
            }
            if (optGroupByM.Checked)
            {
                sMode = "M";
            }
            if (optGroupByO.Checked)
            {
                sMode = "O";
            }
            if (optGroupByP.Checked)
            {
                sMode = "P";
            }
            oReport.Report_TripsCosts(dDateBeg, dDateEnd,
                                      sSelectedOwnersIDList, sSelectedPartnersIDList, sSelectedDepartmentNamesList, sSelectedManagerNamesList,
                                      sMode);
            if (oReport.ErrorNumber == 0 && oReport.MainTable != null)
            {
                if (oReport.MainTable.Rows.Count == 0)
                {
                    WaitOff(this);
                    RFMMessage.MessageBoxInfo("Нет данных...");
                }
                grdTrips.Restore(oReport.MainTable);
            }

            grcTrips_BillNumber.Visible     =
                grcTrips_DateOutput.Visible =
                    (sMode == "O");
            grcTrips_DepartmentName.Visible = (sMode == "O" || sMode == "D");
            grcTrips_ManagerName.Visible    = (sMode == "O" || sMode == "M");
            grcTrips_PartnerName.Visible    = (sMode == "O" || sMode == "P");

            WaitOff(this);
            return(oReport.ErrorNumber == 0);
        }
예제 #29
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            // выбранная этикетка
            if (cboBarCodeLabels.SelectedValue == null || cboBarCodeLabels.SelectedIndex < 0)
            {
                RFMMessage.MessageBoxError("Не выбран шаблон этикетки...");
                return;
            }

            // выбранный принтер
            if (cboPrinters.SelectedValue == null || cboPrinters.SelectedIndex < 0)
            {
                RFMMessage.MessageBoxError("Не выбран принтер...");
                return;
            }

            DataRow rLabel = oBarCodeLabel.MainTable.Rows.Find((int)cboBarCodeLabels.SelectedValue);

            if (rLabel == null)
            {
                return;
            }

            DataRow rPrinter = oPrinter.MainTable.Rows.Find((int)cboPrinters.SelectedValue);

            if (rPrinter == null)
            {
                return;
            }

            // разбираем строку-описание шаблона этикетки
            int nCopies = Convert.ToInt32(numCopies.Value);

            if (nCopies == 0)
            {
                nCopies = 1;
            }
            bool   bInvert = (bool)rLabel["InvertLabel"];
            string sData   = rLabel["Data"].ToString();
            string sNormalOrientationTemplate = rLabel["NormalOrientationTemplate"].ToString();
            string sInvertOrientationTemplate = rLabel["InvertOrientationTemplate"].ToString();

            string sEol          = Convert.ToChar(13).ToString() + Convert.ToChar(10).ToString();
            string sOutputString = rLabel["Template"].ToString() + sEol;
            string sDataTemp     = "";

            int i = 0;

            foreach (DataRow r in dataTable.Rows)
            {
                i++;
                // для каждой ячейки делаем добавляем строки данных
                sDataTemp = sData;
                if (sDataTemp.Contains("##InvertLabel##"))
                {
                    sDataTemp = sDataTemp.Replace("##InvertLabel##", (bInvert && i % 2 == 0) ? sInvertOrientationTemplate : sNormalOrientationTemplate);
                }
                if (sDataTemp.Contains("##Copies##"))
                {
                    sDataTemp = sDataTemp.Replace("##Copies##", nCopies.ToString());
                }

                string sDelimiter = "#";
                string sField     = "";
                while (sDataTemp.Contains("#"))
                {
                    sField = GetField(sDataTemp, sDelimiter);
                    if (sField.Length > 0)
                    {
                        try
                        {
                            DataColumn col = dataTable.Columns[sField];
                            if (col != null)
                            {
                                sDataTemp = SetField(sDataTemp, sDelimiter, sField, r[sField].ToString());
                            }
                            else
                            {
                                sDataTemp = SetField(sDataTemp, sDelimiter, sField, "");
                            }
                        }
                        catch (Exception)
                        {
                            sDataTemp = SetField(sDataTemp, sDelimiter, sField, "");
                        }
                    }
                    else
                    {
                        break;
                    }
                }

                sOutputString = sOutputString + sDataTemp + sEol;
            }
            sOutputString = sOutputString + Convert.ToChar(12);

            // сохраняем полученную строку в файл
            string sFileName = ((RFMFormMain)Application.OpenForms[0]).UserInfo.UserLocPath;

            if (!Directory.Exists(sFileName))
            {
                sFileName = Path.GetTempPath();
            }
            sFileName += sType + "_BCLabel.txt";
            if (File.Exists(sFileName))
            {
                File.Delete(sFileName);
            }
            FileStream fs = new FileStream(sFileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);

            fs.Close();
            if (File.Exists(sFileName))
            {
                using (StreamWriter sw = new StreamWriter(sFileName, true, System.Text.Encoding.Default))
                {
                    sw.Write(sOutputString);
                    sw.Flush();
                    sw.Close();
                }

                // получаем имя принтера, на который будем копировать файл
                string sPrinter = "";
                if ((bool)rPrinter["Network"])
                {
                    sPrinter = rPrinter["SystemName"].ToString() + @"\" + rPrinter["ShareName"].ToString();
                }
                else
                {
                    sPrinter = rPrinter["PortName"].ToString();
                }

                // копируем файл
                try
                {
                    File.Copy(sFileName, sPrinter, true);
                    RFMMessage.MessageBoxInfo("Этикетки отправлены на печать.");

                    DialogResult = DialogResult.Yes;
                    Dispose();
                }
                catch (Exception ex)
                {
                    RFMMessage.MessageBoxError("Ошибка при отправке на печать: " + ex.Message);
                }
            }
        }
예제 #30
0
        private bool PassSetDateFact(bool bClear, bool bIsDeparture)
        {
            if (grdData.CurrentRow == null)
            {
                return(false);
            }

            if (grdData.IsStatusRow(grdData.CurrentRow.Index))
            {
                return(false);
            }

            oPassCur.ReFillOne((int)oPassCur.ID);

            if (bClear)
            {
                // очистить дату-время
                if (bIsDeparture)
                {
                    if (!oPassCur.DateEnd.HasValue)
                    {
                        RFMMessage.MessageBoxInfo("Время выезда машины еще не зафиксировано.");
                        return(false);
                    }
                }
                else
                {
                    if (!oPassCur.DateBeg.HasValue)
                    {
                        RFMMessage.MessageBoxInfo("Время въезда машины еще не зафиксировано.");
                        return(false);
                    }
                    if (oPassCur.DateEnd.HasValue)
                    {
                        if (RFMMessage.MessageBoxYesNo("Время выезда машины уже зафиксировано.\n" +
                                                       "Все-таки очистить время въезда?") != DialogResult.Yes)
                        {
                            return(false);
                        }
                    }
                }
            }
            else             //	if (!bClear)
            {
                // поставить дату-время
                if (bIsDeparture)
                {
                    if (oPassCur.DateEnd.HasValue)
                    {
                        RFMMessage.MessageBoxInfo("Время выезда машины уже зафиксировано.");
                        return(false);
                    }
                    if (!oPassCur.DateBeg.HasValue)
                    {
                        if (RFMMessage.MessageBoxYesNo("Время въезда машины еще не зафиксировано.\n" +
                                                       "Все-таки зафиксировать время выезда?") != DialogResult.Yes)
                        {
                            return(false);
                        }
                    }
                }
                else
                {
                    if (oPassCur.DateBeg.HasValue)
                    {
                        RFMMessage.MessageBoxInfo("Время въезда машины уже зафиксировано.");
                        return(false);
                    }
                }
            }

            oPassCur.SetDateFact(oPassCur.ID, bClear, bIsDeparture, ((RFMFormMain)Application.OpenForms[0]).UserInfo.UserID);
            if (oPassCur.ErrorNumber == 0)
            {
                if (bClear)
                {
                    if (bIsDeparture)
                    {
                        //RFMMessage.MessageBoxInfo("Время выезда очищено.");
                    }
                    else
                    {
                        //RFMMessage.MessageBoxInfo("Время въезда очищено.");
                    }
                }
                else
                {
                    if (bIsDeparture)
                    {
                        //RFMMessage.MessageBoxInfo("Время выезда зафиксировано.");
                    }
                    else
                    {
                        //RFMMessage.MessageBoxInfo("Время въезда зафиксировано.");
                    }
                }
            }
            grdData_Restore();
            return(oPassCur.ErrorNumber == 0);
        }