Beispiel #1
0
        private void btnRecovery_Click(object sender, EventArgs e)
        {
            if (!fillCheck(true))
            {
                MessageBox.Show("Одно или несколько полей не заполнены", "Информация");
                return;
            }
            using (DBCtx db = new DBCtx())
            {
                string vendorCode = tbVendorCode.Text;
                int    attr_id    = 0;
                int.TryParse(cbAttr.SelectedValue.ToString(), out attr_id);
                if (attr_id == 0)
                {
                    MessageBox.Show("Ошибка выбора элемента списка", "Информация");
                    return;
                }

                Product product = (from p in db.Product
                                   where p.vendor_code == vendorCode && p.deleted == null
                                   select p).FirstOrDefault();
                if (product == null)
                {
                    MessageBox.Show("Товар не найден, возможно он был удален", "Информация");
                    return;
                }

                ProductAttrs pa = (from _pa in db.ProductAttrs
                                   where _pa.product_id == _pa.product_id && _pa.attr_id == attr_id && _pa.deleted != null
                                   select _pa).FirstOrDefault();

                if (pa == null)
                {
                    MessageBox.Show("Отсутствует в списке удаленных", "Информация");
                    return;
                }

                pa.deleted = null;

                Logs log = new Logs();
                log.username = username;
                log.acttime  = DateTime.Now;
                log.action   = String.Format("Recovery product attribute: counterparty(vendorCode - {0}, name - {1}), attribute(attr - {2})",
                                             product.vendor_code, product.name, cbAttr.GetItemText(cbAttr.SelectedItem));
                db.Logs.Add(log);
                try
                {
                    db.SaveChanges();
                }
                catch (Exception)
                {
                    MessageBox.Show("Произошла ошибка, атрибут товара не был восстановлен", "Информация");
                    return;
                }

                MessageBox.Show("Атрибут товара успешно восстановлен в системе", "Информация");
                this.Close();
            }
        }
Beispiel #2
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            using (DBCtx db = new DBCtx())
            {
                Product product = (from p in db.Product
                                   where p.vendor_code == vendorCode && p.deleted == null
                                   select p).FirstOrDefault();
                if (product == null)
                {
                    MessageBox.Show("Не удалось найти покупателя или поставщика, удаление невозможно", "Информация");
                    return;
                }

                Dictionary dict = (from _d in db.Dictionary
                                   from _e in db.Entity
                                   where _d.entity_id == _e.id && _d.term_name == attr_name && _e.name == "product"
                                   select _d).FirstOrDefault();

                if (dict == null)
                {
                    MessageBox.Show("Не удалось найти атрибут, удаление невозможно", "Информация");
                    return;
                }

                ProductAttrs pa = (from _pa in db.ProductAttrs
                                   where _pa.product_id == product.id && _pa.attr_id == dict.id && _pa.attr_value == attr_value && _pa.deleted == null
                                   select _pa).FirstOrDefault();
                if (pa == null)
                {
                    MessageBox.Show("Ошибка получения атрибута, возможно он был удален");
                    return;
                }

                pa.deleted = "Y";

                Logs log = new Logs();
                log.username = username;
                log.acttime  = DateTime.Now;
                log.action   = String.Format("Delete product attrs: counterparty(vendorCode - {0}, name - {1}), attr (name - {2} id - {3}, value - {4})",
                                             product.vendor_code, product.name,
                                             dict.term_name, pa.attr_id, pa.attr_value);
                db.Logs.Add(log);
                try
                {
                    db.SaveChanges();
                }
                catch (Exception)
                {
                    MessageBox.Show("Произошла ошибка, атрибут товара не был удален", "Информация");
                    return;
                }

                MessageBox.Show("Атрибут товара успешно удален из системы", "Информация");
                this.Close();
            }
        }
Beispiel #3
0
        private void btnModify_Click(object sender, EventArgs e)
        {
            using (DBCtx db = new DBCtx())
            {
                ProductAttrs nwpa = (from _pa in db.ProductAttrs
                                     where _pa.product_id == pa.product_id && _pa.attr_id == pa.attr_id && _pa.attr_value == pa.attr_value && _pa.deleted == null
                                     select _pa).FirstOrDefault();
                if (nwpa == null)
                {
                    MessageBox.Show("Ошибка получения атрибута, возможно он был удален");
                    return;
                }

                if (cbAttr.Enabled)
                {
                    int attr_id = 0;
                    int.TryParse(cbAttr.SelectedValue.ToString(), out attr_id);
                    if (attr_id == 0)
                    {
                        MessageBox.Show("Ошибка выбора элемента списка", "Информация");
                        return;
                    }

                    nwpa.attr_id = attr_id;
                }

                nwpa.attr_value = tbVal.Text;

                Logs log = new Logs();
                log.username = username;
                log.acttime  = DateTime.Now;
                log.action   = String.Format("Update product attrs: product(vendorCode - {0}, inn - {1}), prev (id - {2}, value - {3}) new (id - {4}, value - {5})",
                                             product.vendor_code, product.name,
                                             pa.attr_id, pa.attr_value, nwpa.attr_id, nwpa.attr_value);
                db.Logs.Add(log);
                try
                {
                    db.SaveChanges();
                }
                catch (Exception)
                {
                    MessageBox.Show("Произошла ошибка, атрибут товара не был обновлен", "Информация");
                    return;
                }

                MessageBox.Show("Атрибут товара успешно обновлен в системе", "Информация");
                this.Close();
            }
        }
