private void mniOutputsDocumentsService_GuiltyEmployees_Click(object sender, EventArgs e)
        {
            if (grdOutputsDocuments.CurrentRow == null ||
                grdOutputsDocuments.IsStatusRow(grdOutputsDocuments.CurrentRow.Index))
            {
                return;
            }

            DataRow r = ((DataRowView)((DataGridViewRow)grdOutputsDocuments.Rows[grdOutputsDocuments.CurrentRow.Index]).DataBoundItem).Row;

            if (Convert.IsDBNull(r["OldOutputDocumentID"]))
            {
                return;
            }

            int      nOldOutputDocumentID = (int)r["OldOutputDocumentID"];
            int      nNewOutputDocumentID = (int)r["NewOutputDocumentID"];
            DateTime dDateCarry           = Convert.ToDateTime(r["DateCarry"]);

            OutputDocument oOutputDocumentCarry = new OutputDocument();

            oOutputDocumentCarry.ReFillOne(nOldOutputDocumentID);
            oOutputDocumentCarry.FillTableOutputsDocumentsCarries(nOldOutputDocumentID);
            if (oOutputDocumentCarry.ErrorNumber != 0 ||
                !oOutputDocumentCarry.DS.Tables.Contains("TableOutputsDocumentsCarries") ||
                oOutputDocumentCarry.DS.Tables["TableOutputsDocumentsCarries"] == null ||
                oOutputDocumentCarry.DS.Tables["TableOutputsDocumentsCarries"].Rows.Count == 0)
            {
                RFMMessage.MessageBoxError("Ошибка при получении данных о переносах и копиях расходного документа...");
                return;
            }

            int?      nCarryID  = null;
            DataTable dtCarries = oOutputDocumentCarry.DS.Tables["TableOutputsDocumentsCarries"];

            foreach (DataRow roc in dtCarries.Rows)
            {
                int nX_OldOutputDocumentID = (int)roc["OutputDocumentID"];
                int nX_NewOutputDocumentID = nX_OldOutputDocumentID;
                if (!Convert.IsDBNull(roc["NewOutputDocumentID"]))
                {
                    nX_NewOutputDocumentID = (int)roc["NewOutputDocumentID"];
                }
                if (nOldOutputDocumentID != nX_OldOutputDocumentID ||
                    nNewOutputDocumentID != nX_NewOutputDocumentID ||
                    DateTime.Compare(dDateCarry, Convert.ToDateTime(roc["DateCarry"])) != 0)
                {
                    continue;
                }

                nCarryID = (int)roc["ID"];
                break;
            }
            if (!nCarryID.HasValue)
            {
                RFMMessage.MessageBoxError("Ошибка при получении данных о переносе/копии расходного документа...");
                return;
            }

            if (StartForm(new frmOutputsDocumentsGuiltyEmployees((int)nCarryID, true)) == DialogResult.Yes)
            {
                grdOutputsDocuments_Restore();
            }
        }
