Esempio n. 1
0
        private void simpleButtonAppend_Click(object sender, EventArgs e)
        {
            ChooseProductForm f = new ChooseProductForm();

            if (f.ShowDialog(this) == DialogResult.OK)
            {
                if (this.invoice.Details.Count > 0 && string.IsNullOrEmpty(this.invoice.Details[0].ProductId))
                {
                    this.invoice.Details.RemoveAt(0);
                }
                Model.InvoicePODetail detail = null;

                if (ChooseProductForm.ProductList != null || ChooseProductForm.ProductList.Count > 0)
                {
                    foreach (Model.Product product in ChooseProductForm.ProductList)
                    {
                        detail                           = new Book.Model.InvoicePODetail();
                        detail.Invoice                   = this.invoice;
                        detail.InvoicePODetailId         = Guid.NewGuid().ToString();
                        detail.Product                   = product;
                        detail.ProductId                 = product.ProductId;
                        detail.InvoicePODetailJCQuantity = 0;
                        detail.InvoicePODetailWHQuantity = 0;
                        detail.InvoicePODetailYHQuantity = 0;
                        detail.InvoicePODetailNote       = "";
                        if (detail.Product.DepotUnit != null)
                        {
                            detail.InvoiceProductUnit = detail.Product.DepotUnit.ToString();
                        }
                        this.invoice.Details.Add(detail);
                    }
                }
                if (ChooseProductForm.ProductList == null || ChooseProductForm.ProductList.Count == 0)
                {
                    detail = new Book.Model.InvoicePODetail();
                    detail.InvoicePODetailId         = Guid.NewGuid().ToString();
                    detail.Product                   = f.SelectedItem as Model.Product;;
                    detail.ProductId                 = detail.Product.ProductId;
                    detail.InvoicePODetailJCQuantity = 0;
                    detail.InvoicePODetailWHQuantity = 0;
                    detail.InvoicePODetailYHQuantity = 0;
                    detail.InvoicePODetailNote       = "";
                    if (detail.Product.DepotUnit != null)
                    {
                        detail.InvoiceProductUnit = detail.Product.DepotUnit.ToString();
                    }
                    this.invoice.Details.Add(detail);
                }
                this.bindingSource1.Position = this.bindingSource1.IndexOf(detail);
                this.gridControl1.RefreshDataSource();
            }
            f.Dispose();
            GC.Collect();
        }
Esempio n. 2
0
        protected override void AddNew()
        {
            this.invoice             = new Model.InvoicePO();
            this.invoice.InvoiceDate = DateTime.Now;
            this.invoice.Details     = new List <Model.InvoicePODetail>();
            this.invoice.InvoiceId   = this.invoiceManager.GetNewId();

            Model.InvoicePODetail detail = new Model.InvoicePODetail();
            detail.InvoicePODetailId         = Guid.NewGuid().ToString();
            detail.InvoicePIDetailNote       = "";
            detail.InvoicePIDetailQuantity   = 0;
            detail.InvoicePODetailNote       = "";
            detail.InvoicePODetailJCQuantity = 0;
            detail.InvoiceProductUnit        = "";
            detail.InvoicePODetailWHQuantity = 0;
            detail.InvoicePODetailYHQuantity = 0;
            detail.Product = new Book.Model.Product();
            this.invoice.Details.Add(detail);
            this.bindingSource1.Position = this.bindingSource1.IndexOf(detail);
        }
Esempio n. 3
0
 private void simpleButtonRemove_Click(object sender, EventArgs e)
 {
     if (this.bindingSource1.Current != null)
     {
         this.invoice.Details.Remove(this.bindingSource1.Current as Book.Model.InvoicePODetail);
         if (this.invoice.Details.Count == 0)
         {
             Model.InvoicePODetail detail = new Model.InvoicePODetail();
             detail.InvoicePODetailId         = Guid.NewGuid().ToString();
             detail.InvoicePIDetailNote       = "";
             detail.InvoicePIDetailQuantity   = 0;
             detail.InvoicePODetailNote       = "";
             detail.InvoicePODetailJCQuantity = 0;
             detail.InvoiceProductUnit        = "";
             detail.InvoicePODetailWHQuantity = 0;
             detail.InvoicePODetailYHQuantity = 0;
             detail.Product = new Book.Model.Product();
             this.invoice.Details.Add(detail);
             this.bindingSource1.Position = this.bindingSource1.IndexOf(detail);
         }
         this.gridControl1.RefreshDataSource();
     }
 }
