Пример #1
0
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
            if (f.ShowDialog(this) == DialogResult.OK)
            {
                Model.Product        prod = f.SelectedItem as Model.Product;
                List <Model.Product> list = this.productBindingSource.DataSource as List <Model.Product>;
                bool flag = true;
                foreach (Model.Product product in list)
                {
                    if (product.ProductId == prod.ProductId)
                    {
                        flag = false;
                    }
                }
                if (flag)
                {
                    list.Add(f.SelectedItem as Model.Product);
                    this.gridControl2.RefreshDataSource();

                    DataRow dr = null;
                    foreach (Model.CompanyLevel level in this.companyLevelManager.Select())
                    {
                        dr = dt.NewRow();
                        dr["CompanyLevelName"]         = level.CompanyLevelName;
                        dr["SpecialProfitMarginValue"] = 0;
                        dr["productId"]      = prod.ProductId;
                        dr["CompanyLevelId"] = level.CompanyLevelId;
                        dt.Rows.Add(dr);
                    }
                }
            }
        }
Пример #2
0
        private void btn_AddProduct_Click(object sender, EventArgs e)
        {
            Book.UI.Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();

            if (f.ShowDialog(this) == DialogResult.OK)
            {
                if (ChooseProductForm.ProductList != null && ChooseProductForm.ProductList.Count > 0)
                {
                    Model.PackingListDetail packingDetail = null;
                    foreach (Model.Product product in ChooseProductForm.ProductList)
                    {
                        packingDetail = new Book.Model.PackingListDetail();
                        packingDetail.PackingListDetailId = Guid.NewGuid().ToString();
                        packingDetail.PackingListHeader   = this.packingListHeader;
                        packingDetail.Product             = product;
                        packingDetail.ProductId           = product.ProductId;

                        packingDetail.BoxMaxQuantity    = Convert.ToDecimal(packingDetail.Product.Digital);
                        packingDetail.BoxMaxNetWeight   = Convert.ToDecimal(packingDetail.Product.NetWeight);
                        packingDetail.BoxMaxGrossWeight = Convert.ToDecimal(packingDetail.Product.GrossWeight);
                        packingDetail.BoxMaxCaiji       = Convert.ToDecimal(packingDetail.Product.Volume);

                        packingDetail.Quantity    = 0;
                        packingDetail.NetWeight   = 0;
                        packingDetail.GrossWeight = 0;
                        packingDetail.Caiji       = 0;


                        packingListHeader.Details.Add(packingDetail);
                    }
                }
                else if (ChooseProductForm.ProductList == null || ChooseProductForm.ProductList.Count == 0)
                {
                    Model.Product product = f.SelectedItem as Model.Product;

                    Model.PackingListDetail packingDetail = new Book.Model.PackingListDetail();
                    packingDetail.PackingListDetailId = Guid.NewGuid().ToString();
                    packingDetail.PackingListHeader   = this.packingListHeader;
                    packingDetail.Product             = product;
                    packingDetail.ProductId           = product.ProductId;

                    packingDetail.BoxMaxQuantity    = Convert.ToDecimal(packingDetail.Product.Digital);
                    packingDetail.BoxMaxNetWeight   = Convert.ToDecimal(packingDetail.Product.NetWeight);
                    packingDetail.BoxMaxGrossWeight = Convert.ToDecimal(packingDetail.Product.GrossWeight);
                    packingDetail.BoxMaxCaiji       = Convert.ToDecimal(packingDetail.Product.Volume);

                    packingDetail.Quantity    = 0;
                    packingDetail.NetWeight   = 0;
                    packingDetail.GrossWeight = 0;
                    packingDetail.Caiji       = 0;


                    packingListHeader.Details.Add(packingDetail);
                }

                this.bindingSourceDetail.DataSource = packingListHeader.Details;
                this.gridControl3.RefreshDataSource();
                this.bindingSourceDetail.MoveLast();
            }
        }
