Beispiel #1
0
        private void gridViewinvDet_DoubleClick(object sender, EventArgs e)
        {
            if (this.gridViewinvDet.IsValidRowHandle(this.gridViewinvDet.FocusedRowHandle) & this.gridViewinvDet.State == GridState.Normal & !this.gridViewinvDet.IsFilterRow(this.gridViewinvDet.FocusedRowHandle))
            {
                FormDialog _formDialog = new FormDialog();
                _formDialog.AcceptButton = null;
                _formDialog.Text         = "»зменить строку";

                MDataSet.InvoiceDetailRow sourceRow = ((this.invoiceDetailBindingSource.CurrencyManager.Current as DataRowView).Row as MDataSet.InvoiceDetailRow);

                if ((sourceRow != null))
                {
                    MDataSet.ProductRow productRow = (this.productBindingSource.DataSource as MDataSet.ProductDataTable).FindByID(sourceRow.ProductRef);

                    if (productRow == null)
                    {
                        MessageBox.Show("ќшибка поиска товара");
                        return;
                    }

                    InvoiceDetailRowAdd _invoiceDetailRowAdd = new InvoiceDetailRowAdd(sourceRow, sourceRow.RemainsRow, productRow);
                    _formDialog.panel.Controls.Add(_invoiceDetailRowAdd);

                    if (DialogResult.OK == _formDialog.ShowDialog(this))
                    {
                        this.invoiceDetailBindingSource.EndEdit();
                    }

                    else
                    {
                        this.invoiceDetailBindingSource.CancelEdit();
                    }
                }
            }
        }
Beispiel #2
0
        private bool OnInvoiceDetailSQLError(SqlException sqlerr, MDataSet.InvoiceDetailRow row)
        {
            decimal _oldQnt = row.Quantity;

            RefreshData(row.RemainsRow);
            // если нулевой остаток
            if (row.RemainsRow.QuantityRemains == 0)
            {
                MessageBox.Show("Уже нет товара на складе!");
                row.RejectChanges();
                return(true);
            }
            else
            { // уменьшить до кол-ва остатка и снова сохранить
                try
                {
                    row.ClearErrors();
                    row.Quantity = row.RemainsRow.QuantityRemains;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    row.RejectChanges();
                    return(false);
                }
                finally
                {
                    decimal ed = _oldQnt - row.Quantity;
                    MessageBox.Show("Не удалось выписать: " + ed.ToString());
                }
                return(true);
            }
        }
Beispiel #3
0
        private bool SaleInvoiceDetail(MDataSet.InvoiceDetailRow row)
        {
            Decimal res;

            try
            {
                string name = row.RemainsRow.ProductRow.SmallName;

                bool isnds = row.RemainsRow.ProductRow.IsNDS;

                res = _printer.FiscalLine(name, row.Quantity, row.PriceRetailNDS, isnds);

                if (res != 0)
                {
                    this._mainForm.SaveToBase(_invmasterRow);
                }
                this.invoiceDetailBindingSource.ResetBindings(true);
            }
            catch (Exception err)
            {
                MessageBox.Show("Ошибка!!");
                MainForm.Log("SaleInvoiceDetail" + err.Message + " " + _printer.ErrorText);
                this.Close();
                return(false);
            }


            return(true);
        }
Beispiel #4
0
        private void gridViewInvRem_DoubleClick(object sender, EventArgs e)
        {
            MDataSet.RemainsRow _rem = this.gridViewInvRem.GetDataRow(this.gridViewInvRem.FocusedRowHandle) as MDataSet.RemainsRow;

            if (_rem != null)
            {
                MDataSet.InvoiceDetailRow _newRow = (this.invoiceDetailBindingSource.AddNew() as DataRowView).Row as MDataSet.InvoiceDetailRow;

                InvoiceDetailAdd _invoceDetailAdd = new InvoiceDetailAdd(_newRow, _rem, _mainForm);

                FormDialog formDialog = new FormDialog();
                formDialog.Text         = "Добавить строку";
                formDialog.AcceptButton = null;

                formDialog.panel.Controls.Add(_invoceDetailAdd);

                if (DialogResult.OK == formDialog.ShowDialog(this))
                {
                    this.invoiceDetailBindingSource.EndEdit();

                    this.SaleInvoiceDetail(_newRow);
                }
                else
                {
                    this.invoiceDetailBindingSource.CancelEdit();
                    this.mDataSet.ReceiptRemains.RejectChanges();
                }
            }
        }
