Пример #1
0
        private void Delete_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Удалить данную заявку", "Внимание!", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                //DB.order_detail od = (DB.order_detail)olvMain.SelectedObject;
                DB.order o = (DB.order)olvMain.SelectedObject;
                foreach (var od in o.details)
                {
                    od.order_num  = o.num;
                    od.order_date = o.date;

                    DB.order_detail.delete_order_details(od);

                    o.details.Remove(od);
                }

                DB.order.delete_order(o);
                //DB.order_detail.delete_order_details(od);


                olvMain.RefreshObjects(o.details);
                olvMain.RemoveObject(o);

                // DB.load();
                //  olvMain.SetObjects(DB.orders.Values);
                olvMain.Refresh();
            }
        }
Пример #2
0
        }                                     //этот метод показывает, что мы в режиме ввода новой заявки

        public void Execute(DB.order o)
        {
            ord = o;
            if (ord == null)
            {
                ord                = null;
                ordnew             = new DB.order();
                ordnew.num         = DB.order.get_new_order_num();
                ordnew.customer_id = DB.customers.Values.First().id;
                ordnew.employee_id = DB.employees.Values.First().id;
                ordnew.date        = DateTime.Today.Date; //здесь самостоятельно укоротить до даты (без часов и т.п.)
            }
            else
            {
                ordnew          = new DB.order(o);
                ord             = o;
                TextBoxNum.Text = o.num.ToString();
            }
            TextBoxDate.Text = ordnew.date.Date.ToString(); //для поля сделать шаблон ввода, чтобы только год/месяц/день вводился. и ToString() здесь не пройдет наверное (при шаблоне), нужен будет форматированный вывод даты
            TextBoxNum.ReadOnly.ToString();                 //нет, номер пускай нельзя вводить, только подставлять готовый (TextBoxNum.ReadOnly)
            comboBoxEmp.DataSource        = DB.employees.Values.ToList();
            comboBoxEmp.DisplayMember     = "name";
            comboBoxEmp.ValueMember       = "id";
            comboBoxEmp.SelectedValue     = ordnew.employee_id;
            comboBoxCust.DataSource       = DB.customers.Values.ToList();
            comboBoxCust.DisplayMember    = "printed_name";
            comboBoxCust.ValueMember      = "id";
            comboBoxCust.SelectedValue    = ordnew.customer_id;
            comboBoxProduct.DataSource    = DB.products.Values.ToList();
            comboBoxProduct.DisplayMember = "name";
            comboBoxProduct.ValueMember   = "id";
            if (ordnew.details.Count() > 0)
            {
                comboBoxProduct.SelectedValue = ordnew.details.First().product_id;
            }
            else
            {
                comboBoxProduct.SelectedValue = DB.products.Values.First().id;
            }

            olvOrderDetails.SetObjects(ordnew.details);
            ShowDialog();
            //далее работаешь c ordnew. По кнопке применить или сохранить, смотришь, что изменилось в заявке (сравнить старую и новую) и обновляешь старую и вносишь изменения в БД.
            //если в режиме ввода новой заявки, то новую добавляешь в БД и затем все записи из details. Если все успешно, то добавляешь заявку в список orders.
        }