示例#1
0
 private void gridView1_KeyDown(object sender, KeyEventArgs e)
 {
     if (this.action == "insert" || this.action == "update")
     {
         if (this.CanAdd(this.invoice.Details))
         {
             if (e.KeyData == Keys.Enter)
             {
                 Model.InvoiceJRDetail detail = new Model.InvoiceJRDetail();
                 detail.InvoiceJRDetailId         = Guid.NewGuid().ToString();
                 detail.InvoiceHCDetailNote       = "";
                 detail.InvoiceHCDetailQuantity   = 0;
                 detail.InvoiceJRDetailNote       = "";
                 detail.InvoiceJRDetailQuantity   = 0;
                 detail.InvoiceProductUnit        = "";
                 detail.InvoiceWeiHuaiChuQuantity = 0;
                 detail.InvoiceYiHuaiChuQuantity  = 0;
                 detail.Product = new Book.Model.Product();
                 this.invoice.Details.Add(detail);
                 this.bindingSource1.Position = this.bindingSource1.IndexOf(detail);
             }
         }
         if (e.KeyData == Keys.Delete)
         {
             this.simpleButtonRemove.PerformClick();
         }
         this.gridControl1.RefreshDataSource();
     }
 }
示例#2
0
 /// <summary>
 /// Update a InvoiceJRDetail.
 /// </summary>
 public void Update(Model.InvoiceJRDetail invoiceJRDetail)
 {
     //
     // todo: add other logic here.
     //
     accessor.Update(invoiceJRDetail);
 }
示例#3
0
 /// <summary>
 /// Insert a InvoiceJRDetail.
 /// </summary>
 public void Insert(Model.InvoiceJRDetail invoiceJRDetail)
 {
     //
     // todo:add other logic here
     //
     accessor.Insert(invoiceJRDetail);
 }
示例#4
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.InvoiceJRDetail detail = null;

                if (ChooseProductForm.ProductList != null || ChooseProductForm.ProductList.Count > 0)
                {
                    foreach (Model.Product product in ChooseProductForm.ProductList)
                    {
                        detail         = new Book.Model.InvoiceJRDetail();
                        detail.Invoice = this.invoice;

                        detail.InvoiceJRDetailId         = Guid.NewGuid().ToString();
                        detail.Product                   = product;
                        detail.ProductId                 = product.ProductId;
                        detail.InvoiceJRDetailQuantity   = 0;
                        detail.InvoiceWeiHuaiChuQuantity = 0;
                        detail.InvoiceYiHuaiChuQuantity  = 0;
                        detail.InvoiceJRDetailNote       = "";
                        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.InvoiceJRDetail();
                    detail.InvoiceJRDetailId = Guid.NewGuid().ToString();
                    detail.Invoice           = this.invoice;
                    detail.Product           = f.SelectedItem as Model.Product;
                    detail.ProductId         = (f.SelectedItem as Model.Product).ProductId;
                    //detail.InvoiceProductUnit = detail.Product.ProductBaseUnit;
                    detail.InvoiceJRDetailQuantity   = 0;
                    detail.InvoiceWeiHuaiChuQuantity = 0;
                    detail.InvoiceYiHuaiChuQuantity  = 0;
                    detail.InvoiceJRDetailNote       = "";
                    this.invoice.Details.Add(detail);
                }
                this.gridControl1.RefreshDataSource();
                this.bindingSource1.Position = this.bindingSource1.IndexOf(detail);
            }
        }
示例#5
0
        protected override void AddNew()
        {
            this.invoice             = new Model.InvoiceJR();
            this.invoice.InvoiceDate = DateTime.Now;
            this.invoice.Details     = new List <Model.InvoiceJRDetail>();
            this.invoice.InvoiceId   = this.invoiceManager.GetNewId();

            Model.InvoiceJRDetail detail = new Model.InvoiceJRDetail();
            detail.InvoiceJRDetailId         = Guid.NewGuid().ToString();
            detail.InvoiceHCDetailNote       = "";
            detail.InvoiceHCDetailQuantity   = 0;
            detail.InvoiceJRDetailNote       = "";
            detail.InvoiceJRDetailQuantity   = 0;
            detail.InvoiceProductUnit        = "";
            detail.InvoiceWeiHuaiChuQuantity = 0;
            detail.InvoiceYiHuaiChuQuantity  = 0;
            detail.Product = new Book.Model.Product();
            this.invoice.Details.Add(detail);
            this.bindingSource1.Position = this.bindingSource1.IndexOf(detail);
        }