Beispiel #4
0
        public Modify(string username, Product product, ProductAttrs pa)
        {
            InitializeComponent();

            this.dictionaryTableAdapter.Fill(this.attrsForCombobox.Dictionary);

            this.username = username;
            this.product  = product;
            this.pa       = pa;

            tbVendorCode.Text = product.vendor_code;
            tbVal.Text        = pa.attr_value;

            using (DBCtx db = new DBCtx())
            {
                Dictionary attr = (from d in db.Dictionary
                                   where d.id == pa.attr_id
                                   select d).FirstOrDefault();

                if (attr == null)
                {
                    MessageBox.Show("Ошибка получения атрибута", "Информация");
                    this.Close();
                }

                if (attr.deleted == null)
                {
                    cbAttr.SelectedIndex = cbAttr.FindStringExact(attr.term_name);
                }
                else
                {
                    DialogResult result = MessageBox.Show("Возможно данный атрибут устарел, редактировать только значение (нажать да) или обновить на новый атрибут (нажать нет)", "Информация", MessageBoxButtons.YesNo);
                    if (result == DialogResult.Yes)
                    {
                        cbAttr.Enabled = false;
                    }
                    else
                    {
                        cbAttr.SelectedIndex = 0;
                    }
                }
            }
        }
Beispiel #5
0
        private void btnCheck_Click(object sender, EventArgs e)
        {
            if (!fillCheck(true))
            {
                MessageBox.Show("Одно или несколько полей не заполнены", "Информация");
                return;
            }
            using (DBCtx db = new DBCtx())
            {
                string vendorCode = tbVendorCode.Text;
                int    attr_id    = 0;
                int.TryParse(cbAttr.SelectedValue.ToString(), out attr_id);
                if (attr_id == 0)
                {
                    MessageBox.Show("Ошибка выбора элемента списка", "Информация");
                    return;
                }

                Product product = (from p in db.Product
                                   where p.vendor_code == vendorCode && p.deleted == null
                                   select p).FirstOrDefault();
                if (product == null)
                {
                    MessageBox.Show("Товар не найден, возможно он был удален", "Информация");
                    return;
                }

                ProductAttrs pa = (from _pa in db.ProductAttrs
                                   where _pa.product_id == product.id && _pa.attr_id == attr_id && _pa.deleted != null
                                   select _pa).FirstOrDefault();

                if (pa != null)
                {
                    MessageBox.Show("Присутствует в списке удаленных", "Информация");
                }
                else
                {
                    MessageBox.Show("Отсутствует в списке удаленных", "Информация");
                }
            }
        }
Beispiel #6
0
        private void modifyProductAttrs(object sender, EventArgs e)
        {
            if ((dgvProductAttrs.SelectedRows == null || dgvProductAttrs.SelectedRows.Count != 1) &&
                (dgvProductAttrs.SelectedCells == null || dgvProductAttrs.SelectedCells.Count != 1))
            {
                MessageBox.Show("Не выбрана запись для редактирования или выбрано больше одной", "Информация");
                return;
            }

            int rowIndex;

            if (dgvProductAttrs.SelectedCells != null && dgvProductAttrs.SelectedCells.Count == 1)
            {
                rowIndex = dgvProductAttrs.SelectedCells[0].RowIndex;
            }
            else
            {
                rowIndex = dgvProductAttrs.SelectedRows[0].Index;
            }

            string       vendorCode = dgvProductAttrs.Rows[rowIndex].Cells[0].Value.ToString();
            string       attr_name  = dgvProductAttrs.Rows[rowIndex].Cells[1].Value.ToString();
            int          attr_id    = 0;
            string       val        = dgvProductAttrs.Rows[rowIndex].Cells[2].Value.ToString();
            ProductAttrs pa         = new ProductAttrs();
            Product      product;

            using (DBCtx db = new DBCtx())
            {
                Dictionary dict = (from d in db.Dictionary
                                   from en in db.Entity
                                   where d.entity_id == en.id && en.name == "product" && d.term_name == attr_name
                                   select d).FirstOrDefault();
                if (dict == null)
                {
                    MessageBox.Show("Ошибка выбора элемента списка", "Информация");
                    return;
                }

                attr_id = dict.id;

                product = (from p in db.Product
                           where p.vendor_code == vendorCode && p.deleted == null
                           select p).FirstOrDefault();

                if (product == null)
                {
                    MessageBox.Show("Товар не найден, изменение невозможно");
                    return;
                }

                pa.product_id = product.id;
            }

            pa.attr_id    = attr_id;
            pa.attr_value = val;

            windows.productattrs.Modify modify = new windows.productattrs.Modify(username, product, pa);
            modify.ShowDialog();

            refreshProductAttrs();
        }