Beispiel #5
0
        private void btDelete_Click(object sender, EventArgs e)
        {
            try
            {
                MDataSet.InvoiceDetailRow _detRow = this.gridViewInvDet.GetDataRow(this.gridViewInvDet.FocusedRowHandle) as MDataSet.InvoiceDetailRow;

                if (_detRow != null)
                {
                    MDataSet.RemainsRow rem = _detRow.RemainsRow;

                    this._mainForm.SaveToBase(_invmasterRow);

                    this.invoiceDetailBindingSource.RemoveCurrent();

                    _mainForm.invoiceDetailTableAdapter.Update(_detRow);

                    _mainForm.RefreshData(_invmasterRow);

                    this._mainForm.RefreshData(rem);
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
                MainForm.Log("btDelete_Click " + err.Message);
            }
        }
Beispiel #6
0
        private void onInvoiceDetailDBCError(DBConcurrencyException dbcx)
        {
            MDataSet.InvoiceDetailRow _invoiceDetailRow = dbcx.Row as MDataSet.InvoiceDetailRow;


            MDataSet.InvoiceDetailDataTable _invoiceDetailDataTable = new MDataSet.InvoiceDetailDataTable();

            this.invoiceDetailTableAdapter.FillById(_invoiceDetailDataTable, (dbcx.Row as MDataSet.InvoiceDetailRow).ID);

            MDataSet.InvoiceDetailRow rowInDB = (_invoiceDetailDataTable.Rows[0] as MDataSet.InvoiceDetailRow);

            /*Сравнить изменения*/

            if ((Convert.ToDecimal(_invoiceDetailRow["Quantity", DataRowVersion.Original]) != rowInDB.Quantity) |
                (Convert.ToDecimal(_invoiceDetailRow["PriceRetailNDS", DataRowVersion.Original]) != rowInDB.PriceRetailNDS))
            {
                /*** Отменить **/
                string strInDB = "Запись была изменена пользователем: \n";

                string strMessage;

                strInDB += rowInDB.AuthorLastModif.ToString() + "\n";

                strMessage = strInDB + "\n";
                MessageBox.Show(strMessage + "Изменения отменены ", "Ошибка совмесного доступа",
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                this.mDataSet.InvoiceDetail.Merge(_invoiceDetailDataTable);
            }
            else
            {
                _invoiceDetailRow.ClearErrors();
                this.mDataSet.InvoiceDetail.Merge(_invoiceDetailDataTable, true);
            }
        }
        private void btProductReport_Click(object sender, EventArgs e)
        {
            MDataSet.InvoiceDetailRow detRow = this.gridViewInvDetAll.GetDataRow(this.gridViewInvDetAll.FocusedRowHandle) as MDataSet.InvoiceDetailRow;
            if (detRow == null)
            {
                return;
            }

            (this.ParentForm as MainForm).ProductReport(detRow.ProductRef);
        }
Beispiel #8
0
        private void gridControl1_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                int focused = this.gridViewInvRem.FocusedRowHandle;

                MDataSet.RemainsRow _rem = this.gridViewInvRem.GetDataRow(this.gridViewInvRem.FocusedRowHandle) as MDataSet.RemainsRow;

                _mainForm.RefreshData(_rem);

                if (_rem != null)
                {
                    MDataSet.InvoiceDetailRow _newRow = (this.invoiceDetailBindingSource.AddNew() as DataRowView).Row as MDataSet.InvoiceDetailRow;

                    InvoiceDetailAdd _invoceDetailAdd = new InvoiceDetailAdd(_newRow, _rem, _mainForm);

                    FormDialog formDialog = new FormDialog();
                    formDialog.Text = "Добавить строку";
                    formDialog.panel.Controls.Add(_invoceDetailAdd);

                    if (DialogResult.OK == formDialog.ShowDialog(this))
                    {
                        this.invoiceDetailBindingSource.EndEdit();

                        this.SaleInvoiceDetail(_newRow);

                        _mainForm.RefreshData(_newRow);
                    }
                    else
                    {
                        this.gridViewInvRem.BeginDataUpdate();
                        this.invoiceDetailBindingSource.CancelEdit();
                        _rem.RejectChanges();
                        this.gridViewInvRem.EndDataUpdate();

                        this.gridRem.Focus();
                        this.gridViewInvRem.FocusedRowHandle = focused;
                        return;
                    }

                    _invoceDetailAdd.Dispose();

                    GC.Collect();
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
                MainForm.Log("gridControl1_DoubleClick " + err.Message);
            }
        }
Beispiel #9
0
        private void btDeleteInСheck_Click(object sender, EventArgs e)
        {
            MDataSet.InvoiceDetailRow _detRow = this.gridViewInvDet.GetDataRow(this.gridViewInvDet.FocusedRowHandle) as MDataSet.InvoiceDetailRow;

            if (_detRow != null)
            {
                if (DialogResult.OK == MessageBox.Show(this, "Удалить " + _detRow.Quantity.ToString(), "Удаление строки ", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
                {
                    this.gridViewInvRem.BeginDataUpdate();
                    this.ReturnInvoiceDetail(_detRow);

                    this.gridViewInvRem.EndDataUpdate();
                }
            }
        }
Beispiel #10
0
        private bool SaleInvoiceDetail(MDataSet.InvoiceDetailRow row)
        {
            try
            {
                string name = row.RemainsRow.ProductRow.SmallName;

                if (name.Length == 0)
                {
                    throw new ArgumentNullException("SmallName");
                }
                bool isnds = row.RemainsRow.ProductRow.IsNDS;

                row.Article = _printer.SaleArticle(isnds, (double)row.Quantity, (double)row.PriceRetailNDS, name);

                if (row.Article > 0)
                {
                    this._mainForm.SaveToBase(_invmasterRow);
                }


                else
                {
                    MessageBox.Show("Ошибка печати строки!!!");
                    MainForm.Log("SaleInvoiceDetail" + _printer.ErrorText);

                    this.mDataSet.InvoiceDetail.RejectChanges();
                    this.isError = true;

                    this.Close();
                    return(false);
                }
            }
            catch (Exception err)
            {
                MessageBox.Show("Ошибка!!");

                MainForm.Log(err.Message);
                this.isError = true;
                this.Close();
                return(false);
            }


            return(true);
        }
Beispiel #11
0
        public bool RefreshData(MDataSet.InvoiceDetailRow sourceRow)
        {
            MDataSet.InvoiceDetailDataTable _invoiceDetailDataTable = new MDataSet.InvoiceDetailDataTable();

            try
            {
                this.invoiceDetailTableAdapter.FillNew(_invoiceDetailDataTable);
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
                Log("RefreshData (MDataSet.InvoiceDetailRow sourceRow) " + err.Message + " " + err.Source + err.InnerException.Message);

                return(false);
            }
            finally
            {
                this.mDataSet.InvoiceDetail.Merge(_invoiceDetailDataTable, true);
            }
            return(true);
        }
Beispiel #12
0
        private void btAdd_Click(object sender, EventArgs e)
        {
            /*создать новую строку, указатель на нее в  дл¤ редактировани¤*/
            MDataSet.RemainsRow _rems = this.gridViewRemainsInvDetEdt.GetDataRow(this.gridViewRemainsInvDetEdt.FocusedRowHandle) as MDataSet.RemainsRow;
            if (_rems == null)
            {
                return;
            }



            FormDialog _formDialog = new FormDialog();

            _formDialog.AcceptButton = _formDialog.btOk;
            _formDialog.Text         = "ƒобавить строку";

            MDataSet.InvoiceDetailRow sourceRow = ((this.invoiceDetailBindingSource.AddNew() as DataRowView).Row as MDataSet.InvoiceDetailRow);

            MDataSet.RemainsRow remainsRow = ((this.RemainsBindingSource.CurrencyManager.Current as DataRowView).Row as  MDataSet.RemainsRow);

            MDataSet.ProductRow _productRow = (this.productBindingSource.DataSource as MDataSet.ProductDataTable).FindByID(remainsRow.ProductRef);


            if ((sourceRow != null) & (remainsRow != null))
            {
                InvoiceDetailRowAdd _invoiceDetailRowAdd = new InvoiceDetailRowAdd(sourceRow, remainsRow, _productRow);
                _formDialog.panel.Controls.Add(_invoiceDetailRowAdd);

                if (DialogResult.OK == _formDialog.ShowDialog(this))
                {
                    remainsRow.AcceptChanges();
                    this.invoiceDetailBindingSource.EndEdit();
                }
                else
                {
                    this.invoiceDetailBindingSource.CancelEdit();
                    remainsRow.RejectChanges();
                }
            }
        }
Beispiel #13
0
        private void btDelete_Click(object sender, EventArgs e)
        {
            MDataSet.InvoiceDetailRow _detRow = this.gridViewInvDet.GetDataRow(this.gridViewInvDet.FocusedRowHandle) as MDataSet.InvoiceDetailRow;

            if (_detRow != null)
            {
                if (DialogResult.OK == MessageBox.Show(this, "Удалить " + _detRow.Quantity.ToString(), "Удаление строки ", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
                {
                    MDataSet.RemainsRow rem = _detRow.RemainsRow;

                    this._mainForm.SaveToBase(_invmasterRow);

                    this.invoiceDetailBindingSource.RemoveCurrent();

                    _mainForm.invoiceDetailTableAdapter.Update(_detRow);

                    _mainForm.RefreshData(_invmasterRow);

                    this._mainForm.RefreshData(rem);
                }
            }
        }
Beispiel #14
0
        private bool ReturnInvoiceDetail(MDataSet.InvoiceDetailRow row)
        {
            try
            {
                string name = row.RemainsRow.ProductRow.SmallName;

                bool isnds = row.RemainsRow.ProductRow.IsNDS;

                int Article = row.Article;

                bool res = _printer.ReturnArticle(Article, isnds, (double)row.Quantity, (double)row.PriceRetailNDS, name);

                if (res)
                {
                    MDataSet.RemainsRow rem = row.RemainsRow;


                    this.invoiceDetailBindingSource.RemoveCurrent();

                    this._mainForm.SaveToBase(_invmasterRow);
                    this._mainForm.RefreshData(rem);
                }
                else
                {
                    MessageBox.Show("Невозможно удалить строку!");
                }
            }
            catch
            {
                MessageBox.Show("Ошибка!!");
                return(false);
            }


            return(true);
        }
Beispiel #15
0
        private void onInvoiceDetailDBCError(DBConcurrencyException dbcx)
        {
            MDataSet.InvoiceDetailRow _invoiceDetailRow = dbcx.Row as MDataSet.InvoiceDetailRow;

            MDataSet.InvoiceDetailDataTable _invoiceDetailDataTable = new MDataSet.InvoiceDetailDataTable();
            if (_invoiceDetailRow.RowState == DataRowState.Deleted)
            {
                int _id = Convert.ToInt32(_invoiceDetailRow["ID", DataRowVersion.Original].ToString());

                this.invoiceDetailTableAdapter.FillById(_invoiceDetailDataTable, _id);
            }


            else
            {
                this.invoiceDetailTableAdapter.FillById(_invoiceDetailDataTable, (dbcx.Row as MDataSet.InvoiceDetailRow).ID);
            }


            { _invoiceDetailRow.ClearErrors();
              this.mDataSet.InvoiceDetail.Merge(_invoiceDetailDataTable, true); }

            MainForm.Log(" onInvoiceDetailDBCError " + "успешно");
        }
Beispiel #16
0
        public bool SaveToBase(MDataSet.InvoiceDetailRow sourceRow)
        {
            if (sourceRow.HasErrors)
            {
                return(false);
            }
            if ((sourceRow.RowState == DataRowState.Detached) | (sourceRow.RowState == DataRowState.Unchanged))
            {
                return(true);
            }
            if (_changesInvoiceDetail.Count == 0)
            {
                return(true);
            }

            MDataSet.InvoiceMasterRow _invoiceMasterRow;
            _invoiceMasterRow = sourceRow.InvoiceMasterRow;
            /*если  после Update полей на сервере*/

            if ((sourceRow.RowState == DataRowState.Modified) & sourceRow.HasVersion(DataRowVersion.Current))
            {
                if (Convert.ToInt32(sourceRow["ID", DataRowVersion.Original]) != Convert.ToInt32(sourceRow["ID", DataRowVersion.Current]))
                {
                    return(true);
                }
            }
            //*Если удаление *//
            if (sourceRow.RowState == DataRowState.Deleted)
            {
                _invoiceMasterRow = this.mDataSet.InvoiceMaster.FindByID(Convert.ToInt32((sourceRow as MDataSet.InvoiceDetailRow)["InvoiceMasterRef", DataRowVersion.Original]));
            }

            try
            {
                int res = this.invoiceDetailTableAdapter.Update(sourceRow);
                this.LabelUser.Text = "Успешно обновлена строка";
            }

            catch (DBConcurrencyException dbcx)
            {
                this.onInvoiceDetailDBCError(dbcx);
                this.LabelUser.Text = "Ошибка совмесного доступа";
                return(false);
            }

            catch (SqlException sqlerr)
            {
                if (sqlerr.Class < 17)
                {
                    OnInvoiceDetailSQLError(sqlerr, sourceRow);
                }
                else
                {
                    caughtGlobalError(sqlerr);
                }

                Log("SaveToBase(MDataSet.InvoiceDetailRow sourceRow) ERROR" + sqlerr.Message + " " + sqlerr.Source + sqlerr.InnerException.Message);

                return(false);
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);

                Log("SaveToBase(MDataSet.InvoiceDetailRow sourceRow) ERROR" + err.Message + " " + err.Source + err.InnerException.Message);


                return(false);
            }
            finally
            {
                this.RemainsTableAdapter.Fill(this.mDataSet.Remains);
                RefreshData(_invoiceMasterRow);
            }

            return(true);
        }
Beispiel #17
0
        public InvoiceDetailAdd(MDataSet.InvoiceDetailRow source, MDataSet.RemainsRow remainsRow, MainForm mainForm)
        {
            InitializeComponent();
            _row        = source;
            _mainForm   = mainForm;
            _remainsRow = remainsRow;

            _QuantityRemains = remainsRow.QuantityRemains;

            _prodRow = remainsRow.ProductRow;

            //       _mainForm.RefreshData(_remainsRow);

            this.productBindingSource.DataSource = _prodRow;

            this.productBindingSource.ResetBindings(true);

            _row.LocalReceiptDetailRef = _remainsRow.ReceiptDetailRef;


            if (QuantityRemains >= 1)
            {
                _row.Quantity = 1;
            }
            else
            {
                _row.Quantity = QuantityRemains;
            }



            if (_prodRow.MinDivisor == 1)
            {
                this.QuantityEdit.Properties.DisplayFormat.FormatString = "####0";
                this.QuantityEdit.Properties.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                this.QuantityEdit.Properties.EditFormat.FormatString    = "###0";
                this.QuantityEdit.Properties.EditFormat.FormatType      = DevExpress.Utils.FormatType.Numeric;
                this.QuantityEdit.Properties.Mask.EditMask = "####0";
                this.QuantityEdit.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
                this.lRemFull.Text = "";
                // написать кол-во в блистерах или целых упаковках

                //количество целых упаковок :

                if (_prodRow.OldKol != 1)
                {
                    int rem = Convert.ToInt32(_remainsRow.QuantityRemains + _row.Quantity);

                    int q = (int)rem / _prodRow.OldKol;

                    if (q != 0)
                    {
                        this.lRemFull.Text = q.ToString() + " целых уп.";
                    }
                    //количество едениц

                    int c = (int)(rem - q * _prodRow.OldKol);

                    if (c != 0)
                    {
                        if (this.lRemFull.Text.Length == 0)
                        {
                            this.lRemFull.Text = c.ToString() + _prodRow.UnitName;
                        }
                        else
                        {
                            this.lRemFull.Text += "+ " + c.ToString() + _prodRow.UnitName;
                        }
                    }
                    this.labelRem.Visible = false;
                    this.lRemFull.Visible = true;
                }
            }
            else
            {
                this.lComment.Text    = "{в упаковке " + _prodRow.MinDivisor.ToString() + " шт}";
                this.lComment.Visible = true;
            }



            if ((_prodRow.StorageConditionRef > 0))
            {
                this.additionPanel.Visible = true;

                this.labelPlace.Text = this._prodRow.StorageConditionName;
            }


            _row.PriceRetailNDS = _remainsRow.PricePurchase;

            this.remainsBindingSource.DataSource = _remainsRow;

            this.invoiceDetailBindingSource.DataSource = source;

            this.labelRem.DataBindings.Clear();
            this.labelRem.DataBindings.Add(new Binding("Text", this, "QuantityRemains"));

            this.labelSum.Text = this.SumRow.ToString();
        }
Beispiel #18
0
        public InvoiceDetailRowAdd(MDataSet.InvoiceDetailRow source, MDataSet.RemainsRow remain, MDataSet.ProductRow productRow)
        {
            InitializeComponent();

            _productRow = productRow;

            _remainsRow = remain;
            _row        = source;

            if (_productRow.MinDivisor == 1)
            {
                this.quantityEdit.Properties.DisplayFormat.FormatString = "####";
                this.quantityEdit.Properties.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                this.quantityEdit.Properties.EditFormat.FormatString    = "###";
                this.quantityEdit.Properties.EditFormat.FormatType      = DevExpress.Utils.FormatType.Numeric;
                this.quantityEdit.Properties.Mask.EditMask = "####";
                this.quantityEdit.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
            }

            this.lnumOst.Text = _remainsRow.QuantityRemains.ToString();

            //количество целых упаковок :

            if (_productRow.OldKol != 1)
            {
                int rem = Convert.ToInt32(_remainsRow.QuantityRemains + _row.Quantity);

                int q = (int)rem / _productRow.OldKol;

                if (q != 0)
                {
                    this.labelOst.Text = q.ToString() + " целых уп.";
                }
                //количество едениц

                int c = (int)(rem - q * _productRow.OldKol);

                if (c != 0)
                {
                    if (this.labelOst.Text.Length == 0)
                    {
                        this.labelOst.Text = c.ToString() + _productRow.UnitName;
                    }
                    else
                    {
                        this.labelOst.Text += "+ " + c.ToString() + _productRow.UnitName;
                    }
                }

                this.labelOst.Visible = true;
            }

            else
            {
                this.lComment.Text    = "{в упаковке " + _productRow.MinDivisor.ToString() + " шт}";
                this.lComment.Visible = true;
            }



            this.mDataSet = source.Table.DataSet as MDataSet;
            this.invoiceDetailBindingSource.DataSource = source;

            this.productBindingSource.DataSource = _productRow;
            this.productBindingSource.ResetBindings(false);

            if (source.LocalReceiptDetailRef == 0)
            {
                source.LocalReceiptDetailRef = remain.ReceiptDetailRef;
            }

            this.remainsBindingSource.DataSource = remain;



            _quantytiStock = remain.QuantityRemains;


            this.invoiceDetailBindingSource.ResetBindings(true);

            this.errorProvider1.DataSource = this.invoiceDetailBindingSource;
            this.errorProvider1.UpdateBinding();

            source.EndEdit();
        }
Beispiel #19
0
        public InvoiceDetailRowAdd(MDataSet.InvoiceDetailRow source, MDataSet.RemainsRow remain, MDataSet.ProductRow productRow)
        {
            InitializeComponent();

            _productRow = productRow;

            _remainsRow = remain;
            _row = source;

            if (_productRow.MinDivisor == 1)
            {


                this.quantityEdit.Properties.DisplayFormat.FormatString = "####";
                this.quantityEdit.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
                this.quantityEdit.Properties.EditFormat.FormatString = "###";
                this.quantityEdit.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
                this.quantityEdit.Properties.Mask.EditMask = "####";
                this.quantityEdit.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;


            }

            this.lnumOst.Text = _remainsRow.QuantityRemains.ToString();

                 //количество целых упаковок : 

            if (_productRow.OldKol != 1)
                {

                    int rem = Convert.ToInt32(_remainsRow.QuantityRemains + _row.Quantity);

                    int q = (int)rem / _productRow.OldKol;
               
                    if (q != 0)
                    {

                        this.labelOst.Text = q.ToString() + " целых уп.";

                    }
                    //количество едениц

                    int c = (int)(rem - q * _productRow.OldKol);

                    if (c != 0)
                    {

                        if (this.labelOst.Text.Length == 0)
                        {
                            this.labelOst.Text = c.ToString() + _productRow.UnitName;
                        }
                        else
                        {
                            this.labelOst.Text += "+ " + c.ToString() + _productRow.UnitName;
                        }
                    }
                  
                   this.labelOst.Visible = true;
                }
            
            else
            {
                this.lComment.Text = "{в упаковке " + _productRow.MinDivisor.ToString() + " шт}";
                this.lComment.Visible = true;

            }

               

           
           
            this.mDataSet = source.Table.DataSet as MDataSet;
            this.invoiceDetailBindingSource.DataSource = source;
        
           this.productBindingSource.DataSource = _productRow;
           this.productBindingSource.ResetBindings(false); 
          
            if (source.LocalReceiptDetailRef==0 )  
               source.LocalReceiptDetailRef = remain.ReceiptDetailRef;

           this.remainsBindingSource.DataSource = remain;

           

            _quantytiStock = remain.QuantityRemains;
            
          
            this.invoiceDetailBindingSource.ResetBindings(true);

            this.errorProvider1.DataSource = this.invoiceDetailBindingSource;
            this.errorProvider1.UpdateBinding();
           
            source.EndEdit();
        }
Beispiel #20
0
        public InvoiceDetailAdd(MDataSet.InvoiceDetailRow source, MDataSet.RemainsRow remainsRow, MainForm mainForm)
        {
            InitializeComponent();
            _row = source;
            _mainForm = mainForm;
            _remainsRow = remainsRow;

            _QuantityRemains = remainsRow.QuantityRemains;

            _prodRow = remainsRow.ProductRow;

     //       _mainForm.RefreshData(_remainsRow);

            this.productBindingSource.DataSource = _prodRow;
            
            this.productBindingSource.ResetBindings(true);

            _row.LocalReceiptDetailRef = _remainsRow.ReceiptDetailRef;

            
            if (QuantityRemains >= 1)
                _row.Quantity = 1;
            else
                _row.Quantity = QuantityRemains;



            if (_prodRow.MinDivisor == 1)
            {
                this.QuantityEdit.Properties.DisplayFormat.FormatString = "####0";
                this.QuantityEdit.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
                this.QuantityEdit.Properties.EditFormat.FormatString = "###0";
                this.QuantityEdit.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
                this.QuantityEdit.Properties.Mask.EditMask = "####0";
                this.QuantityEdit.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
                this.lRemFull.Text = "";
                // написать кол-во в блистерах или целых упаковках

                //количество целых упаковок : 

               if (_prodRow.OldKol != 1)
                {

                    int rem = Convert.ToInt32(_remainsRow.QuantityRemains + _row.Quantity);

                   int q =(int) rem / _prodRow.OldKol;
               
                    if (q != 0)
                    {

                        this.lRemFull.Text = q.ToString() + " целых уп.";

                    }
                    //количество едениц

                    int c = (int)(rem - q * _prodRow.OldKol);

                    if (c != 0)
                    {

                        if (this.lRemFull.Text.Length == 0)
                        {
                            this.lRemFull.Text = c.ToString() + _prodRow.UnitName;
                        }
                        else
                        {
                            this.lRemFull.Text += "+ " + c.ToString() + _prodRow.UnitName;
                        }
                    }
                   this.labelRem.Visible = false;
                   this.lRemFull.Visible = true;
                }
            }
            else
            {
                this.lComment.Text = "{в упаковке " + _prodRow.MinDivisor.ToString() +" шт}";
                this.lComment.Visible = true;
            }



            if ((_prodRow.StorageConditionRef > 0))
            {

                this.additionPanel.Visible = true;

                this.labelPlace.Text = this._prodRow.StorageConditionName;
             
            }


            _row.PriceRetailNDS = _remainsRow.PricePurchase;

            this.remainsBindingSource.DataSource = _remainsRow;

            this.invoiceDetailBindingSource.DataSource = source;
           
            this.labelRem.DataBindings.Clear();
            this.labelRem.DataBindings.Add(new Binding("Text",this,"QuantityRemains"));

            this.labelSum.Text = this.SumRow.ToString();
        }