示例#6
0
 private void simpleButtonRemove_Click(object sender, EventArgs e)
 {
     if (this.bindingSource1.Current != null)
     {
         this.invoice.Details.Remove(this.bindingSource1.Current as Book.Model.InvoiceJRDetail);
         if (this.invoice.Details.Count == 0)
         {
             Model.InvoiceJRDetail detail = new Model.InvoiceJRDetail();
             detail.InvoiceJRDetailId         = Guid.NewGuid().ToString();
             detail.InvoiceHCDetailNote       = "";
             detail.InvoiceHCDetailQuantity   = 0;
             detail.InvoiceJRDetailNote       = "";
             detail.InvoiceJRDetailQuantity   = 0;
             detail.InvoiceProductUnit        = "";
             detail.InvoiceWeiHuaiChuQuantity = 0;
             detail.InvoiceYiHuaiChuQuantity  = 0;
             detail.Product = new Book.Model.Product();
             this.invoice.Details.Add(detail);
             this.bindingSource1.Position = this.bindingSource1.IndexOf(detail);
         }
         this.gridControl1.RefreshDataSource();
     }
 }
示例#7
0
 private void gridView1_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
 {
     if (e.Column == this.colProductId)
     {
         Model.InvoiceJRDetail detail = this.gridView1.GetRow(e.RowHandle) as Model.InvoiceJRDetail;
         if (detail != null)
         {
             Model.Product p = productManager.Get(e.Value.ToString());
             detail.InvoiceJRDetailId         = Guid.NewGuid().ToString();
             detail.InvoiceHCDetailNote       = "";
             detail.InvoiceHCDetailQuantity   = 0;
             detail.InvoiceJRDetailNote       = "";
             detail.InvoiceJRDetailQuantity   = 0;
             detail.InvoiceWeiHuaiChuQuantity = 0;
             detail.InvoiceYiHuaiChuQuantity  = 0;
             detail.Product            = p;
             detail.ProductId          = p.ProductId;
             detail.InvoiceProductUnit = p.ProduceUnit.CnName;
             //detail.InvoiceProductUnit = detail.Product.ProductBaseUnit;
             this.bindingSource1.Position = this.bindingSource1.IndexOf(detail);
         }
         this.gridControl1.RefreshDataSource();
     }
 }