예제 #2
0
        /// <summary>
        /// получение полного списка возвратов с дополнительными сведениями в MainTable
        /// </summary>
        public override bool FillData()
        {
            ClearData();

            string sqlSelect = "execute up_TripsReturnsFill @nID, @cIDList, " +
                               "@cHostsList, " +
                               "@dDateBeg, @dDateEnd, " +
                               "@bReadyForWMS, " +
                               "@bIsConfirmed, " +
                               "@bAutoCreated, " +
                               "@cTripsList, " +
                               "@cOwnersList, " +
                               "@cPackingsList, @cGoodsList";
            SqlCommand _oCommand = new SqlCommand(sqlSelect, _Connect);

            #region up_TripsReturnsFill parameters

            SqlParameter _oParameter = _oCommand.Parameters.Add("@nID", SqlDbType.Int);
            if (_ID != null)
            {
                _oParameter.Value = _ID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cIDList", SqlDbType.VarChar);
            if (_IDList != null)
            {
                _oParameter.Value = _IDList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cHostsList", SqlDbType.VarChar);
            if (_FilterHostsList != null)
            {
                _oParameter.Value = _FilterHostsList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@dDateBeg", SqlDbType.SmallDateTime);
            if (_FilterDateBeg.HasValue)
            {
                _oParameter.Value = _FilterDateBeg;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@dDateEnd", SqlDbType.SmallDateTime);
            if (_FilterDateEnd.HasValue)
            {
                _oParameter.Value = _FilterDateEnd;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@bReadyForWMS", SqlDbType.Bit);
            if (_FilterReadyForWMS != null)
            {
                _oParameter.Value = _FilterReadyForWMS;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@bIsConfirmed", SqlDbType.Bit);
            if (_FilterIsConfirmed != null)
            {
                _oParameter.Value = _FilterIsConfirmed;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@bAutoCreated", SqlDbType.Bit);
            if (_FilterAutoCreated != null)
            {
                _oParameter.Value = _FilterAutoCreated;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cTripsList", SqlDbType.VarChar);
            if (_FilterTripsList != null)
            {
                _oParameter.Value = _FilterTripsList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cOwnersList", SqlDbType.VarChar);
            if (_FilterOwnersList != null)
            {
                _oParameter.Value = _FilterOwnersList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cPackingsList", SqlDbType.VarChar);
            if (_FilterPackingsList != null)
            {
                _oParameter.Value = _FilterPackingsList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cGoodsList", SqlDbType.VarChar);
            if (_FilterGoodsList != null)
            {
                _oParameter.Value = _FilterGoodsList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            #endregion

            try
            {
                _MainTable            = FillReadings(new SqlDataAdapter(_oCommand), _MainTable, _MainTableName);
                _MainTable.PrimaryKey = new DataColumn[] { _MainTable.Columns[_ColumnID] };
                _NeedRequery          = false;
            }
            catch (Exception ex)
            {
                _ErrorNumber = -1;
                _ErrorStr    = "Ошибка при получении списка возвратов..." + Convert.ToChar(13) + ex.Message;
                RFMMessage.MessageBoxError(_ErrorStr);
            }
            return(_ErrorNumber == 0);
        }
예제 #3
0
        public bool Save(int?nUserCreateID)
        {
            string _sqlCommand = "execute up_TripsReturnsSave @nTripReturnID output, " +
                                 "@dDateReturn, " +
                                 "@bAutoCreated, " +
                                 "@nOwnerID, @nGoodStateID, " +
                                 "@cNote, " +
                                 "@nTripID, " +
                                 "@nUserCreateID, " +
                                 "@nError output, @cErrorText output";
            SqlCommand _oCommand = new SqlCommand(_sqlCommand, _Connect);

            #region up_TripsReturnsSave parameters

            SqlParameter _oParameter = _oCommand.Parameters.Add("@nTripReturnID", SqlDbType.Int);
            _oParameter.Direction = ParameterDirection.InputOutput;
            if (_ID.HasValue)
            {
                _oParameter.Value = _ID;
            }
            else
            {
                _oParameter.Value = 0;
            }

            _oParameter       = _oCommand.Parameters.Add("@dDateReturn", SqlDbType.SmallDateTime);
            _oParameter.Value = _DateReturn;

            _oParameter       = _oCommand.Parameters.Add("@bAutoCreated", SqlDbType.Bit);
            _oParameter.Value = _AutoCreated;

            _oParameter = _oCommand.Parameters.Add("@nOwnerID", SqlDbType.Int);
            if (_OwnerID.HasValue)
            {
                _oParameter.Value = _OwnerID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@nGoodStateID", SqlDbType.Int);
            if (_GoodStateID.HasValue)
            {
                _oParameter.Value = _GoodStateID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cNote", SqlDbType.VarChar);
            if (_Note != null)
            {
                _oParameter.Value = _Note;
            }
            else
            {
                _oParameter.Value = "";
            }

            _oParameter = _oCommand.Parameters.Add("@nTripID", SqlDbType.Int);
            if (_TripID.HasValue)
            {
                _oParameter.Value = _TripID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@nUserCreateID", SqlDbType.Int);
            if (nUserCreateID.HasValue)
            {
                _oParameter.Value = nUserCreateID;
            }
            else
            {
                _oParameter.Value = 0;                 // DBNull.Value;
            }
            _oParameter           = _oCommand.Parameters.Add("@nError", SqlDbType.Int);
            _oParameter.Direction = ParameterDirection.InputOutput;
            _oParameter.Value     = 0;

            _oParameter           = _oCommand.Parameters.Add("@cErrorText", SqlDbType.VarChar, 200);
            _oParameter.Direction = ParameterDirection.InputOutput;
            _oParameter.Value     = "";

            #endregion

            try
            {
                _Connect.Open();

                // таблица товаров
                if (TableTripsReturnsGoods != null)
                {
                    RFMUtilities.DataTableToTempTable(TableTripsReturnsGoods, "#TripsReturnsGoods", _Connect);
                }

                _oCommand.ExecuteScalar();
            }
            catch (Exception ex)
            {
                _ErrorNumber = -10;
                _ErrorStr    = "Ошибка при попытке сохранения возврата...\r\n" + ex.Message;
                RFMMessage.MessageBoxError(_ErrorStr);
            }
            finally
            {
                _Connect.Close();
            }
            if (_ErrorNumber == 0)
            {
                _ErrorNumber = (int)_oCommand.Parameters["@nError"].Value;
                if (_ErrorNumber != 0)
                {
                    _ErrorStr = "Ошибка при сохранении возврата...\r\n" + _oCommand.Parameters["@cErrorText"].Value;
                    RFMMessage.MessageBoxError(_ErrorStr);
                }
                // при создании нового возврата - получим его код
                if ((!_ID.HasValue || _ID == 0) &&
                    !Convert.IsDBNull(_oCommand.Parameters["@nTripReturnID"].Value))
                {
                    _ID = (int)_oCommand.Parameters["@nTripReturnID"].Value;
                }
            }
            return(_ErrorNumber == 0);
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (cboOwner.SelectedIndex < 0 || cboOwner.SelectedValue == null)
            {
                RFMMessage.MessageBoxError("Не указан владелец товара...");
                cboOwner.Select();
                return;
            }
            if (cboGoodsState.SelectedIndex < 0 || cboGoodsState.SelectedValue == null)
            {
                RFMMessage.MessageBoxError("Не указано состояние товара...");
                cboGoodsState.Select();
                return;
            }

            bool bActFound = false, bReturnFound = false;

            foreach (DataRow dr in dt.Rows)
            {
                if ((decimal)dr["ActQnt"] != 0)
                {
                    bActFound = true;
                }
                if ((decimal)dr["ReturnQnt"] > 0)
                {
                    bReturnFound = true;
                }
                if (bActFound && bReturnFound)
                {
                    break;
                }
            }
            if (!bActFound && !bReturnFound)
            {
                RFMMessage.MessageBoxError("Ни для одного товара не введено количество ни для актирования, ни для возврата...");
                return;
            }

            // ВОЗВРАТ
            if (bReturnFound)
            {
                if (RFMMessage.MessageBoxYesNo("Сохранить возврат для рейса?") == DialogResult.Yes)
                {
                    // заполним таблицу товаров в возврате
                    oTripReturn.FillTableTripsReturnsGoods(0);
                    if (oTripReturn.ErrorNumber == 0 && oTripReturn.TableTripsReturnsGoods != null)
                    {
                        oTripReturn.TableTripsReturnsGoods.PrimaryKey = null;
                        oTripReturn.TableTripsReturnsGoods.Columns["ID"].AllowDBNull = true;
                        oTripReturn.TableTripsReturnsGoods.Columns["ID"].Unique      = false;

                        oTripReturn.TableTripsReturnsGoods.PrimaryKey = new DataColumn[] { oTripReturn.TableTripsReturnsGoods.Columns["PackingID"] };
                        oTripReturn.TableTripsReturnsGoods.Columns["PackingID"].DefaultValue = 0;

                        foreach (DataRow r in dt.Rows)
                        {
                            if ((decimal)r["ReturnQnt"] > 0)
                            {
                                DataRow rg = oTripReturn.TableTripsReturnsGoods.Rows.Find((int)r["PackingID"]);
                                if (rg == null)
                                {
                                    rg = oTripReturn.TableTripsReturnsGoods.Rows.Add();
                                    rg["PackingID"] = (int)r["PackingID"];
                                    rg["QntWished"] = (decimal)r["ReturnQnt"];
                                }
                                else
                                {
                                    rg["QntWished"] = (decimal)rg["QntWished"] + (decimal)r["ReturnQnt"];
                                }
                            }
                        }
                    }
                    oTripReturn.ClearError();
                    // остальные параметры возврата
                    oTripReturn.ID          = null;
                    oTripReturn.DateReturn  = dtpDate.Value.Date;
                    oTripReturn.GoodStateID = (int)cboGoodsState.SelectedValue;
                    oTripReturn.OwnerID     = (int)cboOwner.SelectedValue;
                    oTripReturn.Note        = txtReturnNote.Text.Trim();
                    oTripReturn.AutoCreated = true;
                    oTripReturn.TripID      = nTripID;
                    oTripReturn.HostID      = nHostID;
                    // сохраняем возврат
                    WaitOn(this);
                    oTripReturn.ClearError();
                    bool bResult = oTripReturn.Save(((RFMFormMain)Application.OpenForms[0]).UserID);
                    WaitOff(this);
                    if (bResult && oTripReturn.ErrorNumber == 0 && oTripReturn.ID.HasValue)
                    {
                        // готов к передаче в WMS
                        if (chkReturnReadyForWMS.Checked)
                        {
                            oTripReturn.SetReadyForWMS((int)oTripReturn.ID);
                            if (oTripReturn.ErrorNumber == 0)
                            {
                                // печать
                                LogService.TripReturnBill_Print(oTripReturn, this);
                            }
                        }
                    }
                }
            }

            // АКТ(Ы)
            if (bActFound)
            {
                // посчитать, сколько получается актов для разных заданий на расход
                DataView dv = new DataView(dt, "ActQnt <> 0", "", DataViewRowState.CurrentRows);
                // таблица кодов заданий на расход, к которым можно приделать акт
                DataTable dtOutput = dv.ToTable(true, "OutputID");

                // Не задаем никаких вопросов
                if (1 == 1)
                //if (RFMMessage.MessageBoxYesNo("Сохранить " + RFMUtilities.Declen(dtOutput.Rows.Count, "акт", "акта", "актов") + " для заданий на расход, прикрепленных к рейсу?") == DialogResult.Yes)
                {
                    // идем по каждому расходу
                    foreach (DataRow o in dtOutput.Rows)
                    {
                        // расход, к которому будет привязан акт
                        int nOutputID = 0;
                        if (!Convert.IsDBNull(o["OutputID"]) && o["OutputID"] != null &&
                            (int)o["OutputID"] > 0)
                        {
                            nOutputID = (int)o["OutputID"];
                        }
                        else
                        {
                            // выберем первый попавшийся из расходов
                            oTrip.FillTableOutputsInTrip();
                            if (oTrip.ErrorNumber == 0 && oTrip.TableOutputsInTrip != null &&
                                oTrip.TableOutputsInTrip.Rows.Count > 0)
                            {
                                nOutputID = (int)oTrip.TableOutputsInTrip.Rows[0]["ID"];
                            }
                        }
                        // заполним таблицу товаров в акте - именно для этого расхода
                        oAct.FillTableActsGoods(0);
                        if (oAct.ErrorNumber == 0 && oAct.TableActsGoods != null)
                        {
                            oAct.TableActsGoods.PrimaryKey = null;
                            oAct.TableActsGoods.Columns["ID"].AllowDBNull = true;
                            oAct.TableActsGoods.Columns["ID"].Unique      = false;

                            foreach (DataRow r in dt.Rows)
                            {
                                // Изменение от 15.05.2017 Александров
                                // Убрана излишняя проверка,
                                // не давала создавать акты при откате оператором ранее подтвержденного расходного документа

                                /*if ((nOutputID == 0 && (Convert.IsDBNull(r["OutputID"]) || r["OutputID"] == null || (int)r["OutputID"] <= 0))
                                ||
                                ||      (nOutputID != 0 && (!Convert.IsDBNull(r["OutputID"]) && r["OutputID"] != null) && (int)r["OutputID"] == nOutputID))
                                || {*/
                                if ((decimal)r["ActQnt"] != 0)
                                {
                                    DataRow ag = oAct.TableActsGoods.Rows.Add();
                                    ag["PackingID"]    = (int)r["PackingID"];
                                    ag["QntConfirmed"] = (decimal)r["ActQnt"];
                                }
                                /*}*/
                            }
                        }
                        oAct.ClearError();
                        // остальные параметры акта
                        oAct.ID          = null;
                        oAct.DateAct     = dtpDate.Value.Date;
                        oAct.GoodStateID = (int)cboGoodsState.SelectedValue;
                        oAct.OwnerID     = (int)cboOwner.SelectedValue;
                        oAct.Note        = txtActNote.Text.Trim();
                        oAct.TripID      = nTripID;
                        if (nOutputID > 0)
                        {
                            oAct.OutputID = nOutputID;
                        }
                        else
                        {
                            oAct.OutputID = null;
                        }
                        oAct.InputID = null;
                        oAct.HostID  = nHostID;

                        // сохраняем акт
                        WaitOn(this);
                        oAct.ClearError();
                        bool bResult = oAct.Save(((RFMFormMain)Application.OpenForms[0]).UserID);
                        WaitOff(this);
                        if (bResult && oAct.ErrorNumber == 0 && oAct.ID.HasValue)
                        {
                            // готов к передаче в WMS
                            if (chkActReadyForWMS.Checked)
                            {
                                //oAct.SetReadyForWMS((int)oAct.ID); // он уже Confirmed
                            }
                        }
                    }
                }
            }

            DialogResult = DialogResult.Yes;
            Dispose();
        }
예제 #5
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            string sName = txtNаme.Text.Trim();

            // проверки
            if (sName.Length == 0)
            {
                RFMMessage.MessageBoxError("Не указано наименование...");
                txtNаme.Select();
                return;
            }
            if (cboZone.SelectedValue == null || cboZone.SelectedIndex < 0)
            {
                RFMMessage.MessageBoxError("Не указана зона расположения клиента...");
                cboZone.Select();
                return;
            }

            // уникальность названия
            // Проверка отменена 22.04.2009 в связи с большим количеством двойников у Тимакса

            /*
             *          WaitOn(this);
             *          Partner oPartnerTemp = new Partner();
             *          oPartner.FilterNameContext = sName;
             *          oPartnerTemp.FillData();
             *          foreach(DataRow dr in oPartnerTemp.MainTable.Rows)
             *          {
             *                  if (nPartnerID == null || nPartnerID != Convert.ToInt32(dr["ID"]))
             *                  {
             *                          if (sName.ToUpper() == dr["Name"].ToString().Trim().ToUpper())
             *                          {
             *                                  WaitOff(this);
             *                                  RFMMessage.MessageBoxError("Партнер с таким названием уже есть...");
             *                                  txtNаme.Select();
             *                                  return;
             *                          }
             *                  }
             *          }
             *          WaitOff(this);
             */

            // актуальность
            if (!chkActual.Checked)
            {
                if (RFMMessage.MessageBoxYesNo("Сохранить данные о неактуальном партнере?") != DialogResult.Yes)
                {
                    chkActual.Select();
                    return;
                }
            }

            // шаблоны печ.форм. если заданы - есть ли такие шаблоны?
            if (chkPF_Bill.Checked)
            {
                if (txtPF_BillName.Text.Trim().Length == 0)
                {
                    if (RFMMessage.MessageBoxYesNo("Не задан шаблон накладной...\nСохранить без указания шаблона?") != DialogResult.Yes)
                    {
                        txtPF_BillName.Select();
                        return;
                    }
                }
                else
                {
                    if (!CheckPF_Form(txtPF_BillName.Text.Trim(), "PF_Bill", "накладной"))
                    {
                        return;
                    }
                }
            }

            if (chkPF_Facture.Checked)
            {
                if (txtPF_FactureName.Text.Trim().Length == 0)
                {
                    if (RFMMessage.MessageBoxYesNo("Не задан шаблон счета-фактуры...\nСохранить без указания шаблона?") != DialogResult.Yes)
                    {
                        txtPF_FactureName.Select();
                        return;
                    }
                }
                else
                {
                    if (!CheckPF_Form(txtPF_FactureName.Text.Trim(), "PF_Facture", "счета-фактуры"))
                    {
                        return;
                    }
                }
            }

            if (chkPF_PayBill.Checked)
            {
                if (txtPF_PayBillName.Text.Trim().Length == 0)
                {
                    if (RFMMessage.MessageBoxYesNo("Не задан шаблон счета на оплату...\nСохранить без указания шаблона?") != DialogResult.Yes)
                    {
                        txtPF_PayBillName.Select();
                        return;
                    }
                }
                else
                {
                    if (!CheckPF_Form(txtPF_PayBillName.Text.Trim(), "PF_PayBill", "счета на оплату"))
                    {
                        return;
                    }
                }
            }

            // собираем данные в свойства объекта oPartner
            oPartner.Name = txtNаme.Text.Trim();

            oPartner.Actual      = chkActual.Checked;
            oPartner.IsCustomer  = chkIsCustomer.Checked;
            oPartner.IsSupplier  = chkIsSupplier.Checked;
            oPartner.IsTransport = chkIsTransport.Checked;
            oPartner.IsOwner     = chkIsOwner.Checked;
            if (oPartner.IsOwner)
            {
                oPartner.SeparatePicking = chkSeparatePicking.Checked;
            }
            else
            {
                oPartner.SeparatePicking = false;
            }

            oPartner.ContactsInfo = txtContactsInfo.Text;

            if (cboPartnerRoot.SelectedIndex >= 0 && cboPartnerRoot.SelectedValue != null)
            {
                oPartner.PartnerRootID = (int)cboPartnerRoot.SelectedValue;
            }
            else
            {
                oPartner.PartnerRootID = null;
            }
            if (cboZone.SelectedIndex >= 0 && cboZone.SelectedValue != null)
            {
                oPartner.ZoneID = (int)cboZone.SelectedValue;
            }
            else
            {
                oPartner.ZoneID = null;
            }

            oPartner.DeliveryAddress     = txtDeliveryAddress.Text;
            oPartner.DeliveryPassage     = txtDeliveryPassage.Text;
            oPartner.DeliveryRestriction = txtDeliveryRestriction.Text;

            oPartner.Gravity = txtGravity.Text;

            // CoordinatesX, CoordinatesY
            // Географические координаты должны сохраняться только парно!
            if (txtLatitude.Text.Length > 0 && txtLongitude.Text.Length > 0)
            {
                oPartner.Latitude  = Convert.ToDecimal(txtLatitude.Text);
                oPartner.Longitude = Convert.ToDecimal(txtLongitude.Text);
            }
            else
            {
                oPartner.Latitude  = null;
                oPartner.Longitude = null;
            }

            oPartner.Distance = (int)numDistance.Value;

            oPartner.PassengerCarOnly = chkPassengerCarOnly.Checked;
            oPartner.PosternOnly      = chkPosternOnly.Checked;
            oPartner.LoadLiftOnly     = chkLoadLiftOnly.Checked;

            oPartner.DateValidControl = chkDateValidControl.Checked;
            oPartner.PalletsAgreement = chkPalletsAgreement.Checked;
            oPartner.FactPaymentOnly  = chkFactPaymentOnly.Checked;

            oPartner.ContactsInfo = txtContactsInfo.Text;

            oPartner.Note = txtNote.Text;

            /*
             * oPartner.FactureNeed = chkFactureNeed.Checked;
             * oPartner.WarrantNeed = chkWarrantNeed.Checked;
             * oPartner.PaymentOrderNeed = chkPaymentOrderNeed.Checked;
             * oPartner.OtherDocumentsNeed = chkOtherDocumentsNeed.Checked;
             * oPartner.QualityLicenceNeed = chkQualityLicenceNeed.Checked;
             * oPartner.VeterinaryLicenceNeed = chkVeterinaryLicenceNeed.Checked;
             */

            // стр.Дополнительно
            oPartner.TimeWork    = txtTimeWork.Text;
            oPartner.TimeReceipt = txtTimeReceipt.Text;
            oPartner.TimePay     = txtTimePay.Text;
            oPartner.TimeRest    = txtTimeRest.Text;
            oPartner.StayMinutes = (int)numStayMinutes.Value;

            // стр.Шаблоны
            if (chkPF_Bill.Checked)
            {
                oPartner.PF_BillName        = txtPF_BillName.Text.Trim();
                oPartner.PF_BillCopiesCount = (int)numPF_BillCopiesCount.Value;
            }
            else
            {
                oPartner.PF_BillName        = "";
                oPartner.PF_BillCopiesCount = 0;
            }
            if (chkPF_Facture.Checked)
            {
                oPartner.PF_FactureName        = txtPF_FactureName.Text.Trim();
                oPartner.PF_FactureCopiesCount = (int)numPF_FactureCopiesCount.Value;
            }
            else
            {
                oPartner.PF_FactureName        = "";
                oPartner.PF_FactureCopiesCount = 0;
            }
            if (chkPF_PayBill.Checked)
            {
                oPartner.PF_PayBillName        = txtPF_PayBillName.Text.Trim();
                oPartner.PF_PayBillCopiesCount = (int)numPF_PayBillCopiesCount.Value;
            }
            else
            {
                oPartner.PF_PayBillName        = "";
                oPartner.PF_PayBillCopiesCount = 0;
            }
            oPartner.ShopCode = txtShopCode.Text.Trim();

            oPartner.VeterinaryPartnerName = txtVeterinaryPartnerName.Text.Trim();
            oPartner.VeterinaryPermission  = txtVeterinaryPermission.Text.Trim();

            /*
             * oPartner.LegalName = txtLegalName.Text;
             * oPartner.LegalAddress = txtLegalAddress.Text;
             * oPartner.FactName = txtFactName.Text;
             * oPartner.FactAddress = txtFactAddress.Text;
             * oPartner.Phone = txtPhone.Text;
             * oPartner.Inn = txtInn.Text;
             * oPartner.Inn = txtKpp.Text;
             *
             * oPartner.ContractNumber = txtContractNumber.Text;
             * if (!dtpContractDate.IsEmpty)
             *      oPartner.ContractDate = dtpContractDate.Value;
             * else
             *      oPartner.ContractDate = null;
             *
             * oPartner.BankName = txtBankName.Text;
             * oPartner.BankAddress = txtBankAddress.Text;
             * oPartner.PAccount = txtPAccount.Text;
             * oPartner.CAccount = txtCAccount.Text;
             * oPartner.Bik = txtBik.Text;
             * oPartner.Okonh = txtOkonh.Text;
             * oPartner.Okpo = txtOkpo.Text;
             *
             * oPartner.JobTitleDirector = txtJobTitleDirector.Text;
             * oPartner.FioDirector = txtFioDirector.Text;
             * oPartner.JobTitleAccountant = txtJobTitleAccountant.Text;
             * oPartner.FioAccountant = txtFioAccountant.Text;
             */

            // собственно сохранение
            oPartner.SaveOne();
            if (oPartner.ErrorNumber == 0)
            {
                // код добавленной записи
                if ((!nPartnerID.HasValue || nPartnerID == 0) && oPartner.ID.HasValue && oPartner.ID != null)
                {
                    nPartnerID = (int)oPartner.ID;
                }


                // сохранить фото
                if (fileDrivingSchemePath != "")
                {
                    FileStream   fs = new FileStream(fileDrivingSchemePath, FileMode.Open, FileAccess.Read);
                    BinaryReader br = new BinaryReader(fs);
                    oPartner.DrivingScheme = br.ReadBytes((int)fs.Length);
                    br.Close();
                    fs.Close();
                    oPartner.SaveOneDrivingScheme();
                }
                else
                {
                    if (bClearDrivingScheme)
                    {
                        oPartner.DrivingScheme = null;
                        oPartner.SaveOneDrivingScheme();
                    }
                }

                if (nPartnerID.HasValue)
                {
                    MotherForm.GotParam = new object[] { (int)nPartnerID };
                    DialogResult        = DialogResult.Yes;
                    Dispose();
                }
            }
        }
예제 #6
0
        /// <summary>
        /// удаление доверенности
        /// </summary>
        public bool Update(int?nOutputDocumentID, int?nInputDocumentID, int?nInputID)
        {
            String _sqlCommand = "execute up_WarrantsNumbersUpdate @nOutputDocumentID, @nInputDocumentID, @nInputID, " +
                                 "@nError output, @cErrorText output";
            SqlCommand _oCommand = new SqlCommand(_sqlCommand, _Connect);

            #region up_WarrantNumbersDelete parameters

            SqlParameter _oParameter = _oCommand.Parameters.Add("@nOutputDocumentID", SqlDbType.Int);
            if (nOutputDocumentID.HasValue)
            {
                _oParameter.Value = nOutputDocumentID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@nInputDocumentID", SqlDbType.Int);
            if (nInputDocumentID.HasValue)
            {
                _oParameter.Value = nInputDocumentID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@nInputID", SqlDbType.Int);
            if (nInputID.HasValue)
            {
                _oParameter.Value = nInputID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter           = _oCommand.Parameters.Add("@nError", SqlDbType.Int);
            _oParameter.Direction = ParameterDirection.InputOutput;
            _oParameter.Value     = 0;

            _oParameter           = _oCommand.Parameters.Add("@cErrorText", SqlDbType.VarChar, 200);
            _oParameter.Direction = ParameterDirection.InputOutput;
            _oParameter.Value     = "";

            #endregion

            try
            {
                _Connect.Open();
                _oCommand.ExecuteScalar();
            }
            catch (Exception ex)
            {
                _ErrorNumber = -20;
                _ErrorStr    = "Ошибка при попытке обновления данных о доверенности...\r\n" + ex.Message;
                RFMMessage.MessageBoxError(_ErrorStr);
            }
            finally
            {
                _Connect.Close();
            }
            if (_ErrorNumber == 0)
            {
                _ErrorNumber = (int)_oCommand.Parameters["@nError"].Value;
                if (_ErrorNumber != 0)
                {
                    _ErrorStr = "Ошибка при обновлении данных о доверенности...\r\n" + _oCommand.Parameters["@cErrorText"].Value;
                    RFMMessage.MessageBoxError(_ErrorStr);
                }
            }
            return(_ErrorNumber == 0);
        }
예제 #7
0
        /// <summary>
        /// получение полного списка хостов в MainTable
        /// </summary>
        public override bool FillData()
        {
            ClearData();

            string sqlSelect = "execute up_HostsFill @nID, @cIDList, " +
                               "@cNameContext, " +
                               "@cShortCode, " +
                               "@bActual ";
            SqlCommand _oCommand = new SqlCommand(sqlSelect, _Connect);

            #region up_HostsFill Parameters

            SqlParameter _oParameter = _oCommand.Parameters.Add("@nID", SqlDbType.Int);
            if (_ID != null)
            {
                _oParameter.Value = _ID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cIDList", SqlDbType.VarChar);
            if (_IDList != null)
            {
                _oParameter.Value = _IDList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cNameContext", SqlDbType.VarChar, 200);
            if (_FilterNameContext != null)
            {
                _oParameter.Value = _FilterNameContext;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cShortCode", SqlDbType.VarChar, 200);
            if (_FilterShortCode != null)
            {
                _oParameter.Value = _FilterShortCode;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@bActual", SqlDbType.Bit);
            if (_FilterActual != null)
            {
                _oParameter.Value = _FilterActual;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            #endregion

            try
            {
                _MainTable            = FillReadings(new SqlDataAdapter(_oCommand), _MainTable, _MainTableName);
                _MainTable.PrimaryKey = new DataColumn[] { _MainTable.Columns[_ColumnID] };
                _NeedRequery          = false;
            }
            catch (Exception ex)
            {
                _ErrorNumber = -1;
                _ErrorStr    = "ќшибка при получении общего списка хостов..." + Convert.ToChar(13) + ex.Message;
                RFMMessage.MessageBoxError(_ErrorStr);
            }
            return(_ErrorNumber == 0);
        }
예제 #8
0
        private void frmMovingsEdit_Load(object sender, EventArgs e)
        {
            bool blResult = cboMovingsTypes_Restore() &&
                            cboOwners_Restore() &&
                            cboGoodState_Restore() &&
                            cboGoodStateNew_Restore() &&
                            cboStoresZonesSource_Restore() &&
                            cboStoresZonesTypesSource_Restore() &&
                            cboStoresZonesTarget_Restore() &&
                            cboStoresZonesTypesTarget_Restore();

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

            cboMovingsTypes.SelectedIndex                                           =
                cboOwners.SelectedIndex                                             =
                    cboGoodState.SelectedIndex                                      =
                        cboGoodStateNew.SelectedIndex                               =
                            cboStoresZonesSource.SelectedIndex                      =
                                cboStoresZonesTypesSource.SelectedIndex             =
                                    cboCellSourceAddress.SelectedIndex              =
                                        cboStoresZonesTarget.SelectedIndex          =
                                            cboStoresZonesTypesTarget.SelectedIndex =
                                                cboCellTargetAddress.SelectedIndex  =
                                                    -1;

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

                DataRow droRow = oMoving.MainTable.Rows[0];
                // поля
                txtID.Text                    = droRow["ID"].ToString();
                dtpDateMoving.Value           = Convert.ToDateTime(droRow["DateMoving"]).Date;
                cboMovingsTypes.SelectedValue = (int)droRow["MovingTypeID"];
                if (!Convert.IsDBNull(droRow["OwnerID"]))
                {
                    cboOwners.SelectedValue = (int)droRow["OwnerID"];
                }
                if (!Convert.IsDBNull(droRow["GoodStateID"]))
                {
                    cboGoodState.SelectedValue = (int)droRow["GoodStateID"];
                }
                if (!Convert.IsDBNull(droRow["GoodStateNewID"]))
                {
                    cboGoodStateNew.SelectedValue = (int)droRow["GoodStateNewID"];
                }
                txtNote.Text = droRow["Note"].ToString();

                // ячейка-источник
                cboStoresZonesTypesSource.SelectedValue = (int)droRow["StoreZoneTypeSourceID"];
                cboStoresZonesSource.SelectedValue      = (int)droRow["StoreZoneSourceID"];
                cboCellSourceAddress.SelectedValue      = (int)droRow["CellSourceID"];

                // товары (но это не источник грида)
                oMoving.FillTableMovingsGoods((int)nMovingID);
                if (oMoving.ErrorNumber != 0 || oMoving.TableMovingsGoods == null)
                {
                    RFMMessage.MessageBoxError("Ошибка при получении данных о товарах в внутрискладском перемещении...");
                    Dispose();
                }

                // целевая ячейка
                int?nCellTargetID      = null;
                int?nStoreZoneTargetID = null;
                if (oMoving.TableMovingsGoods.Rows.Count > 0)
                {
                    if (!Convert.IsDBNull(oMoving.TableMovingsGoods.Rows[0]["CellTargetID"]))
                    {
                        nCellTargetID = Convert.ToInt32(oMoving.TableMovingsGoods.Rows[0]["CellTargetID"]);
                    }
                    if (!Convert.IsDBNull(oMoving.TableMovingsGoods.Rows[0]["StoreZoneTargetID"]))
                    {
                        nStoreZoneTargetID = Convert.ToInt32(oMoving.TableMovingsGoods.Rows[0]["StoreZoneTargetID"]);
                    }
                }

                if ((bool)droRow["ToOneCell"])
                {
                    optToOneCell.Checked = true;
                    // ячейка, которую мы взяли из списка товаров
                    if (nStoreZoneTargetID.HasValue)
                    {
                        cboStoresZonesTarget.SelectedValue = (int)nStoreZoneTargetID;
                    }
                    if (nCellTargetID.HasValue)
                    {
                        cboCellTargetAddress.SelectedValue = (int)nCellTargetID;
                    }
                }
                else
                {
                    optToPicking.Checked = true;
                }

                cboMovingsTypes.Enabled                    =
                    cboOwners.Enabled                      =
                        cboGoodState.Enabled               =
                            cboGoodStateNew.Enabled        =
                                pnlOpgMovingsTypes.Enabled =
                                    pnlSource.Enabled      =
                                        pnlTarget.Enabled  =
                                            false;

                dgvMovingsGoods_Restore();
            }
            else
            {
                txtID.Text                    = "новое";
                dtpDateMoving.Value           = DateTime.Now.Date;
                cboMovingsTypes.SelectedIndex = 0;
                cboMovingsTypes_SelectedIndexChanged(null, null);

                cboOwners.SelectedIndex       = -1;
                cboGoodState.SelectedIndex    = 0;
                cboGoodStateNew.SelectedIndex = 0;

                cboCellSourceAddress.SelectedIndex              =
                    cboStoresZonesSource.SelectedIndex          =
                        cboStoresZonesTypesSource.SelectedIndex =
                            -1;
            }

            foreach (DataGridViewColumn c in dgvMovingsGoods.Columns)
            {
                string sColName = c.Name.ToUpper();
                if (!sColName.Contains("WISHED") && !sColName.Contains("MARKED"))
                {
                    c.ReadOnly = true;
                }
            }
            dgrcQnt.AgrType                   =
                dgrcQntWished.AgrType         =
                    dgrcBox.AgrType           =
                        dgrcBoxWished.AgrType =
                            EnumAgregate.Sum;

            SetInWork();

            _bLoaded = true;
        }
예제 #9
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (cboMovingsTypes.SelectedValue == null || cboMovingsTypes.SelectedIndex < 0)
            {
                RFMMessage.MessageBoxError("Не выбран тип внутрискладского перемещения...");
                return;
            }
            int nMovingTypeID = (int)cboMovingsTypes.SelectedValue;

            if (cboGoodState.SelectedValue == null || cboGoodState.SelectedIndex < 0)
            {
                RFMMessage.MessageBoxError("Не выбрано состояние товара...");
                return;
            }
            if (cboGoodStateNew.SelectedValue == null || cboGoodStateNew.SelectedIndex < 0)
            {
                RFMMessage.MessageBoxError("Не выбрано новое состояние товара...");
                return;
            }
            if (cboCellSourceAddress.SelectedValue == null || cboCellSourceAddress.SelectedIndex < 0)
            {
                RFMMessage.MessageBoxError("Не выбрана ячейка-источник...");
                return;
            }

            if (Convert.ToInt32(cboGoodStateNew.SelectedValue) != Convert.ToInt32(cboGoodState.SelectedValue))
            {
                if (RFMMessage.MessageBoxYesNo("Новое состояние товара не совпадает с текущим...\nВсе-таки сохранить перемещение?") != DialogResult.Yes)
                {
                    return;
                }
            }

            int nGoodStateID    = (int)cboGoodState.SelectedValue;
            int nGoodStateNewID = (int)cboGoodStateNew.SelectedValue;

            int?nOwnerID = null;

            if (cboOwners.SelectedIndex >= 0)
            {
                nOwnerID = (int)cboOwners.SelectedValue;
            }

            if (cboCellSourceAddress.SelectedValue == null || cboCellSourceAddress.SelectedIndex < 0)
            {
                RFMMessage.MessageBoxError("Не выбрана ячейка-источник...");
                return;
            }
            int nCellSourceID = (int)cboCellSourceAddress.SelectedValue;

            int?nCellTargetID = null;

            if (optToOneCell.Checked)
            {
                if (cboCellTargetAddress.SelectedValue == null || cboCellTargetAddress.SelectedIndex < 0)
                {
                    RFMMessage.MessageBoxError("Не выбрана целевая ячейка...");
                    return;
                }
                nCellTargetID = (int)cboCellTargetAddress.SelectedValue;

                if (nCellSourceID == nCellTargetID)
                {
                    RFMMessage.MessageBoxError("Целевая ячейка совпадает с ячейкой-источником...");
                    return;
                }

                // проверка по привязкам
                int? nFixedPackingID   = null;
                int? nFixedGoodStateID = null;
                int? nFixedOwnerID     = null;
                Cell oOneCell          = new Cell();
                oOneCell.ID = nCellTargetID;
                oOneCell.FillData();
                if (oOneCell.ErrorNumber != 0 || oOneCell.MainTable == null || oOneCell.MainTable.Rows.Count != 1)
                {
                    RFMMessage.MessageBoxError("Ошибка при проверке фиксированных закреплений целевой ячейки...");
                    return;
                }
                DataRow ocr = oOneCell.MainTable.Rows[0];
                if (!Convert.IsDBNull(ocr["FixedPackingID"]))
                {
                    nFixedPackingID = Convert.ToInt32(ocr["FixedPackingID"]);
                }
                if (!Convert.IsDBNull(ocr["FixedGoodStateID"]))
                {
                    nFixedGoodStateID = Convert.ToInt32(ocr["FixedGoodStateID"]);
                }
                if (!Convert.IsDBNull(ocr["FixedOwnerID"]))
                {
                    nFixedOwnerID = Convert.ToInt32(ocr["FixedOwnerID"]);
                }

                if (nFixedPackingID.HasValue || nFixedGoodStateID.HasValue || nFixedOwnerID.HasValue)
                {
                    foreach (DataRow dro in oMoving.TableMovingsGoods.Rows)
                    {
                        if (Convert.ToDecimal(dro["QntWished"]) > 0)
                        {
                            if (nFixedPackingID.HasValue && Convert.ToInt32(dro["PackingID"]) != (int)nFixedPackingID ||
                                nFixedGoodStateID.HasValue && nGoodStateID != (int)nFixedGoodStateID ||
                                nFixedOwnerID.HasValue && nOwnerID.HasValue && (int)nOwnerID != (int)nFixedOwnerID)
                            {
                                RFMMessage.MessageBoxError("Товар " + dro["GoodAlias"] + " не может быть перемещен в выбранную ячейку\n" +
                                                           "из-за несоответствия фиксированных закреплений (товар/состояние/владелец)...");
                                return;
                            }
                        }
                    }
                }
            }

            SetInWork();
            if (!_bInWork)
            {
                RFMMessage.MessageBoxError("Не выбрано ни одного товара...");
                return;
            }

            int           j          = 0;
            StringBuilder sbNoCell   = new StringBuilder("");
            StringBuilder sbCellLess = new StringBuilder("");

            foreach (DataRow dro in oMoving.TableMovingsGoods.Rows)
            {
                if (Convert.ToDecimal(dro["QntWished"]) > 0)
                {
                    j++;

                    if (Convert.IsDBNull(dro["CellTargetID"]) || dro["CellTargetID"] == null || Convert.ToInt32(dro["CellTargetID"]) == 0)
                    {
                        sbNoCell = sbNoCell.Append(dro["GoodAlias"].ToString() + "\r\n");
                    }
                    if (Convert.ToDecimal(dro["QntWished"]) > Convert.ToDecimal(dro["Qnt"]))
                    {
                        sbCellLess = sbCellLess.Append(dro["GoodAlias"].ToString() + "\r\n");
                    }
                }
            }
            if (sbNoCell.Length > 0)
            {
                RFMMessage.MessageBoxError("Для следующих товаров:\n" + sbNoCell + "не определена конечная ячейка.\n\n" +
                                           "Перемещение невозможно.");
                return;
            }
            if (sbCellLess.Length > 0)
            {
                if (RFMMessage.MessageBoxYesNo("Для следующих товаров:\n" + sbCellLess + "количество в исходной ячейке меньше, чем запрашиваемое количество.\n\n" +
                                               "Все-таки сохранить внутрискладское перемещение?") != DialogResult.Yes)
                {
                    return;
                }
            }

            if (nMovingID == 0)
            {
                oMoving.ClearError();
                oMoving.ID = 0;
                oMoving.FillData();
                if (oMoving.ErrorNumber != 0 || oMoving.MainTable == null)
                {
                    RFMMessage.MessageBoxError("Ошибка при попытке сохранения нового внутрискладского перемещения...");
                    return;
                }
                oMoving.MainTable.Rows.Add();
            }

            oMoving.MainTable.Rows[0]["DateMoving"]     = dtpDateMoving.Value.Date;
            oMoving.MainTable.Rows[0]["MovingTypeID"]   = nMovingTypeID;
            oMoving.MainTable.Rows[0]["GoodStateID"]    = nGoodStateID;
            oMoving.MainTable.Rows[0]["GoodStateNewID"] = nGoodStateNewID;
            if (nOwnerID.HasValue)
            {
                oMoving.MainTable.Rows[0]["OwnerID"] = nOwnerID;
            }
            else
            {
                oMoving.MainTable.Rows[0]["OwnerID"] = DBNull.Value;
            }
            oMoving.MainTable.Rows[0]["CellSourceID"] = nCellSourceID;
            oMoving.MainTable.Rows[0]["Note"]         = txtNote.Text.Trim();

            Refresh();
            WaitOn(this);
            oMoving.ClearError();
            bool bResult = oMoving.SaveData(nMovingID, nCellTargetID,
                                            ((RFMFormBase)Application.OpenForms[0]).UserInfo.UserID);

            WaitOff(this);
            if (bResult && oMoving.ErrorNumber == 0)
            {
                MotherForm.GotParam = new object[] { ((oMoving.ID.HasValue) ? (int)oMoving.ID : 0) };

                DialogResult = DialogResult.Yes;
                Dispose();
            }
            else
            {
                RFMMessage.MessageBoxError("Ошибка сохранения внутрискладского перемещения...");
                // не выходить из формы
            }
        }
예제 #10
0
        private void btnOutputsErpCodes_Click(object sender, EventArgs e)
        {
            _SelectedIDList = null;
            _SelectedText   = "";

            if (StartForm(new frmInputBoxString("Список ERP-кодов расходов (через запятую):", "")) == DialogResult.Yes)
            {
                string sErpCodesList = GotParam[0].ToString();

                Output oOutputTemp = new Output();
                oOutputTemp.IDList = oOutputTemp.FillIDListByErpCodeList(sErpCodesList);
                oOutputTemp.FillData();
                if (oOutputTemp.MainTable.Rows.Count == 0)
                {
                    RFMMessage.MessageBoxInfo("Нет расходов...");
                    ttToolTip.SetToolTip(txtOutputsChoosen, "не выбраны");
                    sSelectedOutputsIDList = "";
                    txtOutputsChoosen.Text = "";
                    return;
                }

                sSelectedOutputsIDList = oOutputTemp.IDList;

                // список ERP-кодов показать
                int nFirstCntRecords = 3;
                int i = 0;
                foreach (DataRow r in oOutputTemp.MainTable.Rows)
                {
                    if (i < nFirstCntRecords)
                    {
                        _SelectedText += r["ERPCode"].ToString() + ", ";
                    }
                    else
                    {
                        if (i == nFirstCntRecords)
                        {
                            _SelectedText += "...";
                        }
                    }
                    i++;
                }
                _SelectedText = _SelectedText.Trim();
                if (_SelectedText.Substring(_SelectedText.Length - 1, 1) == ",")
                {
                    _SelectedText = _SelectedText.Substring(0, _SelectedText.Length - 1);
                }
                if (_SelectedText.Length > 0)
                {
                    _SelectedText = "(" + oOutputTemp.MainTable.Rows.Count.ToString() + "): " +
                                    _SelectedText.Trim();
                }

                txtOutputsChoosen.Text = _SelectedText;
                ttToolTip.SetToolTip(txtOutputsChoosen, txtOutputsChoosen.Text);
            }
            else
            {
                ttToolTip.SetToolTip(txtOutputsChoosen, "не выбраны");
                sSelectedOutputsIDList = "";
                txtOutputsChoosen.Text = "";
            }
        }
예제 #11
0
        private bool dgvMovingsGoods_Restore()
        {
            if (cboGoodState.SelectedValue == null || cboGoodState.SelectedIndex < 0)
            {
                RFMMessage.MessageBoxError("Не выбрано текущее состояние товара...");
                return(false);
            }
            if (cboCellSourceAddress.SelectedValue == null || cboCellSourceAddress.SelectedIndex < 0)
            {
                RFMMessage.MessageBoxError("Не выбрана ячейка-источник...");
                return(false);
            }
            if (optToOneCell.Checked &&
                (cboCellTargetAddress.SelectedValue == null || cboCellTargetAddress.SelectedIndex < 0))
            {
                RFMMessage.MessageBoxError("Не выбрана целевая ячейка...");
                return(false);
            }

            int nCellSourceID   = (int)cboCellSourceAddress.SelectedValue;
            int nGoodStateID    = (int)cboGoodState.SelectedValue;
            int nGoodStateNewID = (int)cboGoodStateNew.SelectedValue;
            int?nOwnerID        = null;

            if (cboOwners.SelectedIndex >= 0)
            {
                nOwnerID = (int)cboOwners.SelectedValue;
            }
            int?nCellTargetID = null;

            if (cboCellTargetAddress.SelectedIndex >= 0)
            {
                nCellTargetID = (int)cboCellTargetAddress.SelectedValue;
            }

            string sOutputsIDList = null;

            if (chkNotInOutputs.Checked)
            {
                sOutputsIDList = "-1";
            }
            else
            {
                if (sSelectedOutputsIDList.Length > 0)
                {
                    sOutputsIDList = sSelectedOutputsIDList;
                }
            }
            oMoving.FillTableMovingsGoodsInCell(nCellSourceID, nGoodStateID, nGoodStateNewID, nOwnerID, nCellTargetID,
                                                ((sSelectedPackingIDList.Length > 0) ? sSelectedPackingIDList : null),
                                                sOutputsIDList,
                                                nMovingID);

            dgvMovingsGoods.Restore(oMoving.TableMovingsGoods);

            // закрыть начальные условия
            if (dgvMovingsGoods.Rows.Count > 0)
            {
                cboMovingsTypes.Enabled               =
                    cboOwners.Enabled                 =
                        cboGoodState.Enabled          =
                            cboGoodStateNew.Enabled   =
                                pnlSource.Enabled     =
                                    pnlTarget.Enabled =
                                        false;
            }
            else
            {
                cboMovingsTypes.Enabled             =
                    cboOwners.Enabled               =
                        cboGoodState.Enabled        =
                            cboGoodStateNew.Enabled =
                                pnlSource.Enabled   =
                                    cboStoresZonesSource.Enabled =
                                        //cboCellSourceAddress.Enabled =
                                        true;
                if (optToOneCell.Checked)
                {
                    pnlTarget.Enabled =
                        cboStoresZonesTarget.Enabled =
                            //cboCellTargetAddress.Enabled =
                            true;
                }
            }
            return(oMoving.ErrorNumber == 0);
        }
예제 #12
0
        private void btnOutputsChoose_Click(object sender, EventArgs e)
        {
            _SelectedIDList = null;
            _SelectedText   = "";

            Output oOutput = new Output();

            WaitOn(this);
            // фильтры
            //oOutput.FilterConfirmed = false;
            oOutput.FilterDateBeg = DateTime.Now.Date.AddDays(-2);
            oOutput.FillData();
            WaitOff(this);
            if (oOutput.ErrorNumber != 0 || oOutput.MainTable == null)
            {
                RFMMessage.MessageBoxError("Ошибка при получении данных...");
                return;
            }
            if (oOutput.MainTable.Rows.Count == 0)
            {
                RFMMessage.MessageBoxError("Нет данных...");
                return;
            }

            if (StartForm(new frmSelectID(this, oOutput.MainTable,
                                          "DateOutput, ERPCode, DateConfirm, OutputTypeName, PartnerName, CarAlias, BackDoor, Note, CellAddress, OutputID",
                                          "Дата, ERPCode, Подтв., Тип, Клиент, Машина, ЗД, Примечание, Ячейка отгр., ID", true)) == DialogResult.Yes)
            {
                if (_SelectedIDList == null || !_SelectedIDList.Contains(","))
                {
                    btnOutputsClear_Click(null, null);
                    return;
                }

                sSelectedOutputsIDList = "," + _SelectedIDList;

                _SelectedText  = "";
                oOutput.IDList = sSelectedOutputsIDList;
                oOutput.FillData();

                // список ERP-кодов показать
                int nFirstCntRecords = 3;
                int i = 0;
                foreach (DataRow r in oOutput.MainTable.Rows)
                {
                    if (i < nFirstCntRecords)
                    {
                        _SelectedText += r["ERPCode"].ToString() + ", ";
                    }
                    else
                    {
                        if (i == nFirstCntRecords)
                        {
                            _SelectedText += "...";
                        }
                    }
                    i++;
                }
                _SelectedText = _SelectedText.Trim();
                if (_SelectedText.Substring(_SelectedText.Length - 1, 1) == ",")
                {
                    _SelectedText = _SelectedText.Substring(0, _SelectedText.Length - 1);
                }
                if (_SelectedText.Length > 0)
                {
                    _SelectedText = "(" + RFMUtilities.Occurs(_SelectedIDList, ",").ToString() + "): " +
                                    _SelectedText.Trim();
                }

                txtOutputsChoosen.Text = _SelectedText;
                ttToolTip.SetToolTip(txtOutputsChoosen, txtOutputsChoosen.Text);
            }

            _SelectedIDList = null;
            _SelectedText   = "";
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            int nDistance    = (int)numDistance.Value;
            int nDistanceOld = oTrip.Distance;

            dgvOutputsDocuments.GridSource.Filter = "";

            int             nNegative = -1;
            DataRow         dr;
            DataGridViewRow dgvr;

            for (int i = 0; i < dgvOutputsDocuments.Rows.Count; i++)
            {
                dgvr = dgvOutputsDocuments.Rows[i];

                if (dgvr.Cells["dgvcDurationMinutesFact"].Value != DBNull.Value &&
                    (int)dgvr.Cells["dgvcDurationMinutesFact"].Value < 0)
                {
                    nNegative = i;
                    break;
                }
            }
            if (nNegative >= 0)
            {
                dgvOutputsDocuments.GridSource.Filter = "IsUnique";
                RFMMessage.MessageBoxError("Укажите правильное время пребывания у клиента...");
                dgvOutputsDocuments.Rows[nNegative].Cells["dgvcTimeEnd"].Selected = true;
                dgvOutputsDocuments.BeginEdit(true);
                return;
            }

            bool bFind = (nDistance != nDistanceOld);

            if (!bFind)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dr = dt.Rows[i];
                    if (dr["DurationMinutesFact"] != DBNull.Value && (int)dr["DurationMinutesFact"] > 0)
                    {
                        bFind = true;
                        break;
                    }
                }
            }
            if (!bFind)
            {
                dgvOutputsDocuments.GridSource.Filter = "IsUnique";
                RFMMessage.MessageBoxAttention("Нечего сохранять...");
                return;
            }

            int         idMask = -1, idValue, nDuration = 0;
            DataRowView drv;
            DateTime?   dDateBeg = DateTime.Now, dDateEnd = DateTime.Now;

            dt.DefaultView.Sort = "PartnerTargetID";
            for (int i = 0; i < dt.DefaultView.Count; i++)
            {
                drv     = dt.DefaultView[i];
                idValue = (int)drv["PartnerTargetID"];
                if (idMask == idValue)
                {
                    if (dDateBeg == null)
                    {
                        drv["DateBegFact"] = DBNull.Value;
                    }
                    else
                    {
                        drv["DateBegFact"] = dDateBeg;
                    }
                    if (dDateEnd == null)
                    {
                        drv["DateEndFact"] = DBNull.Value;
                    }
                    else
                    {
                        drv["DateEndFact"] = dDateEnd;
                    }
                    drv ["DurationMinutesFact"] = nDuration;
                }
                else
                {
                    idMask = idValue;

                    if (drv["DateBegFact"] == DBNull.Value)
                    {
                        dDateBeg = null;
                    }
                    else
                    {
                        dDateBeg = (DateTime)drv["DateBegFact"];
                    }

                    if (drv["DateEndFact"] == DBNull.Value)
                    {
                        dDateEnd = null;
                    }
                    else
                    {
                        dDateEnd = (DateTime)drv["DateEndFact"];
                    }

                    if (drv["DurationMinutesFact"] == DBNull.Value)
                    {
                        nDuration = 0;
                    }
                    else
                    {
                        nDuration = (int)drv["DurationMinutesFact"];
                    }
                }
            }
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                dr = dt.Rows[i];
                if (dr["DurationMinutesFact"] != DBNull.Value && (int)dr["DurationMinutesFact"] > 0)
                {
                    oOutputDocument.SetDateFact((int)dr["ID"], (DateTime?)dr["DateBegFact"], (DateTime?)dr["DateEndFact"]);
                    if (oOutputDocument.ErrorNumber != 0)
                    {
                        break;
                    }
                }
            }
            if (oOutputDocument.ErrorNumber == 0)
            {
                if (nDistance != nDistanceOld)
                {
                    oTrip.TripDistanceSave(nTripID, nDistance);
                }

                DialogResult = DialogResult.Yes;
                Dispose();
            }
        }
예제 #14
0
        private void btnUsersChoose_Click(object sender, EventArgs e)
        {
            _SelectedIDList = null;
            //sSelectedUsersIDList = "";

            User oUser = new User();

            oUser.FillDataTree(false);
            if (oUser.ErrorNumber != 0 || oUser.DS.Tables["TableDataTree"] == null)
            {
                RFMMessage.MessageBoxError("ќшибка при получении данных...");
                return;
            }
            if (oUser.DS.Tables["TableDataTree"].Rows.Count == 0)
            {
                RFMMessage.MessageBoxError("Ќет данных...");
                return;
            }

            if (StartForm(new frmSelectTreeID(this, oUser.DS.Tables["TableDataTree"], true)) == DialogResult.Yes)
            {
                if (_SelectedIDList == null || !_SelectedIDList.Contains(","))
                {
                    btnUsersClear_Click(null, null);
                    return;
                }

                sSelectedUsersIDList = "," + _SelectedIDList;

                oUser.ClearError();
                oUser.IDList = sSelectedUsersIDList;
                oUser.FillData();
                if (oUser.ErrorNumber != 0)
                {
                    btnUsersClear_Click(null, null);
                    return;
                }

                int nCntChoosen = oUser.MainTable.Rows.Count;
                if (nCntChoosen == 0)
                {
                    btnUsersClear_Click(null, null);
                    return;
                }

                string sSelectedDataText = "";
                int    i = 0;
                foreach (DataRow r in oUser.MainTable.Rows)
                {
                    i++;
                    if (i > 3)
                    {
                        sSelectedDataText += "...";
                        break;
                    }
                    sSelectedDataText += ", " + r["Name"].ToString().Trim();
                }
                if (sSelectedDataText.StartsWith(","))
                {
                    sSelectedDataText = sSelectedDataText.Substring(1).Trim();
                }

                txtUsersChoosen.Text = "(" + nCntChoosen.ToString().Trim() + "): " + sSelectedDataText;
                ttToolTip.SetToolTip(txtUsersChoosen, txtUsersChoosen.Text);

                tabHistory.IsNeedRestore = true;
            }
            _SelectedIDList = null;
        }
예제 #15
0
        /// <summary>
        /// получение полного списка выданных доверенностей в MainTable
        /// </summary>
        public override bool FillData()
        {
            ClearData();

            string sqlSelect = "execute up_WarrantsNumbersFill @nID, @cIDList, " +
                               "@dDateBeg, @dDateEnd, " +
                               "@cNumberContext, " +
                               "@bIsMoney, " +
                               "@cPartnersSourceList, /*@cPartnersDetailsSourceList, */" +
                               "@cPartnersTargetList, /*@cPartnersDetailsTargetList, */" +
                               "@cEmployeesList, " +
                               "@cDeputyNameContext, " +
                               "@cOutputsDocumentsList, @cInputsDocumentsList, @cInputsList, " +
                               "@bIsReturned";
            SqlCommand _oCommand = new SqlCommand(sqlSelect, _Connect);

            _oCommand.CommandTimeout = 0;

            #region up_WarrantsNumbersFill parameters

            SqlParameter _oParameter = _oCommand.Parameters.Add("@nID", SqlDbType.Int);
            if (_ID != null)
            {
                _oParameter.Value = _ID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cIDList", SqlDbType.VarChar);
            if (_IDList != null)
            {
                _oParameter.Value = _IDList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@dDateBeg", SqlDbType.SmallDateTime);
            if (_FilterDateBeg.HasValue)
            {
                _oParameter.Value = _FilterDateBeg;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@dDateEnd", SqlDbType.SmallDateTime);
            if (_FilterDateEnd.HasValue)
            {
                _oParameter.Value = _FilterDateEnd;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cNumberContext", SqlDbType.VarChar);
            if (_FilterNumberContext != null)
            {
                _oParameter.Value = _FilterNumberContext;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@bIsMoney", SqlDbType.Bit);
            if (_FilterIsMoney != null)
            {
                _oParameter.Value = _FilterIsMoney;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cPartnersSourceList", SqlDbType.VarChar);
            if (_FilterPartnersSourceList != null)
            {
                _oParameter.Value = _FilterPartnersSourceList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            /*
             * _oParameter = _oCommand.Parameters.Add("@cPartnersDetailsSourceList", SqlDbType.VarChar);
             * if (_FilterPartnersDetailsSourceList != null)
             *      _oParameter.Value = _FilterPartnersDetailsSourceList;
             * else
             *      _oParameter.Value = DBNull.Value;
             */

            _oParameter = _oCommand.Parameters.Add("@cPartnersTargetList", SqlDbType.VarChar);
            if (_FilterPartnersTargetList != null)
            {
                _oParameter.Value = _FilterPartnersTargetList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            /*
             * _oParameter = _oCommand.Parameters.Add("@cPartnersDetailsTargetList", SqlDbType.VarChar);
             * if (_FilterPartnersDetailsTargetList != null)
             *      _oParameter.Value = _FilterPartnersDetailsTargetList;
             * else
             *      _oParameter.Value = DBNull.Value;
             */

            _oParameter = _oCommand.Parameters.Add("@cEmployeesList", SqlDbType.VarChar);
            if (_FilterEmployeesList != null)
            {
                _oParameter.Value = _FilterEmployeesList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cDeputyNameContext", SqlDbType.VarChar);
            if (_FilterDeputyNameContext != null)
            {
                _oParameter.Value = _FilterDeputyNameContext;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cOutputsDocumentsList", SqlDbType.VarChar);
            if (_FilterOutputsDocumentsList != null)
            {
                _oParameter.Value = _FilterOutputsDocumentsList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cInputsDocumentsList", SqlDbType.VarChar);
            if (_FilterInputsDocumentsList != null)
            {
                _oParameter.Value = _FilterInputsDocumentsList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cInputsList", SqlDbType.VarChar);
            if (_FilterInputsList != null)
            {
                _oParameter.Value = _FilterInputsList;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@bIsReturned", SqlDbType.Bit);
            if (_FilterIsReturned != null)
            {
                _oParameter.Value = _FilterIsReturned;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            #endregion

            try
            {
                _MainTable            = FillReadings(new SqlDataAdapter(_oCommand), _MainTable, _MainTableName);
                _MainTable.PrimaryKey = new DataColumn[] { _MainTable.Columns[_ColumnID] };
                _NeedRequery          = false;
            }
            catch (Exception ex)
            {
                _ErrorNumber = -1;
                _ErrorStr    = "Ошибка при получении списка доверенностей..." + Convert.ToChar(13) + ex.Message;
                RFMMessage.MessageBoxError(_ErrorStr);
            }
            return(_ErrorNumber == 0);
        }
예제 #16
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            // контейнер?
            if (txtFrameBarCode.Text.Length == 0 || oFrame.ID == null)
            {
                RFMMessage.MessageBoxError("Не выбран контейнер...");
                return;
            }

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

            DataRow rFr = oFrame.MainTable.Rows[0];

            if (rFr["PalletTypeID"] == DBNull.Value || Convert.ToDecimal(rFr["FrameHeight"]) == 0)
            {
                RFMMessage.MessageBoxError("Не заданы геометрические характеристики контейнера...");
                btnFrameEdit_Click(null, null);
                return;
            }
            int nFrameID = (int)oFrame.ID;

            // выбранный товар?
            decimal nSelectedCnt  = 0;
            int     nSelectedRows = 0;
            string  sPackingList  = ",";

            foreach (DataRow r in tCellContent.Rows)
            {
                if (Convert.ToDecimal(r["QntCollect"]) != 0)
                {
                    nSelectedCnt = nSelectedCnt + Convert.ToDecimal(r["QntCollect"]);
                    nSelectedRows++;
                    if (!sPackingList.Contains("," + r["PackingID"].ToString().Trim() + ","))
                    {
                        sPackingList = sPackingList + r["PackingID"].ToString().Trim() + ",";
                    }
                }
            }
            if (nSelectedCnt == 0)
            {
                RFMMessage.MessageBoxError("Не выбраны товары для сбора в контейнер.\nНечего сохранять...");
                return;
            }

            if (!chkStereo.Checked && RFMPublic.RFMUtilities.Occurs(sPackingList, ",") > 2)
            {
                RFMMessage.MessageBoxError("В контейнере не может быть собран разный товар...");
                return;
            }

            // траффик? ячейка?
            bool bCreateTraffic = false;
            bool bDirectToCell  = false;
            int? nCellTargetID  = null;

            if (optNotCreateTraffic.Checked ||
                optCreateTrafficAccommodation.Checked ||
                optCreateTrafficCell.Checked)
            {
                // контейнер остается в той же ячейке, по крайней мере пока
                Cell oCellTemp = new Cell();
                oCellTemp.ID = oCellSource.ID;
                oCellTemp.FillData();
                if (oCellTemp.ErrorNumber != 0 || oCellTemp.MainTable.Rows.Count == 0)
                {
                    RFMMessage.MessageBoxError("Ошибка при получении данных об исходной ячейке...");
                    return;
                }
                if (oCellTemp.MainTable.Rows[0]["ForFrames"] != DBNull.Value && !Convert.ToBoolean(oCellTemp.MainTable.Rows[0]["ForFrames"]))
                {
                    RFMMessage.MessageBoxError("Исходная ячейка не предназначена для контейнеров...");
                    return;
                }
            }

            if (optCreateTrafficAccommodation.Checked)
            {
                // подбор ячейки по правилам
                bCreateTraffic = true;
            }

            if (optCreateTrafficCell.Checked ||
                optDirectToCell.Checked)
            {
                // создать трафик в выбранную ячейку
                if (optCreateTrafficCell.Checked)
                {
                    bCreateTraffic = true;
                }
                // напрямую в ячейку
                if (optDirectToCell.Checked)
                {
                    bDirectToCell = true;
                }

                // выбрать ячейку
                if (cboCellTargetAddress.SelectedValue == null || cboCellTargetAddress.SelectedIndex < 0)
                {
                    RFMMessage.MessageBoxError("Не выбрана ячейка, в которой следует разместить контейнер...");
                    return;
                }

                Cell oCellTemp = new Cell();
                oCellTarget.ID = Convert.ToInt32(cboCellTargetAddress.SelectedValue);
                oCellTemp.ID   = oCellTarget.ID;
                oCellTemp.FillData();
                if (oCellTemp.ErrorNumber != 0 || oCellTemp.MainTable.Rows.Count == 0)
                {
                    RFMMessage.MessageBoxError("Ошибка при получении данных о конечной ячейке...");
                    return;
                }
                if (oCellTemp.MainTable.Rows[0]["ForFrames"] != DBNull.Value && !Convert.ToBoolean(oCellTemp.MainTable.Rows[0]["ForFrames"]))
                {
                    RFMMessage.MessageBoxError("Конечная ячейка не предназначена для контейнеров...");
                    return;
                }

                nCellTargetID = (int)cboCellTargetAddress.SelectedValue;
            }

            // собственно сохранение
            DataTable tCellContentSelected = tCellContent.Clone();

            foreach (DataRow r in tCellContent.Rows)
            {
                if (Convert.ToDecimal(r["QntCollect"]) > 0)
                {
                    tCellContentSelected.ImportRow(r);
                }
            }
            if (tCellContentSelected.Rows.Count == 0)
            {
                RFMMessage.MessageBoxError("Не найдены товары для сбора в контейнер.\nНечего сохранять...");
                return;
            }

            string sText = "";

            if (bCreateTraffic)
            {
                sText = sText + " и создать операцию транспортировки для контейнера";
            }
            if (bDirectToCell)
            {
                sText = sText + " и выполнить размещение в ячейке";
            }
            if (RFMMessage.MessageBoxYesNo("Выполнить сбор товаров в контейнер" + sText + "?") == DialogResult.Yes)
            {
                int nUserID = ((RFMFormBase)Application.OpenForms[0]).UserInfo.UserID;

                // собственно сохранение
                oCellSource.NewFrameCollect(nFrameID, tCellContentSelected, bCreateTraffic, bDirectToCell, nCellTargetID, nUserID);
                //
                if (oCellSource.ErrorNumber == 0 || oCellSource.ErrorNumber < -100)
                {
                    DialogResult = DialogResult.Yes;
                    Dispose();
                }
            }
        }
예제 #17
0
        // собственно заполнение свойств экземпляра объекта данными строки
        public override bool FillOneRow(DataRow r)
        {
            ClearOne();

            if (r != null)
            {
                try
                {
                    _ID = Convert.ToInt32(r["ID"]);

                    _Number    = r["Number"].ToString();
                    _NumberInt = Convert.ToInt32(r["NumberInt"]);
                    if (!Convert.IsDBNull(r["DateIssue"]))
                    {
                        _DateIssue = Convert.ToDateTime(r["DateIssue"]);
                    }
                    if (!Convert.IsDBNull(r["DateTill"]))
                    {
                        _DateTill = Convert.ToDateTime(r["DateTill"]);
                    }

                    _PartnerSourceID   = Convert.ToInt32(r["PartnerSourceID"]);
                    _PartnerSourceName = r["PartnerSourceName"].ToString();

                    /*
                     * if (!Convert.IsDBNull(r["PartnerDetailSourceID"]))
                     *      _PartnerDetailSourceID = Convert.ToInt32(r["PartnerDetailSourceID"]);
                     * _PartnerDetailSourceFactName = r["PartnerDetailSourceFactName"].ToString();
                     * _PartnerDetailSourceBankName = r["PartnerDetailSourceBankName"].ToString();
                     */
                    _PartnerTargetID   = Convert.ToInt32(r["PartnerTargetID"]);
                    _PartnerTargetName = r["PartnerTargetName"].ToString();

                    /*
                     * _PartnerDetailTargetID = Convert.ToInt32(r["PartnerDetailTargetID"]);
                     * _PartnerDetailTargetFactName = r["PartnerDetailTargetFactName"].ToString();
                     * _PartnerDetailTargetBankName = r["PartnerDetailTargetBankName"].ToString();
                     */

                    if (!Convert.IsDBNull(r["Amount"]))
                    {
                        _Amount = Convert.ToDecimal(r["Amount"]);
                    }
                    if (!Convert.IsDBNull(r["CurrencyID"]))
                    {
                        _CurrencyID   = Convert.ToInt32(r["CurrencyID"]);
                        _CurrencyName = r["CurrencyName"].ToString();
                    }

                    if (!Convert.IsDBNull(r["OutputDocumentID"]))
                    {
                        _OutputDocumentID = Convert.ToInt32(r["OutputDocumentID"]);
                    }
                    if (!Convert.IsDBNull(r["InputDocumentID"]))
                    {
                        _InputDocumentID = Convert.ToInt32(r["InputDocumentID"]);
                    }
                    if (!Convert.IsDBNull(r["InputID"]))
                    {
                        _InputID = Convert.ToInt32(r["InputID"]);
                    }

                    if (!Convert.IsDBNull(r["EmployeeID"]))
                    {
                        _EmployeeID = Convert.ToInt32(r["EmployeeID"]);
                    }
                    _DeputyName = r["DeputyName"].ToString();

                    _IsMoney       = Convert.ToBoolean(r["IsMoney"]);
                    _WarrantObject = r["WarrantObject"].ToString();

                    if (!Convert.IsDBNull(r["DateReturn"]))
                    {
                        _DateReturn = Convert.ToDateTime(r["DateReturn"]);
                    }
                    _IsReturned = Convert.ToBoolean(r["IsReturned"]);

                    if (!Convert.IsDBNull(r["ERPCode"]))
                    {
                        _ERPCode = r["ERPCode"].ToString();
                    }
                }
                catch (Exception ex)
                {
                    _ErrorNumber = -100;
                    _ErrorStr    = "Ошибка при получении данных о доверенности...\n" +
                                   ex.Message;
                    RFMMessage.MessageBoxError(_ErrorStr);
                }
            }
            else
            {
                _ErrorNumber = -101;
                _ErrorStr    = "Ошибка при получении данных о доверенности (нет данных)...";
                RFMMessage.MessageBoxError(_ErrorStr);
            }
            return(_ErrorNumber == 0);
        }
예제 #18
0
        private void frmCellsNewFrameCollect_Load(object sender, EventArgs e)
        {
            bool lResult = true;

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

            if (lResult)
            {
                DataRow r = oCellSource.MainTable.Rows[0];
                if (r == null)
                {
                    RFMMessage.MessageBoxError("Не определена исходная ячейка...");
                    lResult = false;
                }

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

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

                if (lResult)
                {
                    tCellContent.Columns.Add("QntCollect", Type.GetType("System.Decimal"));
                    tCellContent.Columns.Add("BoxCollect", Type.GetType("System.Decimal"));
                    foreach (DataRow rd in tCellContent.Rows)
                    {
                        rd["QntCollect"] = rd["BoxCollect"] = 0;
                    }

                    grdCellsContents_Restore();
                }
            }

            if (lResult)
            {
                //  заполнение cbo-классификаторов для приемника
                lResult = cboStoresZonesTarget_Restore() &&
                          cboStoresZonesTypesTarget_Restore() &&
                          cboCellTargetAddress_Restore();
                oCellTarget.ID = null;
                if (!lResult)
                {
                    RFMMessage.MessageBoxError("Ошибка при заполнении классификаторов (контейнеры, товары)...");
                }
            }

            if (lResult)
            {
                lblPackingName.Text = "";
                numBoxQnt.Value     = 0;
                numRestQnt.Value    = 0;
                dtpDateValid.Value  = DateTime.Now.Date;
                dtpDateValid.HideControl(false);
            }

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

            grcBoxQnt.AgrType                     =
                grcQnt.AgrType                    =
                    grcPalQnt.AgrType             =
                        grcBoxCollect.AgrType     =
                            grcQntCollect.AgrType =
                                EnumAgregate.Sum;
            numBoxQnt.Minimum = numRestQnt.Minimum = 0;


            pnlDataChange.Enabled = false;
            btnGridSave.Enabled   = false;
            btnGridUndo.Enabled   = false;

            optCreateTraffic_CheckedChanged(null, null);

            grdCellsContents.Select();

            _bLoaded = true;
            cboStoresZonesTypesTarget.Enabled = false;
        }
예제 #19
0
        //получение таблицы складских зон
        public override bool FillData()
        {
            ClearData();

            string sqlSelect = "select SZ.ID, SZ.Name, " +
                               "SZT.ShortCode, SZT.AddressMask, " +
                               "SZ.StoreZoneTypeID, SZT.Name as StoreZoneTypeName, " +
                               "SZ.Sequence, SZ.MaxPalletQnt, SZ.Actual, " +
                               "SZ.NamePrefix, SZ.NameSuffix, " +
                               "SZT.ForFrames, SZT.ForStorage, SZT.ForPicking, " +
                               "SZT.ForInputs, SZT.ForOutputs, " +
                               "SZT.Special, " +
                               "SZT.GoodsMono, " +
                               "SZT.Actual as StoreZoneTypeActual " +
                               "from StoresZones SZ " +
                               "left join StoresZonesTypes SZT on SZ.StoreZoneTypeID = SZT.ID " +
                               "where 1 = 1 ";
            StringBuilder sb = new StringBuilder(sqlSelect);

            if (StoreZoneID != null)
            {
                sb.Append(" and SZ.ID = " + StoreZoneID.ToString());
            }
            if (StoreZoneTypeID != null)
            {
                sb.Append(" and SZT.ID = " + StoreZoneTypeID.ToString());
            }
            if (_FilterStoreZoneActual != null)
            {
                sb.Append(" and SZ.Actual = " + ((bool)_FilterStoreZoneActual ? "1" : "0"));
            }
            if (_FilterStoreZoneTypeActual != null)
            {
                sb.Append(" and SZT.Actual = " + ((bool)_FilterStoreZoneTypeActual ? "1" : "0"));
            }
            if (_FilterStoreZoneTypeShortCode != null)
            {
                sb.Append(" and charindex('" + _FilterStoreZoneTypeShortCode + "', SZT.ShortCode) > 0 ");
            }
            if (_FilterStoreZoneTypeForFrames != null)
            {
                sb.Append(" and isNull(SZT.ForFrames," + ((bool)_FilterStoreZoneTypeForFrames ? "1" : "0") + ") = " + ((bool)_FilterStoreZoneTypeForFrames ? "1" : "0"));
            }
            if (_FilterStoreZoneTypeForStorage != null)
            {
                sb.Append(" and SZT.ForStorage = " + ((bool)_FilterStoreZoneTypeForStorage ? "1" : "0"));
            }
            if (_FilterStoreZoneTypeForPicking != null)
            {
                sb.Append(" and SZT.ForPicking = " + ((bool)_FilterStoreZoneTypeForPicking ? "1" : "0"));
            }
            if (_FilterStoreZoneTypeForInputs != null)
            {
                sb.Append(" and SZT.ForInputs = " + ((bool)_FilterStoreZoneTypeForInputs ? "1" : "0"));
            }
            if (_FilterStoreZoneTypeForOutputs != null)
            {
                sb.Append(" and SZT.ForOutputs = " + ((bool)_FilterStoreZoneTypeForOutputs ? "1" : "0"));
            }
            sb.Append(" order by SZ.Name, SZ.ID");
            SqlCommand _oCommand = new SqlCommand(sb.ToString(), _Connect);

            try
            {
                _MainTable        = FillReadings(new SqlDataAdapter(_oCommand), _MainTable, _MainTableName);
                _TableStoresZones = _DS.Tables[_MainTableName];

                // primarykey
                DataColumn[] pk = new DataColumn[1];
                pk[0] = _MainTable.Columns[_ColumnID];
                _MainTable.PrimaryKey = pk;

                _NeedRequery = true;
            }
            catch (Exception ex)
            {
                _ErrorNumber = -1;
                _ErrorStr    = "ќшибка при получении списка складских зон..." + Convert.ToChar(13) + ex.Message;
                RFMMessage.MessageBoxError(_ErrorStr);
            }
            return(_ErrorNumber == 0);
        }
예제 #20
0
        /// <summary>
        /// Расчет длины маршрута
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCalcRoute_Click(object sender, EventArgs e)
        {
            // Установка координат базы
            Logistics.Properties.Settings set = new Logistics.Properties.Settings();

            double nBaseLat, nBaseLng;

            try
            {
                nBaseLat = Convert.ToDouble(set.MapBaseLatitude);
                nBaseLng = Convert.ToDouble(set.MapBaseLongitude);
            }
            catch (Exception ex)
            {
                RFMMessage.MessageBoxError("Координаты базы указаны неверно!\r\n" + ex.Message);
                return;
            }

            RFMCursorWait.Set(true);

            // Входящие параметры
            Location locOrigin, locDestination;

            locOrigin           = locDestination = new Location();
            locOrigin.Latitude  = locDestination.Latitude = nBaseLat;
            locOrigin.Longitude = locDestination.Longitude = nBaseLng;

            List <int>      listPartners  = new List <int>();
            List <Location> listWayPoints = new List <Location>();

            foreach (DataRow r in tableEfficiency.Rows)
            {
                // Пропуск статусной строки
                string sPartnerID = r["PartnerID"].ToString();
                if (sPartnerID.Length == 0)
                {
                    continue;
                }

                int    nPartnerID = Convert.ToInt32(sPartnerID);
                string sLat = r["Latitude"].ToString(), sLng = r["Longitude"].ToString();
                if (listPartners.IndexOf(nPartnerID) < 0 && sLat.Length > 0 && sLng.Length > 0)
                {
                    listPartners.Add(nPartnerID);

                    Location loc = new Location();
                    loc.Latitude  = Convert.ToDouble(sLat);
                    loc.Longitude = Convert.ToDouble(sLng);
                    listWayPoints.Add(loc);
                }
            }

            // Исходящие параметры
            int             nDistance = 0, nDuration = 0;
            string          sDistance = "", sDuration = "", sErrorText = "";
            List <Location> polyline = new List <Location>();

            // Расчет маршрута
            bool bResult = GoogleService.CalcRoute(locOrigin, locDestination, listWayPoints,
                                                   out nDistance, out sDistance,
                                                   out nDuration, out sDuration,
                                                   out polyline,
                                                   out sErrorText);

            RFMCursorWait.Set(false);
            if (!bResult)
            {
                RFMMessage.MessageBoxError(sErrorText);
                return;
            }

            numDistance.Value = (decimal)nDistance / 1000;
            numTripCost.Value = numDistance.Value * numNormDistance.Value;
        }
        private void frmTripsReturnsActsCreate_Load(object sender, EventArgs e)
        {
            if (nOwnerID > 0)
            {
                oOwner.ReFillOne(nOwnerID);
                if (oOwner.HostID.HasValue && oOwner.HostID > 0)
                {
                    nHostID = oOwner.HostID;
                }
            }

            bool bResult = cboOwner_Restore() && cboGoodsState_Restore();

            if (!bResult)
            {
                RFMMessage.MessageBoxError("Ошибка при заполнении классификаторов...");
            }
            else
            {
                bResult = oTrip.ReFillOne(nTripID) && oTrip.ErrorNumber == 0;
                if (!bResult)
                {
                    RFMMessage.MessageBoxError("Ошибка при получении данных о рейсе...");
                }
                else
                {
                    if (nGoodStateID > 0)
                    {
                        cboGoodsState.SelectedValue = nGoodStateID;
                        cboGoodsState.Enabled       = false;
                    }
                    if (nOwnerID > 0)
                    {
                        cboOwner.SelectedValue = nOwnerID;
                        cboOwner.Enabled       = false;
                    }

                    chkReturnReadyForWMS.Checked = chkActReadyForWMS.Checked = true;


                    dgvGoods_Restore();

                    // встать на первую строку, в ячейку "Коробок"
                    if (dgvGoods.RowCount > 0)
                    {
                        dgvGoods.CurrentCell = dgvGoods.Rows[0].Cells["dgvcReturnBox"];
                        dgvGoods.Select();
                    }
                }
            }

            if (!bResult)
            {
                DialogResult = DialogResult.No;
                Dispose();
                return;
            }

            if (nHostID.HasValue && nHostID > 0)
            {
                Host oHost = new Host();
                if (oHost.Count() > 1)
                {
                    oHost.ReFillOne((int)nHostID);
                    Text += " [" + oHost.Name + "]";
                }
            }
        }
예제 #22
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (dtpDateExtraWork.IsEmpty)
            {
                RFMMessage.MessageBoxError("Укажите дату дополнительной внутрискладской работы!");
                dtpDateExtraWork.Select();
                return;
            }
            if (cboUsers.SelectedValue == null || cboUsers.SelectedIndex < 0)
            {
                RFMMessage.MessageBoxError("Укажите исполнителя!");
                cboUsers.Select();
                return;
            }

            /*
             * if (cboOwners.SelectedValue == null || cboOwners.SelectedIndex < 0)
             * {
             *  RFMMessage.MessageBoxError("Укажите владельца!");
             *  cboOwners.Select();
             *  return;
             * }
             */
            if (txtExtraWork.Text.Trim() == null || txtExtraWork.Text.Trim().Length == 0)
            {
                RFMMessage.MessageBoxError("Укажите название дополнительной внутрискладской работы!");
                txtExtraWork.Select();
                return;
            }

            if ((decimal)numQnt.Value == 0)
            {
                RFMMessage.MessageBoxError("Укажите объем дополнительной внутрискладской работы!");
                numQnt.Select();
                return;
            }

            if ((decimal)numTarif.Value == 0)
            {
                RFMMessage.MessageBoxError("Укажите тариф для дополнительной внутрискладской работы!");
                numTarif.Select();
                return;
            }

            int?nOwnerID = null;

            if (cboOwners.SelectedIndex >= 0)
            {
                nOwnerID = (int)cboOwners.SelectedValue;
            }

            oExtraWork.ClearError();
            oExtraWork.Save(oExtraWork.ID, (DateTime)dtpDateExtraWork.Value, txtExtraWork.Text.Trim(),
                            nOwnerID, (int)cboUsers.SelectedValue,
                            (decimal)numQnt.Value, (decimal)numTarif.Value, txtNote.Text.Trim());
            if (oExtraWork.ErrorNumber == 0)
            {
                MotherForm.GotParam = new object[] { (int)oExtraWork.ID };
                DialogResult        = DialogResult.Yes;
                Dispose();
            }
        }
예제 #23
0
        public bool Save(int?nUserCreateID)
        {
            string _sqlCommand = "execute up_ActsSave @nActID output, " +
                                 "@nHostID, " +
                                 "@dDateAct, " +
                                 "@nOwnerID, @nGoodStateID, " +
                                 "@nInputID, @nOutputID, " +
                                 "@cNote, " +
                                 "@nUserCreateID, " +
                                 "@nError output, @cErrorText output";
            SqlCommand _oCommand = new SqlCommand(_sqlCommand, _Connect);

            #region up_ActsSave parameters

            SqlParameter _oParameter = _oCommand.Parameters.Add("@nActID", SqlDbType.Int);
            _oParameter.Direction = ParameterDirection.InputOutput;
            if (_ID.HasValue)
            {
                _oParameter.Value = _ID;
            }
            else
            {
                _oParameter.Value = 0;
            }

            _oParameter       = _oCommand.Parameters.Add("@nHostID", SqlDbType.Int);
            _oParameter.Value = _HostID;

            _oParameter       = _oCommand.Parameters.Add("@dDateAct", SqlDbType.SmallDateTime);
            _oParameter.Value = _DateAct;

            _oParameter = _oCommand.Parameters.Add("@nOwnerID", SqlDbType.Int);
            if (_OwnerID.HasValue)
            {
                _oParameter.Value = _OwnerID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@nGoodStateID", SqlDbType.Int);
            if (_GoodStateID.HasValue)
            {
                _oParameter.Value = _GoodStateID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@nInputID", SqlDbType.Int);
            if (_InputID.HasValue)
            {
                _oParameter.Value = _InputID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@nOutputID", SqlDbType.Int);
            if (_OutputID.HasValue)
            {
                _oParameter.Value = _OutputID;
            }
            else
            {
                _oParameter.Value = DBNull.Value;
            }

            _oParameter = _oCommand.Parameters.Add("@cNote", SqlDbType.VarChar);
            if (_Note != null)
            {
                _oParameter.Value = _Note;
            }
            else
            {
                _oParameter.Value = "";
            }

            _oParameter = _oCommand.Parameters.Add("@nUserCreateID", SqlDbType.Int);
            if (nUserCreateID.HasValue)
            {
                _oParameter.Value = nUserCreateID;
            }
            else
            {
                _oParameter.Value = 0;                 // DBNull.Value;
            }
            _oParameter           = _oCommand.Parameters.Add("@nError", SqlDbType.Int);
            _oParameter.Direction = ParameterDirection.InputOutput;
            _oParameter.Value     = 0;

            _oParameter           = _oCommand.Parameters.Add("@cErrorText", SqlDbType.VarChar, 200);
            _oParameter.Direction = ParameterDirection.InputOutput;
            _oParameter.Value     = "";

            #endregion

            // Проверка таблицы расшифровок
            if (TableActsGoods == null)
            {
                _ErrorNumber = -12;
                _ErrorStr    = "Ошибка при попытке сохранения акта...\r\n" + "Нулевая таблица расшифровок акта";
                RFMMessage.MessageBoxError(_ErrorStr);
                return(false);
            }
            if (TableActsGoods.Rows.Count == 0)
            {
                _ErrorNumber = -11;
                _ErrorStr    = "Ошибка при попытке сохранения акта...\r\n" + "Пустая таблица расшифровок акта";
                RFMMessage.MessageBoxError(_ErrorStr);
                return(false);
            }

            try
            {
                _Connect.Open();

                // таблица товаров
                if (TableActsGoods != null)
                {
                    RFMUtilities.DataTableToTempTable(TableActsGoods, "#ActsGoods", _Connect);
                }

                _oCommand.ExecuteScalar();
            }
            catch (Exception ex)
            {
                _ErrorNumber = -10;
                _ErrorStr    = "Ошибка при попытке сохранения акта...\r\n" + ex.Message;
                RFMMessage.MessageBoxError(_ErrorStr);
            }
            finally
            {
                _Connect.Close();
            }
            if (_ErrorNumber == 0)
            {
                _ErrorNumber = (int)_oCommand.Parameters["@nError"].Value;
                if (_ErrorNumber != 0)
                {
                    _ErrorStr = "Ошибка при сохранении акта...\r\n" + _oCommand.Parameters["@cErrorText"].Value;
                    RFMMessage.MessageBoxError(_ErrorStr);
                }
                // при создании нового акта - получим его код
                if ((!_ID.HasValue || _ID == 0) &&
                    !Convert.IsDBNull(_oCommand.Parameters["@nActID"].Value))
                {
                    _ID = (int)_oCommand.Parameters["@nActID"].Value;
                }
            }
            return(_ErrorNumber == 0);
        }
예제 #24
0
        private void frmShowMap_Load(object sender, EventArgs e)
        {
            #region Проверка режима работы
            if (sMode != "T" && sMode != "P")
            {
                Close();
                return;
            }
            #endregion

            #region Получение установок "Координаты центра карты" и "Координаты базы"
            Logistics.Properties.Settings set = new Logistics.Properties.Settings();

            #region Установка центра карты
            try
            {
                nMapCenterLatitude  = Convert.ToDouble(set.MapCenterLatitude);
                nMapCenterLongitude = Convert.ToDouble(set.MapCenterLongitude);
                wfpRadMapControl.SetMapCenter(nMapCenterLatitude, nMapCenterLongitude);
            }
            catch (Exception ex)
            {
                RFMMessage.MessageBoxError("Координаты центра карты указаны неверно!\r\n" + ex.Message);
                return;
            }
            #endregion

            #region Установка координат базы
            try
            {
                nBaseLat = Convert.ToDouble(set.MapBaseLatitude);
                nBaseLng = Convert.ToDouble(set.MapBaseLongitude);
                wfpRadMapControl.SetBaseLocation(nBaseLat, nBaseLng);
            }
            catch (Exception ex)
            {
                RFMMessage.MessageBoxError("Координаты базы указаны неверно!\r\n" + ex.Message);
                return;
            }
            #endregion

            #endregion

            #region  ежим "Маршрут"
            if (sMode == "T")
            {
                if (!ShowTrip())
                {
                    Close();
                    return;
                }
            }
            #endregion

            #region  ежим "Партнер"
            if (sMode == "P")
            {
                if (!ShowPartner())
                {
                    Close();
                    return;
                }
            }
            #endregion
        }
예제 #25
0
        private void frmPartnersEdit_Load(object sender, EventArgs e)
        {
            bool bResult = true;

            oPartner.ID = nPartnerID;

            // классификаторы
            bResult = cboZone_Restore() && cboPermitLevel_Restore(); /*&& cboPartnerRoot_Restore();*/
            if (bResult)
            {
                cboPartnerRoot.SelectedIndex         =
                    cboZone.SelectedIndex            =
                        cboPermitLevel.SelectedIndex =
                            -1;

                if (nPartnerID.HasValue && (int)nPartnerID != 0)
                {
                    // существующий клиент
                    bResult = oPartner.ReFillOne((int)nPartnerID) && (oPartner.ErrorNumber == 0);
                    if (bResult)
                    {
                        Text += " (код " + nPartnerID.ToString() + ")";

                        txtNаme.Text               = oPartner.Name;
                        chkActual.Checked          = oPartner.Actual;
                        chkIsCustomer.Checked      = oPartner.IsCustomer;
                        chkIsSupplier.Checked      = oPartner.IsSupplier;
                        chkIsTransport.Checked     = oPartner.IsTransport;
                        chkIsOwner.Checked         = oPartner.IsOwner;
                        chkSeparatePicking.Checked = oPartner.SeparatePicking;
                        chkIsOwner_CheckedChanged(null, null);

                        txtContactsInfo.Text = oPartner.ContactsInfo;

                        if (oPartner.PartnerRootID.HasValue)
                        {
                            cboPartnerRoot.SelectedValue = oPartner.PartnerRootID;
                        }
                        if (oPartner.ZoneID.HasValue)
                        {
                            cboZone.SelectedValue = oPartner.ZoneID;
                        }
                        if (oPartner.PermitLevelID.HasValue)
                        {
                            cboPermitLevel.SelectedValue = oPartner.PermitLevelID;
                        }

                        txtDeliveryAddress.Text     = oPartner.DeliveryAddress;
                        txtDeliveryPassage.Text     = oPartner.DeliveryPassage;
                        txtDeliveryRestriction.Text = oPartner.DeliveryRestriction;

                        txtGravity.Text = oPartner.Gravity;

                        txtNote.Text = oPartner.Note;

                        // CoordinatesX, CoordinatesY
                        txtLatitude.Text  = (oPartner.Latitude.HasValue ? oPartner.Latitude.ToString() : "");
                        txtLongitude.Text = (oPartner.Longitude.HasValue ? oPartner.Longitude.ToString() : "");

                        numDistance.Value = oPartner.Distance;

                        chkPassengerCarOnly.Checked = oPartner.PassengerCarOnly;
                        chkPosternOnly.Checked      = oPartner.PosternOnly;
                        chkLoadLiftOnly.Checked     = oPartner.LoadLiftOnly;

                        //  покажем верхнюю запись из PartnersDetail
                        oPartner.FillTablePartnersDetails((int)oPartner.ID);
                        if (oPartner.TablePartnersDetails.Rows.Count > 0)
                        {
                            DataRow p = oPartner.TablePartnersDetails.Rows[0];

                            txtLegalName.Text    = p["LegalName"].ToString();
                            txtLegalAddress.Text = p["LegalAddress"].ToString();
                            txtFactName.Text     = p["FactName"].ToString();
                            txtFactAddress.Text  = p["FactAddress"].ToString();
                            txtPhone.Text        = p["Phone"].ToString();
                            txtInn.Text          = p["Inn"].ToString();
                            txtKpp.Text          = p["Kpp"].ToString();

                            txtContractNumber.Text = p["ContractNumber"].ToString();
                            if (!Convert.IsDBNull(p["ContractDate"]))
                            {
                                dtpContractDate.Value = Convert.ToDateTime(p["ContractDate"]);
                            }
                            else
                            {
                                dtpContractDate.HideControl(false);
                            }

                            txtBankName.Text    = p["BankName"].ToString();
                            txtBankAddress.Text = p["BankAddress"].ToString();
                            txtPAccount.Text    = p["PAccount"].ToString();
                            txtCAccount.Text    = p["CAccount"].ToString();
                            txtBik.Text         = p["Bik"].ToString();
                            txtOkonh.Text       = p["Okonh"].ToString();
                            txtOkpo.Text        = p["Okpo"].ToString();

                            txtJobTitleDirector.Text   = p["JobTitleDirector"].ToString();
                            txtFioDirector.Text        = p["FioDirector"].ToString();
                            txtJobTitleAccountant.Text = p["JobTitleAccountant"].ToString();
                            txtFioAccountant.Text      = p["FioAccountant"].ToString();
                        }
                        //

                        // стр.Дополнительно
                        chkDateValidControl.Checked = oPartner.DateValidControl;
                        chkPalletsAgreement.Checked = oPartner.PalletsAgreement;
                        chkFactPaymentOnly.Checked  = oPartner.FactPaymentOnly;

                        txtTimeWork.Text     = oPartner.TimeWork;
                        txtTimeReceipt.Text  = oPartner.TimeReceipt;
                        txtTimePay.Text      = oPartner.TimePay;
                        txtTimeRest.Text     = oPartner.TimeRest;
                        numStayMinutes.Value = oPartner.StayMinutes;

                        // стр.Шаблоны
                        if (oPartner.PF_BillName != null && oPartner.PF_BillName.Length > 0)
                        {
                            txtPF_BillName.Text = oPartner.PF_BillName;
                        }
                        numPF_BillCopiesCount.Value = oPartner.PF_BillCopiesCount;
                        chkPF_Bill.Checked          = txtPF_BillName.Text.Trim().Length > 0 || numPF_BillCopiesCount.Value > 0;
                        if (oPartner.PF_FactureName != null && oPartner.PF_FactureName.Length > 0)
                        {
                            txtPF_FactureName.Text = oPartner.PF_FactureName;
                        }
                        numPF_FactureCopiesCount.Value = oPartner.PF_FactureCopiesCount;
                        chkPF_Facture.Checked          = txtPF_FactureName.Text.Trim().Length > 0 || numPF_FactureCopiesCount.Value > 0;
                        if (oPartner.PF_PayBillName != null && oPartner.PF_PayBillName.Length > 0)
                        {
                            txtPF_PayBillName.Text = oPartner.PF_PayBillName;
                        }
                        numPF_PayBillCopiesCount.Value = oPartner.PF_PayBillCopiesCount;
                        chkPF_PayBill.Checked          = txtPF_PayBillName.Text.Trim().Length > 0 || numPF_PayBillCopiesCount.Value > 0;

                        txtShopCode.Text = oPartner.ShopCode;

                        // стр.Ветеринария
                        txtVeterinaryPartnerName.Text = oPartner.VeterinaryPartnerName;
                        txtVeterinaryPermission.Text  = oPartner.VeterinaryPermission;

                        // not used

                        /*
                         * chkFactureNeed.Checked = oPartner.FactureNeed;
                         * chkWarrantNeed.Checked = oPartner.WarrantNeed;
                         * chkPaymentOrderNeed.Checked = oPartner.PaymentOrderNeed;
                         * chkOtherDocumentsNeed.Checked = oPartner.OtherDocumentsNeed;
                         * chkQualityLicenceNeed.Checked = oPartner.QualityLicenceNeed;
                         * chkVeterinaryLicenceNeed.Checked = oPartner.VeterinaryLicenceNeed;
                         */
                    }

                    if (oPartner.DrivingScheme != null && !Convert.IsDBNull(oPartner.DrivingScheme))
                    {
                        byte[]       bsPhoto = oPartner.DrivingScheme;
                        MemoryStream ms      = new MemoryStream(bsPhoto);
                        try
                        {
                            picDrivingScheme.Image = new Bitmap(ms);
                        }
                        catch (Exception ex)
                        {
                            RFMMessage.MessageBoxError("Ошибка загрузки схемы проезда: " + ex.Message);
                        }
                    }
                }
                else
                {
                    // новый клиент
                    chkActual.Checked = true;
                }

                // только просмотр
                if (bNoEdit)
                {
                    RFMPanelGlass pnlGlass = new RFMPanelGlass();
                    pnlGlass.Top    = pnlData.Top;
                    pnlGlass.Left   = pnlData.Left;
                    pnlGlass.Width  = pnlData.Width;
                    pnlGlass.Height = pnlData.Height;
                    Controls.Add(pnlGlass);
                    pnlGlass.BringToFront();

                    btnSave.Select();
                    btnSave.Enabled = false;
                    Text           += " - просмотр";
                }
                else
                {
                    // доступность полей
                    DBTable dbTable = new DBTable();
                    foreach (Control oControlTemp in Controls)
                    {
                        ControlEnable(dbTable, oControlTemp);
                    }
                }

                chkPF_Bill_CheckedChanged(null, null);
                chkPF_Facture_CheckedChanged(null, null);
                chkPF_PayBill_CheckedChanged(null, null);
            }

            if (!bResult)
            {
                Dispose();
            }

            bLoaded = true;
        }
예제 #26
0
        private bool ShowTrip()
        {
            wfpRadMapControl.Mode = "T";

            #region Переменные для вычисления составляющих маршрута
            int    pointsCount = 0, tripsCount = 0, wrongPartners = 0;
            double nLongitude, nLatitude;
            string sName, sDeliveryAddress, sLongitude, sLatitude;
            string sWrongPartners = "";
            string sTripID = "*", sCurTripID = "", sCarName = "";
            #endregion

            #region Формирование строки с координатами
            foreach (DataRow row in tPartnersTable.Rows)
            {
                // Обработка номера маршрута
                if (isTripNumberExists)
                {
                    sCurTripID = row["TripID"].ToString();
                    if (sTripID == "*") // Обработка первой точки
                    {
                        sTripID    = sCurTripID;
                        tripsCount = 0;
                    }
                    if (sTripID != sCurTripID)
                    {
                        sTripID = sCurTripID;
                        tripsCount++;
                    }
                }
                if (isCarNameExists)
                {
                    sCarName = row["CarName"].ToString();
                }

                #region Получение географических координат
                sLongitude = row["Longitude"].ToString();
                sLatitude  = row["Latitude"].ToString();
                #endregion

                #region Получение названия и адреса партнера
                // Название партнера (с отбрасыванием символов " и ')
                sName = row["Name"].ToString();
                sName = sName.Replace("\"", "").Replace("'", "");

                // Адрес доставки (с заменой символа " на ')
                sDeliveryAddress = row["DeliveryAddress"].ToString();
                sDeliveryAddress = sDeliveryAddress.Replace("\"", "").Replace("'", "");
                #endregion

                if (sLongitude.Length > 0 && sLatitude.Length > 0)
                {
                    #region Приведение координат партнера
                    try
                    {
                        nLongitude = Convert.ToDouble(sLongitude);
                        nLatitude  = Convert.ToDouble(sLatitude);
                    }
                    catch { continue; }
                    #endregion

                    pointsCount++;

                    #region Добавление партнера
                    wfpRadMapControl.CreateStaticPartner(
                        nLatitude, nLongitude,
                        sName + CRLF + sDeliveryAddress + CRLF + sCarName,
                        new SolidColorBrush(aColors[tripsCount % aColors.Length])
                        );
                    #endregion
                }
                else
                {
                    wrongPartners++;
                    if (wrongPartners <= 20)
                    {
                        sWrongPartners += sName + CRLF;
                    }
                    else
                    {
                        if (!sWrongPartners.EndsWith("..."))
                        {
                            sWrongPartners += "...";
                        }
                    }
                }
            }

            #endregion

            #region Проверка наличия точек
            if (pointsCount == 0)
            {
                RFMMessage.MessageBoxError("Нет данных о координатах партнеров!");
                return(false);
            }

            // Отображение точек с проблемами
            if (sWrongPartners.Length > 0)
            {
                sWrongPartners = "Следующие " + wrongPartners.ToString() + " партнер(ов) не имеют координат:\r\n" + sWrongPartners;
                RFMMessage.MessageBoxInfo(sWrongPartners);
            }
            #endregion

            wfpRadMapControl.SetBestView();

            return(true);
        }
예제 #27
0
        // собственно заполнение свойств экземпляра объекта данными строки
        public override bool FillOneRow(DataRow r)
        {
            ClearOne();

            if (r != null)
            {
                try
                {
                    _ID          = Convert.ToInt32(r["ID"]);
                    _DateReturn  = Convert.ToDateTime(r["DateReturn"]);
                    _DateCreate  = Convert.ToDateTime(r["DateCreate"]);
                    _AutoCreated = Convert.ToBoolean(r["AutoCreated"]);

                    if (!Convert.IsDBNull(r["OwnerID"]))
                    {
                        _OwnerID = Convert.ToInt32(r["OwnerID"]);
                    }
                    _OwnerName = r["OwnerName"].ToString();
                    if (!Convert.IsDBNull(r["GoodStateID"]))
                    {
                        _GoodStateID = Convert.ToInt32(r["GoodStateID"]);
                    }
                    _GoodStateName = r["GoodStateName"].ToString();

                    if (!Convert.IsDBNull(r["TripID"]))
                    {
                        _TripID = Convert.ToInt32(r["TripID"]);
                    }
                    _TripAlias = r["TripAlias"].ToString();

                    _Note = r["Note"].ToString();

                    if (!Convert.IsDBNull(r["DateConfirm"]))
                    {
                        _DateConfirm = Convert.ToDateTime(r["DateConfirm"]);
                    }
                    _IsConfirmed = Convert.ToBoolean(r["IsConfirmed"]);

                    _ReadyForWMS = Convert.ToBoolean(r["ReadyForWMS"]);
                    _SentToWMS   = Convert.ToBoolean(r["SentToWMS"]);

                    if (!Convert.IsDBNull(r["UserCreateID"]))
                    {
                        _UserCreateID = Convert.ToInt32(r["UserCreateID"]);
                    }
                    _UserCreateName = r["UserCreateName"].ToString();
                    if (!Convert.IsDBNull(r["DateCreate"]))
                    {
                        _DateCreate = Convert.ToDateTime(r["DateCreate"]);
                    }

                    if (!Convert.IsDBNull(r["HostID"]))
                    {
                        _HostID = Convert.ToInt32(r["HostID"]);
                    }
                    _HostName = r["HostName"].ToString();

                    if (!Convert.IsDBNull(r["ERPCode"]))
                    {
                        _ERPCode = r["ERPCode"].ToString();
                    }
                }
                catch (Exception ex)
                {
                    _ErrorNumber = -100;
                    _ErrorStr    = "Ошибка при получении данных об возврате...\n" +
                                   ex.Message;
                    RFMMessage.MessageBoxError(_ErrorStr);
                }
            }
            else
            {
                _ErrorNumber = -101;
                _ErrorStr    = "Ошибка при получении данных об возврате (нет данных)...";
                RFMMessage.MessageBoxError(_ErrorStr);
            }
            return(_ErrorNumber == 0);
        }
예제 #28
0
        /// <summary>
        /// Конструктор для отображения маршрута
        /// </summary>
        /// <param name="PartnersTable">Таблица с точками маршрута</param>
        public frmShowMap(DataTable PartnersTable, bool IsOneRoute)
        {
            #region Входящие параметры
            tPartnersTable = PartnersTable;
            isOneRoute     = IsOneRoute;
            #endregion

            #region Проверка входящей таблицы
            if (IsValid)
            {
                if (tPartnersTable == null || tPartnersTable.Rows.Count == 0 || tPartnersTable.Columns.Count == 0)
                {
                    RFMMessage.MessageBoxError("Получена пустая таблица!");
                    IsValid = false;
                }
            }
            if (IsValid)
            {
                if (tPartnersTable.Rows.Count > 1000)
                {
                    RFMMessage.MessageBoxError("Слишком много точек!");
                    IsValid = false;
                }
            }
            #endregion

            #region Проверка наличия необходимых полей
            // Входящая таблица должна содержать как минимум следующие поля:
            // Name - название партнера
            // DeliveryAddress - адрес доставки
            // Latitude - географическая широта
            // Longitude - географическая долгота
            if (IsValid)
            {
                try
                {
                    string testValue;
                    testValue = tPartnersTable.Rows[0]["Name"].ToString();
                    testValue = tPartnersTable.Rows[0]["DeliveryAddress"].ToString();
                    testValue = tPartnersTable.Rows[0]["Latitude"].ToString();
                    testValue = tPartnersTable.Rows[0]["Longitude"].ToString();
                }
                catch
                {
                    RFMMessage.MessageBoxError("Полученная таблица имеет некорректную структуру!");
                    IsValid = false;
                }
            }
            sMode = "T";
            #endregion

            #region Проверка наличия дополнительных полей
            if (IsValid)
            {
                // № рейса
                try
                {
                    string testValue;
                    testValue          = tPartnersTable.Rows[0]["TripID"].ToString();
                    isTripNumberExists = true;
                }
                catch { isTripNumberExists = false; }

                // Название машины
                try
                {
                    string testValue;
                    testValue       = tPartnersTable.Rows[0]["CarName"].ToString();
                    isCarNameExists = true;
                }
                catch { isCarNameExists = false; }
            }
            #endregion

            if (IsValid)
            {
                InitializeComponent();
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            int nCellID = Convert.ToInt32(oCell.ID);

            // всякие проверки
            if (oCell.TableCellsContents.Rows.Count == 0)
            {
                RFMMessage.MessageBoxError("В ячейке нет ни одного товара.\nНечего сохранять...");
                return;
            }

            int nCntNoChanges = 0;
            int nCntAdd       = 0;
            int nCntDel       = 0;
            int nCntEdt       = 0;

            foreach (DataRow r in oCell.TableCellsContents.Rows)
            {
                if (r["Changes"].ToString() == "D")
                {
                    nCntDel++;
                }
                if (r["Changes"].ToString() == "A")
                {
                    nCntAdd++;
                }
                if (r["Changes"].ToString() == "E")
                {
                    nCntEdt++;
                }
                if (r["Changes"].ToString().Length == 0)
                {
                    nCntNoChanges++;
                }
            }
            if (nCntAdd == 0 && nCntDel == 0 && nCntEdt == 0)
            {
                RFMMessage.MessageBoxError("Нет изменений в содержимом ячейки.\nНечего сохранять...");
                return;
            }

            string sText = "Ячейка " + _sAddress + "\n";

            if (nCntNoChanges > 0)
            {
                sText = sText + "\nВ ячейке находятся товары: " + nCntNoChanges.ToString();
            }
            if (nCntDel > 0)
            {
                sText = sText + "\nИз ячейки удаляются товары: " + nCntDel.ToString();
            }
            if (nCntAdd > 0)
            {
                sText = sText + "\nВ ячейку добавляются товары: " + nCntAdd.ToString();
            }
            if (nCntEdt > 0)
            {
                sText = sText + "\nВ ячейке изменяется количество/срок годности товаров: " + nCntEdt.ToString();
            }
            sText = sText + "\n\nСохранить?";
            if (RFMMessage.MessageBoxYesNo(sText) == DialogResult.Yes)
            {
                Refresh();
                WaitOn(this);

                int?   nUserID     = ((RFMFormMain)Application.OpenForms[0]).UserID;
                int?   nDeviceID   = null;
                string sNoteManual = txtNoteManual.Text.Trim();
                // собственно сохранение
                oCell.MedicationNotFrames(nCellID, oCell.TableCellsContents, nUserID, nDeviceID, sNoteManual);
                //
                WaitOff(this);
                if (oCell.ErrorNumber == 0)
                {
                    DialogResult = DialogResult.Yes;
                    Dispose();
                }
            }
        }
예제 #30
0
        private void frmFramesEdit_Load(object sender, EventArgs e)
        {
            //  заполнение cbo-классификаторов
            bool lResult = cboPalletsTypes_Restore();

            if (!lResult)
            {
                RFMMessage.MessageBoxError("Ошибка при заполнении классификаторов (геометрия контейнера)...");
                return;
            }

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

            if (r == null)
            {
                RFMMessage.MessageBoxError("Не найдена запись для контейнера с кодом " + r["ID"].ToString() + " в таблице контейнеров...");
                return;
            }

            // заполняем элементы по первой ячейке

            if (r["PalletTypeID"] == DBNull.Value)
            {
                cboPalletsTypes.SelectedIndex = -1;
            }
            else
            {
                cboPalletsTypes.SelectedValue = (int)r["PalletTypeID"];
            }

            if (r["FrameHeight"] == DBNull.Value)
            {
                numFrameHeight.Value = 0;
            }
            else
            {
                numFrameHeight.Value = Convert.ToDecimal(r["FrameHeight"]);
            }

            // -------
            if (oFrame.MainTable.Rows.Count == 1)
            {
                // выбран один контейнер
                txtBarCode.Text = r["BarCode"].ToString();
                txtFrameID.Text = r["ID"].ToString();
                txtCnt.Text     = "Выбрано контейнеров: 1";

                chkPalletsTypes.Visible = false;
                chkFrameHeight.Visible  = false;
            }
            else
            {
                // выбрано несколько контейнеров
                txtBarCode.Text = "";
                txtFrameID.Text = "";
                txtCnt.Text     = "Выбрано контейнеров: " + oFrame.MainTable.Rows.Count.ToString();

                foreach (DataRow rx in oFrame.MainTable.Rows)
                {
                    if (cboPalletsTypes.SelectedIndex == -1 && rx["PalletTypeID"] != DBNull.Value ||
                        cboPalletsTypes.SelectedIndex >= 0 && rx["PalletTypeID"] == DBNull.Value ||
                        cboPalletsTypes.SelectedIndex >= 0 && ((int)cboPalletsTypes.SelectedValue != (int)rx["PalletTypeID"]))
                    {
                        cboPalletsTypes.SelectedIndex = -1;
                        txtPalletsTypes.Text          = "...разные значения...";
                    }

                    if (numFrameHeight.Value != -1 && rx["FrameHeight"] != DBNull.Value ||
                        numFrameHeight.Value >= 0 && rx["FrameHeight"] == DBNull.Value ||
                        numFrameHeight.Value >= 0 && (numFrameHeight.Value != Convert.ToDecimal(rx["FrameHeight"])))
                    {
                        numFrameHeight.Value = 0;
                        txtFrameHeight.Text  = "...разные значения...";
                    }
                }

                chkPalletsTypes_CheckedChanged(null, null);
                chkFrameHeight_CheckedChanged(null, null);
            }

            _bLoaded = true;
        }