Пример #3
0
 private void btn_Add_Click(object sender, EventArgs e)
 {
     Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
     if (f.ShowDialog(this) == DialogResult.OK)
     {
         Model.BGProductDetai model = new Book.Model.BGProductDetai();
         model.BGProductDetailId = Guid.NewGuid().ToString();
         if (f.SelectedItem != null)
         {
             model.Product   = f.SelectedItem as Model.Product;
             model.ProductId = model.Product.ProductId;
         }
         if (this.xtraTabControl1.SelectedTabPageIndex == 1)
         {
             this._bGProduct.DetailProduct.Add(model);
             model.Id = this._bGProduct.DetailProduct.Count;
             this.gridControl2.RefreshDataSource();
         }
         else
         {
             this._bGProduct.DetailMaterial.Add(model);
             model.Id = this._bGProduct.DetailMaterial.Count;
             this.gridControl1.RefreshDataSource();
         }
     }
 }
Пример #4
0
        private void simpleButtonAppend_Click(object sender, EventArgs e)
        {
            Model.Customer customer = this.buttonEditCompany.EditValue as Model.Customer;
            if (customer == null)
            {
                MessageBox.Show("請選則客戶!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            this.bindingSourceproduct.DataSource = this.ProductsManager.Select();
            Book.UI.Invoices.ChooseProductForm f = new  Book.UI.Invoices.ChooseProductForm();
            if (f.ShowDialog(this) == DialogResult.OK)
            {
                Model.Product         product = f.SelectedItem as Model.Product;
                Model.InvoiceXJDetail detail  = new Book.Model.InvoiceXJDetail();
                detail.InvoiceXJDetailId = Guid.NewGuid().ToString();
                detail.Invoice           = this.invoice;
                detail.Product           = product;
                if (product != null)
                {
                    detail.ProductId = product.ProductId;
                }
                detail.InvoiceXJDetailQuantity = 1;
                detail.InvoiceXJDetailPrice    = decimal.Zero;
                detail.InvoiceXJDetailMoney    = decimal.Zero;
                detail.InvoiceXJDetailNote     = "";
                detail.InvoiceProductUnit      = product.MainUnit.CnName;
                this.invoice.Details.Add(detail);
                this.gridControl1.RefreshDataSource();

                this.bindingSource1.Position = this.bindingSource1.IndexOf(detail);
            }
        }
Пример #5
0
 //查询选择商品
 private void btn_CheckProduct2_Click(object sender, EventArgs e)
 {
     UI.Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
     if (f.ShowDialog(this) == DialogResult.OK)
     {
         Model.Product product = f.SelectedItem as Model.Product;
         if (product != null)
         {
             this.btn_CheckProduct2.EditValue = product;
             this.bindingSource4.DataSource   = this._manage.SelectByProductId(product.ProductId);
             if (this.bindingSource4.Count > 0)
             {
                 this._CustomerProductPrice = this.bindingSource4.Current as Model.CustomerProductPrice;
                 if (this._CustomerProductPrice.CustomerProductPriceRage != null)
                 {
                     AnalyzePriceRange(this._CustomerProductPrice.CustomerProductPriceRage);
                     this.gridControl5.RefreshDataSource();
                 }
                 else
                 {
                     this._priceRangeList.Clear();
                     this.gridControl5.RefreshDataSource();
                 }
             }
             else
             {
                 this._priceRangeList.Clear();
                 this.gridControl5.RefreshDataSource();
             }
         }
     }
 }
Пример #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void buttonEdit1_Click(object sender, EventArgs e)
 {
     Book.UI.Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
     if (f.ShowDialog(this) == DialogResult.OK)
     {
         (sender as ButtonEdit).EditValue = f.SelectedItem;
     }
 }
Пример #7
0
 private void buttonEditProduct_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
 {
     Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
     if (f.ShowDialog(this) == DialogResult.OK)
     {
         this.buttonEditProduct.EditValue = f.SelectedItem as Model.Product;
     }
 }
Пример #8
0
 private void btnEdit_Product_Click(object sender, EventArgs e)
 {
     Book.UI.Invoices.ChooseProductForm form = new Book.UI.Invoices.ChooseProductForm();
     if (form.ShowDialog() == DialogResult.OK)
     {
         this.btnEdit_Product.EditValue = form.SelectedItem as Model.Product;
     }
 }
Пример #9
0
 private void btn_ProductNameEnd_Click(object sender, EventArgs e)
 {
     Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
     if (f.ShowDialog(this) == DialogResult.OK)
     {
         this.btn_ProductNameEnd.Text = (f.SelectedItem as Model.Product).ProductName;
     }
 }
Пример #10
0
 private void BEProduct_Click(object sender, EventArgs e)
 {
     Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
     if (f.ShowDialog(this) == DialogResult.OK)
     {
         this.BEProduct.EditValue = f.SelectedItem;
     }
 }
 private void buttonEditPro_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
 {
     Book.UI.Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
     if (f.ShowDialog(this) == DialogResult.OK)
     {
         (sender as ButtonEdit).EditValue = f.SelectedItem;
         this.labelCusPro.Text            = (f.SelectedItem as Model.Product).CustomerProductName;
     }
     f.Dispose();
     GC.Collect();
 }
Пример #12
0
 /// <summary>
 /// 商品编号结束区间
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void buttonEditProductStartbuttonEdit_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
 {
     Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
     if (f.ShowDialog(this) == DialogResult.OK)
     {
         Model.Product product = f.SelectedItem as Model.Product;
         if (product != null)
         {
             this.buttonEditProductStart.Text = product.Id;
         }
     }
 }
Пример #13
0
 private void buttonEditMadeProduct_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
 {
     Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
     if (f.ShowDialog(this) == DialogResult.OK)
     {
         this._madeProduct = f.SelectedItem as Model.Product;
         if (this._madeProduct != null)
         {
             this.buttonEditMadeProduct.Text = string.IsNullOrEmpty(this._madeProduct.CustomerProductName) ? this._madeProduct.ProductName : this._madeProduct.ProductName + "{" + this._madeProduct.CustomerProductName + "}";
         }
     }
 }
Пример #14
0
        private void simpleProduct_Click(object sender, EventArgs e)
        {
            Book.UI.Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
            if (f.ShowDialog(this) == DialogResult.OK)
            {
                foreach (Model.Product product in Book.UI.Invoices.ChooseProductForm.ProductList)
                {
                    if (product == null)
                    {
                        continue;
                    }
                    IList <Model.ProductImage> productImages = this._productImage.Select(product);
                    foreach (Model.ProductImage item in productImages)
                    {
                        if (item.Images.Length == 0)
                        {
                            continue;
                        }

                        #region 展示數據

                        MemoryStream ms    = new MemoryStream(item.Images);
                        Image        image = Image.FromStream(ms);
                        string       path  = Application.StartupPath + @"\Temp\" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + DateTime.Now.Millisecond.ToString() + (string.IsNullOrEmpty(item.SuffixalName) ? ".jpg" : item.SuffixalName);
                        image.Save(path);
                        FileClass fc = new FileClass();
                        fc.filePath  = path;
                        fc.fileName  = product.ProductName;
                        fc.size      = item.Images.Length + "字节";
                        fc.image     = image;
                        fc.Extension = string.IsNullOrEmpty(item.SuffixalName) ? ".jpg" : item.SuffixalName;
                        list.Add(fc);

                        #endregion

                        //System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType();
                        //ct.MediaType = System.Net.Mime.MediaTypeNames.Image.Jpeg;
                        //ct.Name = item.Description + ".jpg";
                        //Attachment at = new Attachment(ms, ct);
                        //System.Net.Mime.ContentDisposition disposition = at.ContentDisposition;
                        //disposition.ModificationDate = item.InsertTime.Value;
                        //disposition.ReadDate = System.DateTime.Now;
                        //mail.Attachments.Add(at);
                    }
                }
                this.gridControl1.RefreshDataSource();
            }
        }
Пример #15
0
        //增删改.选择商品
        private void btn_CheckProduct_Click(object sender, EventArgs e)
        {
            if (this.action == "insert")
            {
                UI.Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
                if (f.ShowDialog(this) == DialogResult.OK)
                {
                    this._CustomerProductPrice.Product = f.SelectedItem as Model.Product;
                    if (this._CustomerProductPrice.Product != null)
                    {
                        this._CustomerProductPrice.ProductId          = this._CustomerProductPrice.Product.ProductId;
                        this._CustomerProductPrice.ProductIDNo        = this._CustomerProductPrice.Product.Id;
                        this._CustomerProductPrice.ProductName        = this._CustomerProductPrice.Product.ProductName;
                        this._CustomerProductPrice.ProductDesc        = this._CustomerProductPrice.Product.ProductDescription;
                        this._CustomerProductPrice.ProductVersion     = this._CustomerProductPrice.Product.ProductVersion;
                        this._CustomerProductPrice.CustomerProductId  = this._CustomerProductPrice.Product.CustomerProductName;
                        this._CustomerProductPrice.CustomerProductsId = (new BL.CustomerProductsManager()).SelectPrimaryIdByProceName(this._CustomerProductPrice.ProductId);
                    }
                    this._CustomerProductPrice.Customer = this.bindingSourceCustomer.Current as Model.Customer;
                    if (this._CustomerProductPrice.Customer != null)
                    {
                        this._CustomerProductPrice.CustomerId = this._CustomerProductPrice.Customer.CustomerId;
                    }

                    if (this._CustomerProductPriceList.Where(c => c.CustomerId == this._CustomerProductPrice.CustomerId && c.ProductId == this._CustomerProductPrice.ProductId).ToList <Model.CustomerProductPrice>().Count > 0)
                    {
                        //MessageBox.Show("有重複商品輸入", "提示");
                        //return;
                        Model.CustomerProductPrice model = this._CustomerProductPriceList.Where(c => c.CustomerId == this._CustomerProductPrice.CustomerId && c.ProductId == this._CustomerProductPrice.ProductId).First();

                        model = this._CustomerProductPrice;

                        this.bindingSourceCustomerProduct.Position = this._CustomerProductPriceList.IndexOf(this._CustomerProductPriceList.First(c => c.CustomerId == this._CustomerProductPrice.CustomerId && c.ProductId == this._CustomerProductPrice.ProductId));
                    }
                    else if (this.action == "insert")
                    {
                        this._CustomerProductPriceList.Add(this._CustomerProductPrice);
                        this.bindingSourceCustomerProduct.Position = this.bindingSourceCustomerProduct.IndexOf(this._CustomerProductPrice);
                    }

                    this.gridControl2.RefreshDataSource();
                    AnalyzePriceRange(this._CustomerProductPrice.CustomerProductPriceRage);
                    this.gridControl3.RefreshDataSource();

                    this.btn_CheckProduct.EditValue = f.SelectedItem as Model.Product;
                }
            }
        }
Пример #16
0
 private void buttonEditProStart_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
 {
     Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
     if (f.ShowDialog() != DialogResult.OK)
     {
         return;
     }
     if ((sender as  ButtonEdit).Name == "buttonEditProStart")
     {
         this.buttonEditProStart.EditValue = f.SelectedItem as Model.Product;
     }
     if ((sender as  ButtonEdit).Name == "buttonEditProEnd")
     {
         this.buttonEditProEnd.EditValue = f.SelectedItem as Model.Product;
     }
 }
Пример #17
0
 private void buttonEditProduct_Properties_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
 {
     if (e.Button.Index == 1)
     {
         this.buttonEditProduct.EditValue = null;
     }
     else
     {
         Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
         if (f.ShowDialog(this) == DialogResult.OK)
         {
             this.buttonEditProduct.EditValue = f.SelectedItem as Model.Product;
         }
         f.Dispose();
         GC.Collect();
     }
 }
Пример #18
0
        private void btn_AddProduct_Click(object sender, EventArgs e)
        {
            Book.UI.Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();

            if (f.ShowDialog(this) == DialogResult.OK)
            {
                if (ChooseProductForm.ProductList != null && ChooseProductForm.ProductList.Count > 0)
                {
                    Model.PackingInvoiceDetail packingInvoiceDetail = null;
                    foreach (Model.Product product in ChooseProductForm.ProductList)
                    {
                        packingInvoiceDetail = new Book.Model.PackingInvoiceDetail();
                        packingInvoiceDetail.PackingInvoiceDetailId = Guid.NewGuid().ToString();
                        packingInvoiceDetail.PackingInvoiceHeader   = this.packingInvoiceHeader;
                        packingInvoiceDetail.ProductId = product.ProductId;
                        packingInvoiceDetail.Product   = product;

                        packingInvoiceDetail.Quantity  = 0;
                        packingInvoiceDetail.UnitPrice = 0;
                        packingInvoiceDetail.Amount    = 0;

                        this.packingInvoiceHeader.Details.Add(packingInvoiceDetail);
                    }
                }
                else if (ChooseProductForm.ProductList == null || ChooseProductForm.ProductList.Count == 0)
                {
                    Model.Product product = f.SelectedItem as Model.Product;

                    Model.PackingInvoiceDetail packingInvoiceDetail = new Book.Model.PackingInvoiceDetail();
                    packingInvoiceDetail.PackingInvoiceDetailId = Guid.NewGuid().ToString();
                    packingInvoiceDetail.PackingInvoiceHeader   = this.packingInvoiceHeader;
                    packingInvoiceDetail.ProductId = product.ProductId;
                    packingInvoiceDetail.Product   = product;

                    packingInvoiceDetail.Quantity  = 0;
                    packingInvoiceDetail.UnitPrice = 0;
                    packingInvoiceDetail.Amount    = 0;

                    this.packingInvoiceHeader.Details.Add(packingInvoiceDetail);
                }

                this.bindingSourceDetail.DataSource = this.packingInvoiceHeader.Details;
                this.gridControl3.RefreshDataSource();
            }
        }
Пример #19
0
        /// <summary>
        /// 选择货品
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonEditProduct_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();
            if (f.ShowDialog(this) == DialogResult.OK)
            {
                Model.Product product = f.SelectedItem as Model.Product;
                if (product != null)
                {
                    this.buttonEditProduct.Text   = product.Id;
                    this.textEditProductName.Text = string.IsNullOrEmpty(product.CustomerProductName) ? product.ProductName : product.ProductName + "{" + product.CustomerProductName + "}";

                    if (!string.IsNullOrEmpty(product.CustomerProductName))
                    {
                        this.textEditCustomerPro.Text = product.CustomerProductName;
                    }

                    if (product.IsCustomerProduct == true && !string.IsNullOrEmpty(product.CustomerProductName))
                    {
                        this._bomParentPartInfo = bomParentPartInfo.Get(this.productManager.Get(product.CustomerBeforeProductId));
                        // this.textEditCustomProduct.Text = product.CustomerProductName;
                        this.newChooseContorlCustomer.EditValue = product.Customer;
                    }
                    else
                    {
                        this._bomParentPartInfo = bomParentPartInfo.Get(product);
                        // this.textEditCustomProduct.Text = "";
                        this.newChooseContorlCustomer.EditValue = null;
                    }
                    this._manprocedure.Bom = this._bomParentPartInfo;
                    if (this._bomParentPartInfo != null)
                    {
                        this.textEditBOMID.EditValue = this._bomParentPartInfo.Id;
                        // this.textEditBOMType.EditValue = this._bomParentPartInfo.MaterialType;
                    }
                }
            }
            f.Dispose();
            GC.Collect();
        }
Пример #20
0
        //选择客户订单
        private void btn_ChooseInvoiceXO_Click(object sender, EventArgs e)
        {
            #region 以前拉取客戶訂單資料,現在反過來生成客戶訂單,因此拉取商品資料
            //if (this.ncc_Customer.EditValue == null)
            //{
            //    MessageBox.Show("請先選擇客戶", "提示", MessageBoxButtons.OK);
            //    return;
            //}

            //XS.SearcharInvoiceXSForm f = new Book.UI.Invoices.XS.SearcharInvoiceXSForm(this.ncc_Customer.EditValue as Model.Customer);
            //if (f.ShowDialog(this) == DialogResult.OK)
            //{
            //    if (f.key != null && f.key.Count > 0)
            //    {
            //        if (!string.IsNullOrEmpty(f.key[0].Invoice.Currency))
            //        {
            //            this.cob_Currency.Text = Model.ExchangeRate.GetCurrencyENName(f.key[0].Invoice.Currency);
            //        }

            //        Model.ProformaInvoiceDetail proformaInvoiceDetail = null;

            //        foreach (Model.InvoiceXODetail detail in f.key)
            //        {
            //            proformaInvoiceDetail = new Book.Model.ProformaInvoiceDetail();
            //            proformaInvoiceDetail.ProformaInvoiceDetailId = Guid.NewGuid().ToString();
            //            proformaInvoiceDetail.ProformaInvoiceId = this.proformaInvoice.PO;
            //            proformaInvoiceDetail.ProductId = detail.ProductId;
            //            proformaInvoiceDetail.Product = detail.Product;
            //            proformaInvoiceDetail.Quantity = Convert.ToInt32(detail.InvoiceXODetailQuantity);
            //            proformaInvoiceDetail.UnitPrice = detail.InvoiceXODetailPrice;
            //            proformaInvoiceDetail.Amount = proformaInvoiceDetail.Quantity * proformaInvoiceDetail.UnitPrice;
            //            proformaInvoiceDetail.Unit = "PCS";

            //            this.proformaInvoice.Details.Add(proformaInvoiceDetail);
            //        }

            //        this.CombineSameItem();

            //        if (this.proformaInvoice.Details != null && this.proformaInvoice.Details.Count > 0)
            //            this.proformaInvoice.Details.ToList().ForEach(D => D.Number = (this.proformaInvoice.Details.IndexOf(D) + 1).ToString());

            //        this.bindingSourceDetail.DataSource = this.proformaInvoice.Details;
            //        this.gridControl3.RefreshDataSource();
            //    }
            //}
            #endregion

            Book.UI.Invoices.ChooseProductForm f = new Book.UI.Invoices.ChooseProductForm();

            if (f.ShowDialog(this) == DialogResult.OK)
            {
                Model.ProformaInvoiceDetail proformaInvoiceDetail = null;

                if (ChooseProductForm.ProductList != null || ChooseProductForm.ProductList.Count > 0)
                {
                    foreach (Model.Product product in ChooseProductForm.ProductList)
                    {
                        proformaInvoiceDetail = new Book.Model.ProformaInvoiceDetail();
                        proformaInvoiceDetail.ProformaInvoiceDetailId = Guid.NewGuid().ToString();
                        proformaInvoiceDetail.ProformaInvoiceId       = this.proformaInvoice.PO;
                        proformaInvoiceDetail.ProductId = product.ProductId;
                        proformaInvoiceDetail.Product   = product;
                        proformaInvoiceDetail.Quantity  = 0;
                        proformaInvoiceDetail.UnitPrice = 0;
                        proformaInvoiceDetail.Amount    = 0;
                        proformaInvoiceDetail.Unit      = "PCS";

                        this.proformaInvoice.Details.Add(proformaInvoiceDetail);

                        this.CombineSameItem();
                    }
                }
                if (ChooseProductForm.ProductList == null || ChooseProductForm.ProductList.Count == 0)
                {
                    Model.Product product = f.SelectedItem as Model.Product;
                    proformaInvoiceDetail = new Book.Model.ProformaInvoiceDetail();
                    proformaInvoiceDetail.ProformaInvoiceDetailId = Guid.NewGuid().ToString();
                    proformaInvoiceDetail.ProformaInvoiceId       = this.proformaInvoice.PO;
                    proformaInvoiceDetail.ProductId = product.ProductId;
                    proformaInvoiceDetail.Product   = product;
                    proformaInvoiceDetail.Quantity  = 0;
                    proformaInvoiceDetail.UnitPrice = 0;
                    proformaInvoiceDetail.Amount    = 0;
                    proformaInvoiceDetail.Unit      = "PCS";

                    this.proformaInvoice.Details.Add(proformaInvoiceDetail);

                    this.CombineSameItem();
                }
            }

            if (this.proformaInvoice.Details != null && this.proformaInvoice.Details.Count > 0)
            {
                this.proformaInvoice.Details.ToList().ForEach(D => D.Number = (this.proformaInvoice.Details.IndexOf(D) + 1));
            }

            this.bindingSourceDetail.DataSource = this.proformaInvoice.Details;
            this.gridControl3.RefreshDataSource();
        }