示例#8
0
        private void _Update(Model.InvoiceJR invoice)
        {
            invoice.UpdateTime = DateTime.Now;;
            //if (invoice.Customer != null)
            //    invoice.CustomerId = invoice.Customer.CustomerId;
            //invoice.DepotId = invoice.Depot.DepotId;
            invoice.Employee0Id = invoice.Employee0.EmployeeId;

            Model.InvoiceJR 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);

                    invoiceJRDetailAccessor.Delete(invoice);

                    foreach (Model.InvoiceJRDetail detail in invoice.Details)
                    {
                        if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId))
                        {
                            continue;
                        }
                        detail.InvoiceId = invoice.InvoiceId;
                        detail.InvoiceWeiHuaiChuQuantity = detail.InvoiceJRDetailQuantity;
                        detail.InvoiceYiHuaiChuQuantity  = 0;
                        invoiceJRDetailAccessor.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);

                    invoiceJRDetailAccessor.Delete(invoice);

                    foreach (Model.InvoiceJRDetail detail in invoice.Details)
                    {
                        if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId))
                        {
                            continue;
                        }
                        Model.Product p = detail.Product;
                        //if (detail.InvoiceProductUnit == p.ProductOuterPackagingUnit)
                        //{
                        //    quantity = detail.InvoiceJRDetailQuantity * p.ProductBaseUnitRelationship * p.ProductInnerUnitRelationship;
                        //}
                        //else if (detail.InvoiceProductUnit == detail.Product.ProductInnerPackagingUnit)
                        //{
                        //    quantity = detail.InvoiceJRDetailQuantity * p.ProductBaseUnitRelationship;
                        //}
                        //else
                        //{
                        //    quantity = detail.InvoiceJRDetailQuantity;
                        //}
                        //p.ProductCurrentJRQuantity += quantity;
                        if (detail.InvoiceJRDetailQuantity.Value == 0)
                        {
                            throw new Helper.InvalidValueException(Model.InvoiceJRDetail.PRO_InvoiceJRDetailQuantity);
                        }
                        byte[] pic = new byte[] { };
                        //if (p.ProductImage == null)
                        //    p.ProductImage = pic;
                        //if (p.ProductImage1 == null)
                        //    p.ProductImage1 = pic;
                        //if (p.ProductImage2 == null)
                        //    p.ProductImage2 = pic;
                        //if (p.ProductImage3 == null)
                        //    p.ProductImage3 = pic;
                        p.StocksQuantity += detail.InvoiceJRDetailQuantity.Value;
                        productAccessor.Update(p);

                        detail.InvoiceWeiHuaiChuQuantity = detail.InvoiceJRDetailQuantity - detail.InvoiceYiHuaiChuQuantity;

                        Model.InvoiceJRDetail temp = invoiceJRDetailAccessor.Get(detail.InvoiceJRDetailId);
                        if (temp != null)
                        {
                            temp.InvoiceId = invoice.InvoiceId;
                            temp.InvoiceHCDetailQuantity = detail.InvoiceHCDetailQuantity;
                            invoiceJRDetailAccessor.Update(temp);
                        }
                        else
                        {
                            detail.InvoiceId = invoice.InvoiceId;
                            invoiceJRDetailAccessor.Insert(detail);
                        }

                        Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(p.ProductId, detail.DepotPositionId);
                        if (stock == null)
                        {
                            stock                 = new Book.Model.Stock();
                            stock.StockId         = Guid.NewGuid().ToString();
                            stock.ProductId       = p.ProductId;
                            stock.DepotPositionId = detail.DepotPositionId;
                            stock.StockQuantity1  = detail.InvoiceJRDetailQuantity;
                            stock.StockCurrentJR  = stock.StockCurrentJR == null ? detail.InvoiceJRDetailQuantity : stock.StockCurrentJR + detail.InvoiceJRDetailQuantity;
                            stock.DepotId         = invoice.DepotId;
                            stock.ProduceUnit     = p.ProduceUnit.CnName;
                            stockAccessor.Insert(stock);
                        }
                        else
                        {
                            stockAccessor.IncrementJR(depotPositionAcccessor.Get(detail.DepotPositionId), p, detail.InvoiceJRDetailQuantity.Value);
                        }
                    }
                    accessor.Update(invoice);
                    break;

                case Helper.InvoiceStatus.Null:

                    foreach (Model.InvoiceJRDetail detail in invoice.Details)
                    {
                        if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId))
                        {
                            continue;
                        }
                        Model.Product p = detail.Product;
                        //if (detail.InvoiceProductUnit == detail.Product.ProductOuterPackagingUnit)
                        //{
                        //    jrQuantity = detail.InvoiceJRDetailQuantity * p.ProductBaseUnitRelationship * p.ProductInnerUnitRelationship;
                        //}
                        //else if (detail.InvoiceProductUnit == detail.Product.ProductInnerPackagingUnit)
                        //{
                        //    jrQuantity = detail.InvoiceJRDetailQuantity * p.ProductBaseUnitRelationship;
                        //}
                        //else
                        //{
                        //    jrQuantity = detail.InvoiceJRDetailQuantity;
                        //}

                        //p.ProductCurrentJRQuantity -= jrQuantity;
                        p.StocksQuantity -= detail.InvoiceJRDetailQuantity.Value;
                        //byte[] pic = new byte[] { };
                        //if (p.ProductImage == null)
                        //    p.ProductImage = pic;
                        //if (p.ProductImage1 == null)
                        //    p.ProductImage1 = pic;
                        //if (p.ProductImage2 == null)
                        //    p.ProductImage2 = pic;
                        //if (p.ProductImage3 == null)
                        //    p.ProductImage3 = pic;
                        productAccessor.Update(p);

                        stockAccessor.DecrementJR(depotPositionAcccessor.Get(detail.DepotPositionId), p, detail.InvoiceJRDetailQuantity.Value);

                        detail.InvoiceWeiHuaiChuQuantity -= detail.InvoiceJRDetailQuantity;
                        detail.InvoiceJRDetailQuantity   -= detail.InvoiceJRDetailQuantity;

                        invoiceJRDetailAccessor.Update(detail);
                    }
                    break;
                }
                break;

            case Helper.InvoiceStatus.Null:
                throw new InvalidOperationException();
            }
        }
示例#9
0
 public void Update(Model.InvoiceJRDetail e)
 {
     this.Update <Model.InvoiceJRDetail>(e);
 }
示例#10
0
 public void Insert(Model.InvoiceJRDetail e)
 {
     this.Insert <Model.InvoiceJRDetail>(e);
 }