Esempio n. 4
0
        private void gridView1_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            Model.InvoicePODetail detail = this.gridView1.GetRow(e.RowHandle) as Model.InvoicePODetail;
            if (e.Column == this.colProductId)
            {
                if (detail != null)
                {
                    Model.Product p = productManager.Get(e.Value.ToString());
                    detail.InvoicePODetailId         = Guid.NewGuid().ToString();
                    detail.InvoicePIDetailNote       = "";
                    detail.InvoicePIDetailQuantity   = 0;
                    detail.InvoicePODetailNote       = "";
                    detail.InvoicePODetailJCQuantity = 0;
                    detail.InvoicePODetailWHQuantity = 0;
                    detail.InvoicePODetailYHQuantity = 0;
                    detail.Product               = p;
                    detail.ProductId             = p.ProductId;
                    detail.InvoiceProductUnit    = detail.Product.ProduceUnit.CnName;;
                    this.bindingSource1.Position = this.bindingSource1.IndexOf(detail);
                }
                this.gridControl1.RefreshDataSource();
            }
            if (e.Column == this.gridColumn1)
            {
                if (detail != null)
                {
                    Model.DepotPosition position = new BL.DepotPositionManager().Get(e.Value.ToString());
                    detail.DepotPosition = position;

                    if (position != null)
                    {
                        detail.DepotPositionId = position.DepotPositionId;
                    }
                }
                this.gridControl1.RefreshDataSource();
            }
        }
Esempio n. 5
0
        private void _Insert(Book.Model.InvoicePI invoice)
        {
            //往来单位
            if (invoice.Department != null)
            {
                invoice.DepartmentId = invoice.Department.DepartmentId;
            }
            //经手人
            if (invoice.Employee0 != null)
            {
                invoice.Employee0Id = invoice.Employee0.EmployeeId;
            }
            //录单人
            if (invoice.Employee1 != null)
            {
                invoice.Employee1Id = invoice.Employee1.EmployeeId;
            }
            if ((Helper.InvoiceStatus)invoice.InvoiceStatus.Value == Helper.InvoiceStatus.Normal)
            {
                //过账人
                if (invoice.Employee2 != null)
                {
                    invoice.Employee2Id = invoice.Employee2.EmployeeId;
                }
                //过账时间
                invoice.InvoiceGZTime = DateTime.Now;
            }
            //插入表单
            accessor.Insert(invoice);

            //插入明细
            foreach (Model.InvoicePIDetail detail in invoice.Details)
            {
                Model.InvoicePODetail odetail = invoicePODetailAccessor.Get(detail.InvoicePODetailId);

                if (detail.InvoicePIDetailQuantity > 0)
                {
                    if (detail.InvoicePIDetailQuantity <= odetail.InvoicePODetailWHQuantity)
                    {
                        detail.InvoiceId = invoice.InvoiceId;
                        invoicePIDetailAccessor.Insert(detail);

                        Model.Product p = detail.Product;
                        p.StocksQuantity += detail.InvoicePIDetailQuantity;
                        productAccessor.Update(detail.Product);

                        if (odetail != null)
                        {
                            odetail.InvoicePODetailWHQuantity -= detail.InvoicePIDetailQuantity;
                            odetail.InvoicePODetailYHQuantity += detail.InvoicePIDetailQuantity;
                            invoicePODetailAccessor.Update(odetail);
                        }

                        Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(p.ProductId, detail.PoDepotPositionId);
                        if (stock == null)
                        {
                            stock                 = new Book.Model.Stock();
                            stock.StockId         = Guid.NewGuid().ToString();
                            stock.ProductId       = p.ProductId;
                            stock.DepotPositionId = detail.PoDepotPositionId;
                            stock.StockQuantity1  = detail.InvoicePIDetailQuantity;
                            stock.StockCurrentJR  = stock.StockCurrentJR == null ? detail.InvoicePIDetailQuantity : stock.StockCurrentJR + detail.InvoicePIDetailQuantity;
                            stock.DepotId         = invoice.PoDepotId;
                            stock.ProduceUnit     = p.ProduceUnit.CnName;
                            stockAccessor.Insert(stock);
                        }
                        else
                        {
                            stockAccessor.IncrementJR(new DepotPositionManager().Get(detail.PoDepotPositionId), p, detail.InvoicePIDetailQuantity.Value);
                        }
                    }
                    else
                    {
                        throw new Helper.InvalidValueException("HaiRuTaiDuo");
                    }
                }
            }
        }
