Beispiel #1
0
        private void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            try
            {
                CCalcOrder objCalcOrder = GetSelectedCalcOrder();
                if (objCalcOrder != null)
                {
                    if (DevExpress.XtraEditors.XtraMessageBox.Show("Подтвердите удаления расчета: " + objCalcOrder.ToString(), "Внимание",
                                                                   System.Windows.Forms.MessageBoxButtons.YesNoCancel, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                    {
                        RemoveCalcOrder(objCalcOrder);
                    }
                }
            }
            catch (System.Exception f)
            {
                SendMessageToLog("Ошибка удаления расчета. Текст ошибки: " + f.Message);
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }

            return;
        }
Beispiel #2
0
        /// <summary>
        /// Запрашивает список расчетов
        /// </summary>
        private void LoadCalcOrderList()
        {
            this.Cursor = Cursors.WaitCursor;
            try
            {
                this.splitContainerControl.SuspendLayout();
                ((System.ComponentModel.ISupportInitialize)(this.gridControlProductList)).BeginInit();

                gridControlProductList.DataSource = null;

                m_objCalcOrderList = CCalcOrder.GetCalcOrderList(m_objProfile, null);

                if (m_objCalcOrderList != null)
                {
                    gridControlProductList.DataSource = m_objCalcOrderList;
                }

                this.splitContainerControl.ResumeLayout(false);
                ((System.ComponentModel.ISupportInitialize)(this.gridControlProductList)).EndInit();
                splitContainerControl.SplitterPosition = m_iStartSplitterPosition;
                //splitContainerControl.Panel2.Size = new Size(200, splitContainerControl.Panel2.Size.Height);
                splitContainerControl.Refresh();
            }
            catch (System.Exception f)
            {
                SendMessageToLog("Ошибка обновления списка. Текст ошибки: " + f.Message);
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }

            return;
        }
Beispiel #3
0
        /// <summary>
        /// Возвращает ссылку на выбранный в списке товар
        /// </summary>
        /// <returns>ссылка на товар</returns>
        private CCalcOrder GetSelectedCalcOrder()
        {
            CCalcOrder objRet = null;

            try
            {
                if ((((DevExpress.XtraGrid.Views.Grid.GridView)gridControlProductList.MainView).RowCount > 0) &&
                    (((DevExpress.XtraGrid.Views.Grid.GridView)gridControlProductList.MainView).FocusedRowHandle >= 0))
                {
                    System.Guid uuidID = (System.Guid)(((DevExpress.XtraGrid.Views.Grid.GridView)gridControlProductList.MainView)).GetFocusedRowCellValue("ID");

                    if ((m_objCalcOrderList != null) && (m_objCalcOrderList.Count > 0) && (uuidID.CompareTo(System.Guid.Empty) != 0))
                    {
                        foreach (CCalcOrder objCalcOrder in m_objCalcOrderList)
                        {
                            if (objCalcOrder.ID.CompareTo(uuidID) == 0)
                            {
                                objRet = objCalcOrder;
                                break;
                            }
                        }
                    }
                }
            }//try
            catch (System.Exception f)
            {
                SendMessageToLog("Ошибка поиска выбранного расчета. Текст ошибки: " + f.Message);
            }
            finally
            {
            }

            return(objRet);
        }
Beispiel #4
0
        private void LoadData(CCalcOrder objCalcOrder)
        {
            try
            {
                //System.String strStartProcess = "идет загрузка данных...";
                if (objCalcOrder == null)
                {
                    return;
                }
                this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
                System.Boolean bPageExsits = false;
                System.String  strTabName  = objCalcOrder.Num;
                foreach (DevExpress.XtraTab.XtraTabPage tabPageItem in tabControl.TabPages)
                {
                    if (tabPageItem.Name == strTabName)
                    {
                        bPageExsits = true;
                        tabControl.SelectedTabPage = tabPageItem;
                        break;
                    }
                }
                if (bPageExsits == true)
                {
                    return;
                }

                DevExpress.XtraTab.XtraTabPage tabPage = new DevExpress.XtraTab.XtraTabPage();
                if (tabPage != null)
                {
                    tabPage.Name = strTabName;
                    tabControl.TabPages.Add(tabPage);
                    tabControl.SelectedTabPage = tabPage;

                    ctrlCalcOrderItem ViewerCalcOrderItem = new ctrlCalcOrderItem(m_objProfile, objCalcOrder);
                    if (ViewerCalcOrderItem != null)
                    {
                        tabPage.Controls.Add(ViewerCalcOrderItem);
                        tabPage.Text             = strTabName;
                        ViewerCalcOrderItem.Dock = DockStyle.Fill;

                        this.Refresh();

                        ViewerCalcOrderItem.LoadCalcOrderItems();
                        ViewerCalcOrderItem.ChangeCalcOrderItem += this.OnChangeCalcOrderItem;
                    }
                    this.Refresh();
                }
            }
            catch (System.Exception f)
            {
                DevExpress.XtraEditors.XtraMessageBox.Show("Ошибка загрузки плана закупок для ." + objCalcOrder.Num + "\n\nТекст ошибки: " + f.Message, "Ошибка",
                                                           System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
            }
            finally
            {
                this.Cursor = System.Windows.Forms.Cursors.Default;
            }
            return;
        }
Beispiel #5
0
        public ctrlCalcOrderItem(UniXP.Common.CProfile objProfile, CCalcOrder objCalcOrder)
        {
            m_objProfile = objProfile;

            InitializeComponent();

            m_objCalcOrder   = objCalcOrder;
            m_bPlanIsChanged = false;
        }
Beispiel #6
0
        public void SimulateChangeCalcOrderItem(CCalcOrder objCalcOrder, System.Boolean bIsChanged)
        {
            // Создаем объект, хранящий информацию, которую нужно передать
            // объектам, получающим уведомление о событии
            ChangeCalcOrderItemEventArgs e = new ChangeCalcOrderItemEventArgs(objCalcOrder, bIsChanged);

            // Вызываем виртуальный метод, уведомляющий наш объект о возникновении события
            // Если нет типа, переопределяющего этот метод, наш объект уведомит все объекты,
            // подписавшиеся на уведомление о событии
            OnChangeCalcOrderItem(e);
        }
Beispiel #7
0
        /// <summary>
        /// Расчет заказа
        /// </summary>
        private void CalcOrder()
        {
            try
            {
                frmProductOwnerList objfrmProductOwnerList = new frmProductOwnerList(m_objProfile);
                if (objfrmProductOwnerList != null)
                {
                    if ((objfrmProductOwnerList.ShowDialog() == DialogResult.OK) &&
                        (objfrmProductOwnerList.SelectedProductOwner != null))
                    {
                        System.String strErr = "";
                        System.String strProductOwnerName  = "Выбрана товарная марка: " + objfrmProductOwnerList.SelectedProductOwner.Name;
                        System.String strSaleprognosisName = ((objfrmProductOwnerList.SelectedSalePrognosis == null) ? "" : ("прогноз продаж: " + objfrmProductOwnerList.SelectedSalePrognosis.ToString()));

                        if (DevExpress.XtraEditors.XtraMessageBox.Show(
                                strProductOwnerName + "\n" + strSaleprognosisName + ".\n\nРасчет заказа может занять несколько минут.\nНачать расчет?", "Подтверждение",
                                System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            SendMessageToLog("идет расчет заказа для товарной марки " + objfrmProductOwnerList.SelectedProductOwner.Name + "...");
                            this.Refresh();
                            this.Cursor = Cursors.WaitCursor;
                            if (CCalcOrder.CalcOrder(m_objProfile, null, objfrmProductOwnerList.SelectedProductOwner, objfrmProductOwnerList.SelectedSalePrognosis, ref strErr) == true)
                            {
                                this.Cursor = Cursors.Default;
                                SendMessageToLog("расчет заказа завершен");
                                DevExpress.XtraEditors.XtraMessageBox.Show(
                                    "Заказ успешно расчитан. Нажмите кнопку \"Обновить\"", "Информация",
                                    System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);
                            }
                            else
                            {
                                this.Cursor = Cursors.Default;
                                SendMessageToLog("ошибка расчета заказа");
                                DevExpress.XtraEditors.XtraMessageBox.Show(
                                    "Ошибка расчета заказа.\n\nТекст ошибки: " + strErr, "Ошибка",
                                    System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                            }
                        }
                    }
                }
                objfrmProductOwnerList = null;
            }
            catch (System.Exception f)
            {
                DevExpress.XtraEditors.XtraMessageBox.Show(
                    "Ошибка расчета заказа.\n\nТекст ошибки: " + f.Message, "Ошибка",
                    System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
            return;
        }
Beispiel #8
0
        private void gridControlProductList_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                this.Cursor = Cursors.WaitCursor;
                CCalcOrder objSelectedCalcOrder = GetSelectedCalcOrder();
                LoadData(objSelectedCalcOrder);
            }//try
            catch (System.Exception f)
            {
                SendMessageToLog("Ошибка просмотра приложения к расчету. Текст ошибки: " + f.Message);
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }

            return;
        }
Beispiel #9
0
        private void RemoveCalcOrder(CCalcOrder objCalcOrder)
        {
            if (objCalcOrder == null)
            {
                return;
            }

            try
            {
                this.Cursor = Cursors.WaitCursor;
                if (objCalcOrder.Remove(m_objProfile) == true)
                {
                    CCalcOrder objCalcOrderForDelete = null;
                    foreach (CCalcOrder objItem in m_objCalcOrderList)
                    {
                        if (objItem.ID.CompareTo(objCalcOrder.ID) == 0)
                        {
                            objCalcOrderForDelete = objItem;
                            break;
                        }
                    }
                    if (objCalcOrderForDelete != null)
                    {
                        m_objCalcOrderList.Remove(objCalcOrderForDelete);
                        gridControlProductList.RefreshDataSource();
                    }
                }
            }
            catch (System.Exception f)
            {
                SendMessageToLog("Ошибка удаления расчета. Текст ошибки: " + f.Message);
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }

            return;
        }
Beispiel #10
0
        /// <summary>
        /// Возвращает список расчетов
        /// </summary>
        /// <param name="objProfile">профайл</param>
        /// <param name="cmdSQL">SQL-команда</param>
        /// <returns>список расчетов</returns>
        public static List<CCalcOrder> GetCalcOrderList(UniXP.Common.CProfile objProfile, 
            System.Data.SqlClient.SqlCommand cmdSQL)
        {
            List<CCalcOrder> objList = new List<CCalcOrder>();
            System.Data.SqlClient.SqlConnection DBConnection = null;
            System.Data.SqlClient.SqlCommand cmd = null;
            try
            {
                if (cmdSQL == null)
                {
                    DBConnection = objProfile.GetDBSource();
                    if (DBConnection == null)
                    {
                        DevExpress.XtraEditors.XtraMessageBox.Show(
                            "Не удалось получить соединение с базой данных.", "Внимание",
                            System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                        return objList;
                    }
                    cmd = new System.Data.SqlClient.SqlCommand();
                    cmd.Connection = DBConnection;
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                }
                else
                {
                    cmd = cmdSQL;
                    cmd.Parameters.Clear();
                }

                cmd.CommandText = System.String.Format("[{0}].[dbo].[usp_GetCalcOrderListFromERP_Report]", objProfile.GetOptionsDllDBName());
                cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
                cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_NUM", System.Data.SqlDbType.Int, 8, System.Data.ParameterDirection.Output, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
                cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_MES", System.Data.SqlDbType.NVarChar, 4000));
                cmd.Parameters["@ERROR_MES"].Direction = System.Data.ParameterDirection.Output;
                System.Data.SqlClient.SqlDataReader rs = cmd.ExecuteReader();
                if (rs.HasRows)
                {
                    CProductTradeMark objProductTradeMark = null;
                    CCalcOrder objCalcOrder = null;

                    while (rs.Read())
                    {
                        objProductTradeMark = new CProductTradeMark();
                        objProductTradeMark.ID_Ib = System.Convert.ToInt32(rs["OWNER_ID"]);
                        objProductTradeMark.Name = (System.String)rs["OWNER_NAME"];
                        objProductTradeMark.ProductVtm = new CProductVtm();
                        objProductTradeMark.ProductVtm.ID_Ib = System.Convert.ToInt32(rs["VTM_ID"]);
                        objProductTradeMark.ProductVtm.Name = (System.String)rs["VTM_NAME"];

                        objCalcOrder = new CCalcOrder();
                        objCalcOrder.m_uuidID = (System.Guid)rs["CALCORDER_GUID"];
                        objCalcOrder.m_strNum = (System.String)rs["CALCORDER_NUM"];
                        objCalcOrder.m_dtCalcOrderDate = System.Convert.ToDateTime(rs["CALCORDER_BEGINDATE"]);
                        objCalcOrder.m_objProductTradeMark = objProductTradeMark;

                        if (rs["SALEPROGNOSIS_ID"] != System.DBNull.Value)
                        {
                            objCalcOrder.m_objSalePrognosis = new CSalePrognosis(System.Convert.ToDateTime(rs["REPORTDATE"]),
                                System.Convert.ToInt32(rs["SALEPROGNOSIS_ID"]), System.Convert.ToInt32(rs["MonthID"]), 
                                System.Convert.ToInt32(rs["YearID"]), System.Convert.ToString(rs["YearMonth"]) );
                        }

                        objList.Add(objCalcOrder);
                    }
                }
                rs.Dispose();

                if (cmdSQL == null)
                {
                    cmd.Dispose();
                    DBConnection.Close();
                }
            }
            catch (System.Exception f)
            {
                DevExpress.XtraEditors.XtraMessageBox.Show(
                "Не удалось получить список расчетов.\n\nТекст ошибки : " + f.Message, "Внимание",
                System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
            }
            return objList;
        }
Beispiel #11
0
 public ChangeCalcOrderItemEventArgs(CCalcOrder objCalcOrder, System.Boolean bIsChanged)
 {
     m_objCalcOrder = objCalcOrder;
     m_bIsChanged   = bIsChanged;
 }