示例#11
0
        private void _Insert(Book.Model.InvoiceHC invoice)
        {
            //经手人
            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.InvoiceHCDetail detail in invoice.Details)
            {
                Model.InvoiceJRDetail odetail = invoiceJRDetailAccessor.Get(detail.InvoiceJRDetailId);

                Model.InvoiceHCDetail hcdetail = new Book.Model.InvoiceHCDetail();
                if (detail.InvoiceHCDetailQuantity > 0)
                {
                    if (detail.InvoiceHCDetailQuantity <= odetail.InvoiceWeiHuaiChuQuantity)
                    {
                        hcdetail.InvoiceId               = invoice.InvoiceId;
                        hcdetail.InvoiceHCDetailId       = Guid.NewGuid().ToString();
                        hcdetail.InvoiceHCDetailNote     = detail.InvoiceHCDetailNote;
                        hcdetail.InvoiceHCDetailQuantity = detail.InvoiceHCDetailQuantity;
                        hcdetail.InvoiceJRDetailId       = detail.InvoiceJRDetailId;
                        hcdetail.InvoiceProductUnit      = detail.InvoiceProductUnit;
                        hcdetail.DepotPositionId         = detail.DepotPositionId;
                        hcdetail.ProductId               = detail.ProductId;

                        invoiceHCDetailAccessor.Insert(hcdetail);
                        Model.Product p = productAccessor.Get(detail.ProductId);
                        //if (p.ProductImage == null || p.ProductImage.Length == 0)
                        //    p.ProductImage = new byte[] { };
                        //if (p.ProductImage1 == null || p.ProductImage1.Length == 0)
                        //    p.ProductImage1 = new byte[] { };
                        //if (p.ProductImage2 == null || p.ProductImage2.Length == 0)
                        //    p.ProductImage2 = new byte[] { };
                        //if (p.ProductImage3 == null || p.ProductImage3.Length == 0)
                        //    p.ProductImage3 = new byte[] { };
                        p.StocksQuantity -= detail.InvoiceHCDetailQuantity;
                        productAccessor.Update(p);
                        odetail.InvoiceWeiHuaiChuQuantity -= detail.InvoiceHCDetailQuantity;
                        odetail.InvoiceYiHuaiChuQuantity  += detail.InvoiceHCDetailQuantity;

                        invoiceJRDetailAccessor.Update(odetail);

                        Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(p.ProductId, detail.DepotPositionId);
                        if (stock == null)
                        {
                            stock                 = new Book.Model.Stock();
                            stock.StockId         = Guid.NewGuid().ToString();
                            stock.ProductId       = p.ProductId;
                            stock.DepotPositionId = detail.DepotPositionId;
                            stock.StockQuantity1  = detail.InvoiceHCDetailQuantity;
                            stock.StockCurrentJC  = stock.StockCurrentJC == null ? detail.InvoiceHCDetailQuantity : stock.StockCurrentJC + detail.InvoiceHCDetailQuantity;
                            stock.DepotId         = invoice.DepotId;
                            stock.ProduceUnit     = p.ProduceUnit.CnName;
                            stockAccessor.Insert(stock);
                        }
                        else
                        {
                            stockAccessor.IncrementJC(new BL.DepotPositionManager().Get(detail.DepotPositionId), p, detail.InvoiceHCDetailQuantity.Value);
                        }
                    }
                    else
                    {
                        throw new Helper.InvalidValueException("HaiRuTaiDuo");
                    }
                }
                else
                {
                    throw new Helper.InvalidValueException("Details");
                }
            }
        }
示例#12
0
        private void _Update(Model.InvoiceHC invoice)
        {
            invoice.UpdateTime = DateTime.Now;;
            //invoice.CustomerId = invoice.Customer.CustomerId;
            if (invoice.Employee0 != null)
            {
                invoice.Employee0Id = invoice.Employee0.EmployeeId;
            }

            Model.InvoiceHC 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:
                    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.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.InvoiceHCDetail detail in invoice.Details)
                    {
                        if (detail.InvoiceHCDetailQuantity > 0)
                        {
                            Model.InvoiceJRDetail temp = invoiceJRDetailAccessor.Get(detail.InvoiceJRDetailId);
                            if (temp != null)
                            {
                                temp.InvoiceWeiHuaiChuQuantity += detail.InvoiceHCDetailQuantity;
                                temp.InvoiceYiHuaiChuQuantity  -= detail.InvoiceHCDetailQuantity;
                                invoiceJRDetailAccessor.Update(temp);
                            }
                            Model.Product p = detail.Product;
                            //byte[] pic = new byte[] { };
                            //if (p.ProductImage == null)
                            //    p.ProductImage = pic;
                            //if (p.ProductImage1 == null)
                            //    p.ProductImage1 = pic;
                            //if (p.ProductImage2 == null)
                            //    p.ProductImage2 = pic;
                            //if (p.ProductImage3 == null)
                            //    p.ProductImage3 = pic;
                            productAccessor.Update(p);
                            stockAccessor.DecrementJC(new BL.DepotPositionManager().Get(detail.DepotPositionId), p, detail.InvoiceHCDetailQuantity.Value);
                        }
                    }
                    break;
                }
                break;

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