Esempio n. 6
0
        private void _Update(Model.InvoicePI invoice)
        {
            invoice.UpdateTime   = DateTime.Now;;
            invoice.DepartmentId = invoice.Department.DepartmentId;
            invoice.Employee0Id  = invoice.Employee0.EmployeeId;

            Model.InvoicePI invoiceOriginal = this.Get(invoice.InvoiceId);

            Helper.InvoiceStatus invoiceStatus = (Helper.InvoiceStatus)invoice.InvoiceStatus.Value;

            switch ((Helper.InvoiceStatus)invoiceOriginal.InvoiceStatus)
            {
            case Helper.InvoiceStatus.Draft:
                switch (invoiceStatus)
                {
                case Helper.InvoiceStatus.Draft:

                    accessor.Update(invoice);

                    invoicePIDetailAccessor.Delete(invoice);

                    foreach (Model.InvoicePIDetail detail in invoice.Details)
                    {
                        detail.InvoiceId = invoice.InvoiceId;
                        invoicePIDetailAccessor.Insert(detail);
                    }
                    break;

                case Helper.InvoiceStatus.Normal:
                    accessor.Delete(invoiceOriginal.InvoiceId);
                    invoice.InsertTime = invoiceOriginal.InsertTime;
                    invoice.UpdateTime = DateTime.Now;
                    _Insert(invoice);
                    break;

                case Helper.InvoiceStatus.Null:
                    throw new InvalidOperationException();
                }
                break;

            case Helper.InvoiceStatus.Normal:
                switch (invoiceStatus)
                {
                case Helper.InvoiceStatus.Draft:
                    throw new InvalidOperationException();

                case Helper.InvoiceStatus.Normal:
                    invoiceOriginal.InvoiceStatus = (int)Helper.InvoiceStatus.Null;
                    _TurnNull(invoiceOriginal);
                    accessor.Delete(invoiceOriginal.InvoiceId);
                    invoice.InsertTime = invoiceOriginal.InsertTime;
                    invoice.UpdateTime = DateTime.Now;
                    _Insert(invoice);
                    break;

                case Helper.InvoiceStatus.Null:
                    foreach (Model.InvoicePIDetail detail in invoice.Details)
                    {
                        Model.Product p = detail.Product;
                        productAccessor.Update(detail.Product);

                        stockAccessor.DecrementJR(new DepotPositionManager().Get(detail.PoDepotPositionId), p, detail.InvoicePIDetailQuantity.Value);

                        Model.InvoicePODetail temp = invoicePODetailAccessor.Get(detail.InvoicePODetailId);
                        if (temp != null)
                        {
                            detail.InvoicePODetail.InvoicePODetailWHQuantity += detail.InvoicePIDetailQuantity;
                            detail.InvoicePODetail.InvoicePODetailYHQuantity -= detail.InvoicePIDetailQuantity;
                            invoicePODetailAccessor.Update(detail.InvoicePODetail);
                        }
                    }
                    break;
                }
                break;

            case Helper.InvoiceStatus.Null:
                throw new InvalidOperationException();
            }
        }
 public void Update(Model.InvoicePODetail e)
 {
     this.Update <Model.InvoicePODetail>(e);
 }
 public void Insert(Model.InvoicePODetail e)
 {
     this.Insert <Model.InvoicePODetail>(e);
 }