public void Singleton_CanOnlyConfigureIdLinkViaIdLinkFactory() { // Arrange ODataModelBuilder builder = GetSingletonModel(); const string ExpectedEditLink = "http://server/service/Exchange"; var product = builder.Singleton<SingletonProduct>("Exchange"); product.HasIdLink(c => new Uri("http://server/service/Exchange"), followsConventions: false); var exchange = builder.Singletons.Single(); var model = builder.GetEdmModel(); var productType = model.SchemaElements.OfType<IEdmEntityType>().Single(); var singleton = model.SchemaElements.OfType<IEdmEntityContainer>().Single().FindSingleton("Exchange"); var singletonInstance = new SingletonProduct { ID = 15 }; var serializerContext = new ODataSerializerContext { Model = model, NavigationSource = singleton }; var entityContext = new EntityInstanceContext(serializerContext, productType.AsReference(), singletonInstance); var linkBuilderAnnotation = new NavigationSourceLinkBuilderAnnotation(exchange); // Act var selfLinks = linkBuilderAnnotation.BuildEntitySelfLinks(entityContext, ODataMetadataLevel.FullMetadata); // Assert Assert.NotNull(selfLinks.IdLink); Assert.Equal(ExpectedEditLink, selfLinks.IdLink.ToString()); Assert.Null(selfLinks.ReadLink); Assert.Null(selfLinks.EditLink); }
/// <summary> /// Bindding data main product /// </summary> /// <param name="send"></param> public void BinddingProductChoose(int id) { var send = SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == id); int row = dataGridView1.CurrentRow.Index; var checkQty = dataGridView1.Rows[row].Cells[colQty].Value ?? "0"; decimal qty = decimal.Parse(checkQty.ToString()); dataGridView1.Rows[row].Cells[colId].Value = send.Id; dataGridView1.Rows[row].Cells[colCode].Value = send.Code; dataGridView1.Rows[row].Cells[colName].Value = send.Products.ThaiName; dataGridView1.Rows[row].Cells[colUnit].Value = send.ProductUnit.Name; dataGridView1.Rows[row].Cells[colPricePerUnit].Value = Library.ConvertDecimalToStringForm(send.SellPrice); dataGridView1.Rows[row].Cells[colVatType].Value = send.Products.ProductVatType.Name; dataGridView1.Rows[row].Cells[colDiscount].Value = "0.00"; dataGridView1.Rows[row].Cells[colRemark].Value = "-"; if (qty == 0) { dataGridView1.Rows[row].Cells[colQty].Value = "1"; dataGridView1.Rows[row].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(send.SellPrice); } else { dataGridView1.Rows[row].Cells[colQty].Value = qty; dataGridView1.Rows[row].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(qty * send.SellPrice); } dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colQty]; dataGridView1.BeginEdit(true); TotalSummary(); }
public void Singleton_CanOnlyConfigureIdLinkViaIdLinkFactory() { // Arrange ODataModelBuilder builder = GetSingletonModel(); const string ExpectedEditLink = "http://server/service/Exchange"; var product = builder.Singleton <SingletonProduct>("Exchange"); product.HasIdLink(c => new Uri("http://server/service/Exchange"), followsConventions: false); var exchange = builder.Singletons.Single(); var model = builder.GetEdmModel(); var productType = model.SchemaElements.OfType <IEdmEntityType>().Single(); var singleton = model.SchemaElements.OfType <IEdmEntityContainer>().Single().FindSingleton("Exchange"); var singletonInstance = new SingletonProduct { ID = 15 }; var serializerContext = new ODataSerializerContext { Model = model, NavigationSource = singleton }; var entityContext = new ResourceContext(serializerContext, productType.AsReference(), singletonInstance); var linkBuilderAnnotation = new NavigationSourceLinkBuilderAnnotation(exchange); // Act var selfLinks = linkBuilderAnnotation.BuildEntitySelfLinks(entityContext, ODataMetadataLevel.FullMetadata); // Assert Assert.NotNull(selfLinks.IdLink); Assert.Equal(ExpectedEditLink, selfLinks.IdLink.ToString()); Assert.Null(selfLinks.ReadLink); Assert.Null(selfLinks.EditLink); }
private void buttonSearchProduct_Click(object sender, EventArgs e) { List <ProductDetails> list = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).ToList(); SelectedProductPopup obj = new SelectedProductPopup(this, list, 1); obj.ShowDialog(); }
/// <summary> /// เลือกสินค้า เพื่อย้ายฐาน /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button4_Click(object sender, EventArgs e) { int id = int.Parse(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value.ToString()); Console.WriteLine(id); if (fk2 == null || fk2 == 0) { MessageBox.Show("กรุณาเลือก สินค้า 2"); return; } else // allow transfer { List <ProductDetails> list = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).ToList(); var data = list.FirstOrDefault(w => w.Enable == true && w.Id == id); dataGridView2.Rows.Add ( data.Id, data.Code, data.PackSize, data.ProductUnit.Name, data.CostOnly, data.CostAndVat, data.SellPrice); dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index); } }
/// <summary> /// เมื่อมีการ Tab data grid /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e) { List <ProductDetails> products = new List <ProductDetails>(); products = SingletonProduct.Instance().ProductDetails; if (e.RowIndex < 0) { return; } try { ProductDetails p = new ProductDetails(); string pNo = "0"; switch (e.ColumnIndex) { case 0: if (dataGridView1.Rows[e.RowIndex].Cells[colCode].Value != null) { pNo = dataGridView1.Rows[e.RowIndex].Cells[colCode].Value.ToString(); } p = products.FirstOrDefault(w => w.Code == pNo); if (p != null) { dataGridView1.Rows[e.RowIndex].Cells[colId].Value = p.Id; // Id //dataGridView1.Rows[e.RowIndex].Cells[colCode].Value = p.Code; // code dataGridView1.Rows[e.RowIndex].Cells[colName].Value = p.Products.ThaiName; // ชื่อ dataGridView1.Rows[e.RowIndex].Cells[colUnit].Value = p.ProductUnit.Name; // หน่วย dataGridView1.Rows[e.RowIndex].Cells[colCurrentPrice].Value = Library.ConvertDecimalToStringForm(p.SellPrice); // ราคาปกติ dataGridView1.Rows[e.RowIndex].Cells[colSpecialPrice].Value = "0.00"; // ราคาพิเศษ dataGridView1.Rows[e.RowIndex].Cells[colDiffPercent].Value = "0.00 %"; // ส่วนต่าง % dataGridView1.Rows[e.RowIndex].Cells[colDiffBath].Value = "0.00"; // ส่วนต่าง บาท dataGridView1.Rows[e.RowIndex].Cells[colRemark].Value = "-"; // หมายเหตุ } break; case 5: // ราคา ปกติ decimal price = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colCurrentPrice].Value.ToString()); // ส่วนต่าง ได้จาก ราคาปกติ - ราคาพิเศษ decimal sPrice = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colSpecialPrice].Value.ToString()); if (sPrice >= price) { MessageBox.Show("คุณแน่ใจหรือไม่ ? ราคาโปรโมชั่นมากว่าหรือเท่ากันราคาปกติ"); } // set diff bath dataGridView1.Rows[e.RowIndex].Cells[colDiffBath].Value = Library.ConvertDecimalToStringForm(price - sPrice); // เงินต่าง decimal diffBath = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colDiffBath].Value.ToString()); decimal percent = diffBath * 100 / price; dataGridView1.Rows[e.RowIndex].Cells[colDiffPercent].Value = Library.ConvertDecimalToStringForm(percent) + " %"; break; } } catch (Exception) { } }
public void BinddingProduct(int id) { var product = SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == id); if (changeTxt == true) { txt_p_S.Text = product.Code; } else { txt_p_E.Text = product.Code; } }
private void CampaignFullyQtyAndGiftForm_Load(object sender, EventArgs e) { SingletonProduct.Instance(); dateTimePickerStart.MinDate = DateTime.Now; var thisBudget = SingletonThisBudgetYear.Instance().ThisYear; using (SSLsEntities db = new SSLsEntities()) { int currentYear = DateTime.Now.Year; int currentMonth = DateTime.Now.Month; var pro = db.PriceSchedule.Where(w => w.CreateDate.Year == currentYear && w.CreateDate.Month == currentMonth).Count() + 1; textBoxProCode.Text = thisBudget.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(pro, 3); } }
void TotalSummary() { try { decimal totalQty = 0; decimal totalUnVat = 0; decimal totalHasVat = 0; for (int i = 0; i < dataGridView1.Rows.Count; i++) { if (dataGridView1.Rows[i].Cells[colCode].Value == null) { continue; } else if (dataGridView1.Rows[i].Cells[colCode].Value.ToString() == "") { continue; } int id = int.Parse(dataGridView1.Rows[i].Cells[colId].Value.ToString()); ProductDetails product = SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == id); decimal qty = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); totalQty += qty; decimal totalPrice = decimal.Parse(dataGridView1.Rows[i].Cells[colTotalPrice].Value.ToString()); if (product.Products.ProductVatType.Id == MyConstant.ProductVatType.UnVat) { // ถ้าเป็น ยกเว้นภาษี totalUnVat += totalPrice; } else { totalHasVat += totalPrice; } //if (i >= dataGridView1.Rows.Count - 2) break; } textBoxQtyUnit.Text = Library.ConvertDecimalToStringForm(totalQty); textBoxTotalUnVat.Text = Library.ConvertDecimalToStringForm(totalUnVat); decimal vat = Library.CalVatFromValue(totalHasVat); decimal beforeVat = totalHasVat - vat; textBoxTotalBeforeVat.Text = Library.ConvertDecimalToStringForm(beforeVat); textBoxTotalVat.Text = Library.ConvertDecimalToStringForm(vat); textBoxTotalBalance.Text = Library.ConvertDecimalToStringForm(totalUnVat + totalHasVat); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
private void CampaignDiscountDayForm_Load(object sender, EventArgs e) { dateTimePickerStart.MinDate = DateTime.Now; SingletonProduct.Instance(); //using (SSLsEntities db = new SSLsEntities()) //{ // string proCodeGen = SingletonPriority1.Instance().ThisBudgetYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(db.PriceSchedule.Count() + 1, 3); // textBoxProCode.Text = proCodeGen; //} using (SSLsEntities db = new SSLsEntities()) { int currentYear = DateTime.Now.Year; int currentMonth = DateTime.Now.Month; var pro = db.PriceSchedule.Where(w => w.CreateDate.Year == currentYear && w.CreateDate.Month == currentMonth).Count() + 1; string code = SingletonThisBudgetYear.Instance().ThisYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(pro, 3); textBoxProCode.Text = code; } }
/// <summary> /// Tab data grid 1 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e) { List <ProductDetails> products = new List <ProductDetails>(); products = SingletonProduct.Instance().ProductDetails; if (e.RowIndex < 0) { return; } try { ProductDetails p = new ProductDetails(); string pNo = "0"; switch (e.ColumnIndex) { case 0: if (dataGridView1.Rows[e.RowIndex].Cells[colCode].Value != null) { pNo = dataGridView1.Rows[e.RowIndex].Cells[colCode].Value.ToString(); } p = products.FirstOrDefault(w => w.Code == pNo); if (p != null) { dataGridView1.Rows[e.RowIndex].Cells[colId].Value = p.Id; // Id dataGridView1.Rows[e.RowIndex].Cells[colName].Value = p.Products.ThaiName; // ชื่อ dataGridView1.Rows[e.RowIndex].Cells[colUnit].Value = p.ProductUnit.Name; // หน่วย dataGridView1.Rows[e.RowIndex].Cells[colCurrentPrice].Value = Library.ConvertDecimalToStringForm(p.SellPrice); // ราคาปกติ dataGridView1.Rows[e.RowIndex].Cells[colRemark].Value = "-"; // หมายเหตุ } break; case 5: break; } } catch (Exception) { throw; } }
public void Singleton_CanConfigureLinksIndependently() { // Arrange ODataModelBuilder builder = GetSingletonModel(); const string ExpectedEditLink = "http://server1/service/Exchange"; const string ExpectedReadLink = "http://server2/service/Exchange"; const string ExpectedIdLink = "http://server3/service/Exchange"; var product = builder.Singleton <SingletonProduct>("Exchange"); product.HasEditLink(c => new Uri("http://server1/service/Exchange"), followsConventions: false); product.HasReadLink(c => new Uri("http://server2/service/Exchange"), followsConventions: false); product.HasIdLink(c => new Uri("http://server3/service/Exchange"), followsConventions: false); var exchange = builder.Singletons.Single(); var model = builder.GetEdmModel(); var productType = model.SchemaElements.OfType <IEdmEntityType>().Single(); var singleton = model.SchemaElements.OfType <IEdmEntityContainer>().Single().FindSingleton("Exchange"); var singletonInstance = new SingletonProduct { ID = 15 }; var serializerContext = new ODataSerializerContext { Model = model, NavigationSource = singleton }; var entityContext = new ResourceContext(serializerContext, productType.AsReference(), singletonInstance); // Act var editLink = exchange.GetEditLink().Factory(entityContext); var readLink = exchange.GetReadLink().Factory(entityContext); var idLink = exchange.GetIdLink().Factory(entityContext); // Assert Assert.NotNull(editLink); Assert.Equal(ExpectedEditLink, editLink.ToString()); Assert.NotNull(readLink); Assert.Equal(ExpectedReadLink, readLink.ToString()); Assert.NotNull(idLink); Assert.Equal(ExpectedIdLink, idLink.ToString()); }
private void SelectedProductPopup_Load(object sender, EventArgs e) { if (_FromForm == "GoodsReturnWmsForm") { using (SSLsEntities db = new SSLsEntities()) { List <int> fkProDtlInWaste = db.WasteWarehouseDetails.Where(w => w.Enable == true).Select(w => w.FKProductDetails).Distinct().ToList <int>(); var getPdtl = Singleton.SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true && fkProDtlInWaste.Contains(w.Id)).ToList(); AutoCompleteStringCollection colPdtl = new AutoCompleteStringCollection(); foreach (var item in getPdtl) { colPdtl.Add(item.Products.ThaiName); } textBoxSearchKey.AutoCompleteCustomSource = colPdtl; foreach (var item in getPdtl) { dataGridView1.Rows.Add(item.Id, item.Code, item.Products.ThaiName, item.ProductUnit.Name, Library.ConvertDecimalToStringForm(item.PackSize), Library.ConvertDecimalToStringForm(item.SellPrice), item.Description); } } } else { var getPdtl = Singleton.SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).ToList(); AutoCompleteStringCollection colPdtl = new AutoCompleteStringCollection(); foreach (var item in getPdtl) { colPdtl.Add(item.Products.ThaiName); } textBoxSearchKey.AutoCompleteCustomSource = colPdtl; foreach (var item in SingletonProduct.Instance().ProductDetails.Where(w => w.Enable).Take(MyConstant.SelectTopRow.Product)) { dataGridView1.Rows.Add(item.Id, item.Code, item.Products.ThaiName, item.ProductUnit.Name, Library.ConvertDecimalToStringForm(item.PackSize), Library.ConvertDecimalToStringForm(item.SellPrice), item.Description); } } textBoxSearchKey.Select(); textBoxSearchKey.SelectAll(); }
public void Singleton_CanConfigureLinksIndependently() { // Arrange ODataModelBuilder builder = GetSingletonModel(); const string ExpectedEditLink = "http://server1/service/Exchange"; const string ExpectedReadLink = "http://server2/service/Exchange"; const string ExpectedIdLink = "http://server3/service/Exchange"; var product = builder.Singleton<SingletonProduct>("Exchange"); product.HasEditLink(c => new Uri("http://server1/service/Exchange"), followsConventions: false); product.HasReadLink(c => new Uri("http://server2/service/Exchange"), followsConventions: false); product.HasIdLink(c => new Uri("http://server3/service/Exchange"), followsConventions: false); var exchange = builder.Singletons.Single(); var model = builder.GetEdmModel(); var productType = model.SchemaElements.OfType<IEdmEntityType>().Single(); var singleton = model.SchemaElements.OfType<IEdmEntityContainer>().Single().FindSingleton("Exchange"); var singletonInstance = new SingletonProduct { ID = 15 }; var serializerContext = new ODataSerializerContext { Model = model, NavigationSource = singleton }; var entityContext = new EntityInstanceContext(serializerContext, productType.AsReference(), singletonInstance); // Act var editLink = exchange.GetEditLink().Factory(entityContext); var readLink = exchange.GetReadLink().Factory(entityContext); var idLink = exchange.GetIdLink().Factory(entityContext); // Assert Assert.NotNull(editLink); Assert.Equal(ExpectedEditLink, editLink.ToString()); Assert.NotNull(readLink); Assert.Equal(ExpectedReadLink, readLink.ToString()); Assert.NotNull(idLink); Assert.Equal(ExpectedIdLink, idLink.ToString()); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e) { try { string code = dataGridView1.Rows[e.RowIndex].Cells[colCode].Value.ToString(); var product = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).FirstOrDefault(w => w.Code == code); var checkQty = dataGridView1.Rows[e.RowIndex].Cells[colQty].Value ?? "0"; decimal qty = decimal.Parse(checkQty.ToString()); switch (e.ColumnIndex) { /// Code case 1: if (product != null) { dataGridView1.Rows[e.RowIndex].Cells[colId].Value = product.Id; dataGridView1.Rows[e.RowIndex].Cells[colName].Value = product.Products.ThaiName; dataGridView1.Rows[e.RowIndex].Cells[colUnit].Value = product.ProductUnit.Name; dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value = Library.ConvertDecimalToStringForm(product.SellPrice); dataGridView1.Rows[e.RowIndex].Cells[colVatType].Value = product.Products.ProductVatType.Name; if (dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value == null) { dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value = "0.00"; } if (qty == 0) { dataGridView1.Rows[e.RowIndex].Cells[colQty].Value = "1"; dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(product.SellPrice); } else { dataGridView1.Rows[e.RowIndex].Cells[colQty].Value = qty; dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(qty * product.SellPrice); } TotalSummary(); } else { //MessageBox.Show("ไม่พบข้อมูล"); } break; case 7: // คีย์ ส่วนลด decimal pricePerUnit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value.ToString()); decimal total = pricePerUnit * qty; decimal discount = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value.ToString()); dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(total - discount); TotalSummary(); break; case 5: // จำนวน if (qty == 0) { dataGridView1.Rows[e.RowIndex].Cells[colQty].Value = "1"; dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(product.SellPrice); } else { dataGridView1.Rows[e.RowIndex].Cells[colQty].Value = qty; dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(qty * product.SellPrice); } /// คีย์จำนวน ต้องไปเชค Stock int id = int.Parse(dataGridView1.Rows[e.RowIndex].Cells[colId].Value.ToString()); decimal qtyUnit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colQty].Value.ToString()); using (SSLsEntities db = new SSLsEntities()) { var stockWms = db.WmsStockDetail.Where(w => w.Enable == true && w.FKProductDetail == id).OrderByDescending(w => w.CreateDate).FirstOrDefault(); Console.WriteLine("row " + e.RowIndex + " Want: " + qtyUnit + " stock: " + stockWms.ResultQtyUnit); if (qtyUnit > stockWms.ResultQtyUnit) { MessageBox.Show("Stock คงเหลือ " + stockWms.ResultQtyUnit); //dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[colQty]; //dataGridView1.CurrentCell.Selected = true; } else { } } TotalSummary(); break; default: break; } } catch (Exception ex) { } }
void Selected(int id) { var product = SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == id); switch (_FromForm) { case "AdjustWasteForm": this.adjustWasteForm.BinddingProduct(id); // adjust ห่้องของเสีย break; case "WasteInOutStockForm": this.wasteInOutStockForm.BinddingProduct(id); // สินค้า แปรรูป break; case "PGoodsForm": this.pGoodsForm.BinddingProduct(id); // สินค้า แปรรูป break; case "MergeProductForm": this.mergeProductForm.BinddingProduct(id, gvNumber); // ย้ายฐานสินค้า break; case "GetGoodsForUseForm": // เบิกใช้เอง this.getGoodsForUseForm.BinddingProductChoose(id); break; case "StoreFrontAdjustForm": // รายงาน this.storeFrontAdjustForm.BinddingProduct(id); break; case "ReportStockCard": // รายงาน this.reportStockCard.BinddingProduct(id); break; case "ProductRawInOut": // รายงาน รับ-จ่าย- คงเหลือ this.productRawInOut.BinddingProduct(id); break; case "LeftInStock": // รายงาน สินค้าคงเหลือ this.leftInStock.BinddingProduct(id); break; case "ManageProductForm": this.manageProductForm.BinddingProduct(id); break; case "SaleOrderWarehouseForm": this.saleOrderWarehouseForm.BinddingSelectedProduct(product); break; case "CampaignDiscountDayForm": this.campaignDiscountDayForm.BinddingSelectedProduct(product); break; case "CampaignFullyQtyAndSaleForm1": // datagrid1 this.campaignFullyQtyAndSaleForm.BinddingSelectedProduct(product); break; case "CampaignFullyQtyAndSaleForm2": // datagrid2 this.campaignFullyQtyAndSaleForm.BinddingSelectedProduct(product, true); break; case "CampiagnFullyQtyAndDiscount": this.campiagnFullyQtyAndDiscount.BinddingSelectedProduct(product); break; case "CampiagnFullyAmountAndSaleForm1": // datagrid1 this.campiagnFullyAmountAndSaleForm.BinddingSelectedProduct(product); break; case "CampiagnFullyAmountAndSaleForm2": // datagrid2 this.campiagnFullyAmountAndSaleForm.BinddingSelectedProduct(product, true); break; case "CampaignFullyAmountAndDisForm": this.campaignFullyAmountAndDisForm.BinddingSelectedProduct(product); break; case "CreatePOForm": this.createPOForm.BinddingProductChoose(id); break; case "CampaignFullyQtyAndGiftForm1": this.campaignFullyQtyAndGiftForm.BinddingGrid1(id); break; case "CampaignFullyQtyAndGiftForm2": this.campaignFullyQtyAndGiftForm.BinddingGrid2(id); break; case "POEditForm": this.pOEditForm.BinddingProductChoose(id); break; case "WmsTransferBranchForm": this.wmsTransferBranchForm.BinddingProductChoose(id); break; case "GoodsReturnWmsForm": this.goodsReturnWmsForm.BinddingProductChoose(id); break; case "StoreFrontAddForm": this.storeFrontAddForm.BinddingProductChoose(id); break; case "SaleOrderWarehouseEditForm": this.saleOrderWarehouseEditForm.BinddingProductChoose(id); break; case "TransferOutForm": this.transferOutForm.BinddingProductChoose(id); break; case "TransferOutEditForm": this.transferOutEditForm.BinddingProductChoose(id); break; case "WasteManageForm": this.wasteManageForm.BinddingProductChoose(id); break; case "WasteWarehouseManageForm": this.wasteWarehouseManageForm.BinddingProductChoose(id); break; case "StockCardListForm": this.stockCardListForm.BinddingProductChoose(id); break; case "CheckStockFront1Form": this.checkStockFront1Form.BinddingProductChoose(id); break; } this.Dispose(); }
private void SaveCommit() { using (SSLsEntities db = new SSLsEntities()) { int count = db.GetGoodsStoreFront.Where(w => w.CreateDate.Year == DateTime.Now.Year && w.CreateDate.Month == DateTime.Now.Month).Count() + 1; string docCode = MyConstant.PrefixForGenerateCode.GetGoodsForUse + Singleton.SingletonThisBudgetYear.Instance().ThisYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(count, 4); GetGoodsStoreFront gg = new GetGoodsStoreFront(); List <GetGoodsStoreFrontDetails> details = new List <GetGoodsStoreFrontDetails>(); GetGoodsStoreFrontDetails detail; gg.Enable = true; gg.Code = docCode; gg.CreateDate = DateTime.Now; gg.CreateBy = Singleton.SingletonAuthen.Instance().Id; gg.UpdateDate = DateTime.Now; gg.UpdateBy = Singleton.SingletonAuthen.Instance().Id; gg.TotalQtyUnit = decimal.Parse(textBoxQtyUnit.Text); gg.TotalBalance = decimal.Parse(textBoxTotalBalance.Text); gg.Description = textBoxDesc.Text; for (int i = 0; i < dataGridView1.Rows.Count; i++) { var code = dataGridView1.Rows[i].Cells[colCode].Value; if (code == null) { continue; } code = code.ToString(); detail = new GetGoodsStoreFrontDetails(); detail.Enable = true; detail.Description = dataGridView1.Rows[i].Cells[colLocation].Value.ToString(); detail.CreateDate = DateTime.Now; detail.CreateBy = Singleton.SingletonAuthen.Instance().Id; detail.UpdateDate = DateTime.Now; detail.UpdateBy = Singleton.SingletonAuthen.Instance().Id; detail.FKProductDetails = int.Parse(dataGridView1.Rows[i].Cells[colId].Value.ToString()); var prodDtl = Singleton.SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == detail.FKProductDetails); detail.Qty = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); detail.CostPerUnit = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString()); detail.SellPricePerUnit = prodDtl.SellPrice; details.Add(detail); gg.GetGoodsStoreFrontDetails.Add(detail); // check product นี้ว่ามีในหน้าร้านหรือไม่ ถ้าไม่มีแสดงว่า ไม่เคยเบิกเติมหน้าร้าน เดี่ยวจะมีปันหา var getTransactionPos = db.StoreFrontStockDetails.FirstOrDefault(w => w.Enable == true && w.FKProductDetails == detail.FKProductDetails); if (getTransactionPos == null) // ถ้าไม่มีตัวตนในหน้าร้าน แปลว่า ของไม่มีการเบิกเติม แต่มีสินค้ายุ่จริง { MessageBox.Show("" + code + " " + prodDtl.Products.ThaiName + "(" + prodDtl.ProductUnit.Name + ") " + "ไม่มีในระบบ ไม่สามารถเบิกใช้ได้ กรุณาติดต่อ admin"); return; } } db.GetGoodsStoreFront.Add(gg); /// add To Transaction int j = 1; foreach (var item in details) { var prodDtl = SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == item.FKProductDetails); StoreFrontStockDetails addDtl = new StoreFrontStockDetails(); addDtl.DocNo = gg.Code; addDtl.DocDtlNumber = j; addDtl.Description = "เบิกหน้าร้าน ใช้เอง"; addDtl.CreateDate = DateTime.Now; addDtl.CreateBy = SingletonAuthen.Instance().Id; addDtl.UpdateDate = DateTime.Now; addDtl.UpdateBy = SingletonAuthen.Instance().Id; addDtl.Enable = true; addDtl.ActionQty = prodDtl.PackSize * item.Qty; // จำนวนหน่วย * pz var stockHD = db.StoreFrontStock.FirstOrDefault(w => w.FKProduct == prodDtl.FKProduct && w.Enable == true); addDtl.FKStoreFrontStock = stockHD.Id; addDtl.FKTransactionType = MyConstant.PosTransaction.GGF; addDtl.Barcode = prodDtl.Code; addDtl.Name = prodDtl.Products.ThaiName; addDtl.FKProductDetails = prodDtl.Id; addDtl.ResultQty = 0; addDtl.PackSize = prodDtl.PackSize; addDtl.DocRefer = "-"; addDtl.DocReferDtlNumber = 0; addDtl.CostOnlyPerUnit = prodDtl.CostOnly; addDtl.SellPricePerUnit = prodDtl.SellPrice; db.StoreFrontStockDetails.Add(addDtl); j++; } db.SaveChanges(); // open paper frmMainReport report = new frmMainReport(this, gg.Code); report.Show(); dataGridView1.Rows.Clear(); dataGridView1.Refresh(); dataGridView1.Rows.Add(1); count = db.GetGoodsStoreFront.Where(w => w.CreateDate.Year == DateTime.Now.Year && w.CreateDate.Month == DateTime.Now.Month).Count() + 1; docCode = MyConstant.PrefixForGenerateCode.GetGoodsForUse + Singleton.SingletonThisBudgetYear.Instance().ThisYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(count, 4); textBoxTOCode.Text = docCode; textBoxTODate.Text = Library.ConvertDateToThaiDate(DateTime.Now); } }
/// <summary> /// ส่ง fk prod dtl มา /// </summary> /// <param name="id"></param> public void BinddingProduct(int id, int gvNumber) { List <ProductDetails> list = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).ToList(); var fkProd = list.FirstOrDefault(w => w.Enable == true && w.Id == id).FKProduct; var getProdDetails = list.Where(w => w.Enable == true && w.FKProduct == fkProd).ToList(); //using (SSLsEntities db = new SSLsEntities()) //{ // var getStock = db.StoreFrontStock.FirstOrDefault(w => w.Enable == true && w.FKProduct == fkProd); // if (getStock) // { // } //} if (gvNumber == 1) // bindding datagrid 1 { fk1 = fkProd; label3.Text = getProdDetails.FirstOrDefault().Products.ThaiName; dataGridView1.Rows.Clear(); dataGridView1.Refresh(); foreach (var item in getProdDetails) { dataGridView1.Rows.Add ( item.Id, item.Code, item.PackSize, item.ProductUnit.Name, item.CostOnly, item.CostAndVat, item.SellPrice ); } qtyLb1.Text = Library.ConvertDecimalToStringForm(Library.GetResult(fkProd, DateTime.Now.AddDays(1))); /// clear grid2 กันพลาดจาก grid1 หลงเข้ามา fk2 = 0; label4.Text = ""; qtyLb2.Text = "0.00"; dataGridView2.Rows.Clear(); dataGridView2.Refresh(); } else { fk2 = fkProd; label4.Text = getProdDetails.FirstOrDefault().Products.ThaiName; dataGridView2.Rows.Clear(); dataGridView2.Refresh(); foreach (var item in getProdDetails) { dataGridView2.Rows.Add ( item.Id, item.Code, item.PackSize, item.ProductUnit.Name, item.CostOnly, item.CostAndVat, item.SellPrice ); } qtyLb2.Text = Library.ConvertDecimalToStringForm(Library.GetResult(fkProd, DateTime.Now.AddDays(1))); } if (fk1 == fk2) { MessageBox.Show("คุณเลือกสินค้าฐานเดียวกัน"); fk2 = 0; label4.Text = "สินค้า 2"; dataGridView2.Rows.Clear(); dataGridView2.Refresh(); return; } }
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { try { string code = dataGridView1.Rows[e.RowIndex].Cells[colCode].Value.ToString(); var product = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).FirstOrDefault(w => w.Code == code); var checkQty = dataGridView1.Rows[e.RowIndex].Cells[colQty].Value ?? "0"; decimal qty = decimal.Parse(checkQty.ToString()); int col = dataGridView1.CurrentCell.ColumnIndex; int row = dataGridView1.CurrentRow.Index; if (col == colCode) { if (product != null) { dataGridView1.Rows[e.RowIndex].Cells[colId].Value = product.Id; dataGridView1.Rows[e.RowIndex].Cells[colName].Value = product.Products.ThaiName; dataGridView1.Rows[e.RowIndex].Cells[colUnit].Value = product.ProductUnit.Name; dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value = Library.ConvertDecimalToStringForm(product.SellPrice); dataGridView1.Rows[e.RowIndex].Cells[colVatType].Value = product.Products.ProductVatType.Name; if (dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value == null) { dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value = "0.00"; } if (qty == 0) { dataGridView1.Rows[e.RowIndex].Cells[colQty].Value = "0"; dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = "0"; } else { dataGridView1.Rows[e.RowIndex].Cells[colQty].Value = qty; dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(qty * product.SellPrice); } TotalSummary(); } else { MessageBox.Show("ไม่พบข้อมูล"); dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[colCode]; dataGridView1.BeginEdit(true); } dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colQty]; dataGridView1.BeginEdit(true); } else if (col == colQty) { decimal pricePerunit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value.ToString()); decimal total = qty * pricePerunit; if (qty == 0) { dataGridView1.Rows[e.RowIndex].Cells[colQty].Value = "1"; dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(product.SellPrice); } else { dataGridView1.Rows[e.RowIndex].Cells[colQty].Value = qty; dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(qty * pricePerunit); } /// คีย์จำนวน ต้องไปเชค Stock int id = int.Parse(dataGridView1.Rows[e.RowIndex].Cells[colId].Value.ToString()); decimal qtyUnit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colQty].Value.ToString()); using (WH_TRATEntities db = new WH_TRATEntities()) { var locStk = db.WH_LOCSTK.Where(w => w.PRODUCT_NO == code); if (locStk.Count() > 0) { decimal sumQty = ConvertDecimalNull(locStk.Sum(w => w.QTY)); decimal sumbook = ConvertDecimalNull(locStk.Sum(w => w.BOOK_QTY)); decimal packsize = ConvertDecimalNull(locStk.FirstOrDefault().PACK_SIZE); if (qty > ((sumQty - sumbook) / packsize)) { MessageBox.Show("Stock ไม่พอ พบ : " + ((sumQty - sumbook) / packsize) + " " + product.ProductUnit.Name); TotalSummary(); dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colQty]; dataGridView1.BeginEdit(true); return; } } else { MessageBox.Show("ไม่พบ Stock"); dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colCode]; dataGridView1.BeginEdit(true); return; } //var stockWms = db.WmsStockDetail.Where(w => w.Enable == true && w.FKProductDetail == id).OrderByDescending(w => w.CreateDate).FirstOrDefault(); //Console.WriteLine("row " + e.RowIndex + " Want: " + qtyUnit + " stock: " + stockWms.ResultQtyUnit); //if (qtyUnit > stockWms.ResultQtyUnit) //{ // MessageBox.Show("Stock คงเหลือ " + stockWms.ResultQtyUnit); // //dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[colQty]; // //dataGridView1.CurrentCell.Selected = true; //} //else //{ //} } TotalSummary(); dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colPricePerUnit]; dataGridView1.BeginEdit(true); } else if (col == colPricePerUnit) { // calculate toal decimal pricePerunit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value.ToString()); decimal total = qty * pricePerunit; dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(total); dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colDiscount]; dataGridView1.BeginEdit(true); } else if (col == colDiscount) { //decimal total = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value.ToString()); decimal pricePerUnit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value.ToString()); decimal total = pricePerUnit * qty; decimal discount = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value.ToString()); dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(total - discount); TotalSummary(); if (row == dataGridView1.RowCount - 1) { dataGridView1.Rows.Add(1); dataGridView1.CurrentCell = dataGridView1.Rows[row + 1].Cells[1]; dataGridView1.BeginEdit(true); } else { dataGridView1.CurrentCell = dataGridView1.Rows[row + 1].Cells[colDiscount]; dataGridView1.BeginEdit(true); } } } catch (Exception) { } }
private void SaveCommit() { using (SSLsEntities db = new SSLsEntities()) { List <ProductDetails> list = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).ToList(); var getProdDetails = list.Where(w => w.Enable == true && w.FKProduct == fk2).ToList(); List <int> disId = new List <int>(); // ต้องมี pz 1 ยุ่ในฐาน if (dataGridView1.Rows.Count > 0) { bool checkPz1 = false; for (int i = 0; i < dataGridView1.Rows.Count; i++) { decimal pz = decimal.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString()); if (pz == 1) { checkPz1 = true; } } if (!checkPz1) // not allow { MessageBox.Show("ต้องเหลือ packsize 1 ไว้"); return; } } for (int i = 0; i < dataGridView2.Rows.Count; i++) { int id = int.Parse(dataGridView2.Rows[i].Cells[0].Value.ToString()); string code = dataGridView2.Rows[i].Cells[1].Value.ToString(); decimal pz = decimal.Parse(dataGridView2.Rows[i].Cells[2].Value.ToString()); decimal costOnly = decimal.Parse(dataGridView2.Rows[i].Cells[4].Value.ToString()); // id check new if (getProdDetails.SingleOrDefault(w => w.Id == id) != null) { continue; } else { // add new var oldProd = list.FirstOrDefault(w => w.Enable == true && w.Id == id); ProductDetails details = new ProductDetails(); details.Code = code; details.Name = "-"; details.Description = "ย้ายฐานจาก : " + fk1; details.PackSize = pz; details.CostOnly = costOnly; details.CostAndVat = oldProd.CostAndVat; details.CostVat = oldProd.CostVat; details.IsPrintLabel = oldProd.IsPrintLabel; details.SellPrice = oldProd.SellPrice; details.FKProduct = fk2; details.FKUnit = oldProd.FKUnit; details.SpecialQtyPiece = oldProd.SpecialQtyPiece; details.SetPallet = oldProd.SetPallet; details.PalletRow = oldProd.PalletRow; details.PalletLevel = oldProd.PalletLevel; details.PalletTotal = oldProd.PalletTotal; details.CreateDate = DateTime.Now; details.CreateBy = SingletonAuthen.Instance().Id; details.UpdateDate = DateTime.Now; details.UpdateBy = SingletonAuthen.Instance().Id; details.Enable = true; db.ProductDetails.Add(details); // disable old var getOld = db.ProductDetails.SingleOrDefault(w => w.Id == id); getOld.Enable = false; getOld.Description = "ถูกย้ายไป : " + fk2; db.Entry(getOld).State = EntityState.Modified; } } // check การย้ายฐาน if (dataGridView1.Rows.Count == 0) { // แปลว่ามีการย้ายทั้งฐาน ต้อง เพิ่ม transactions decimal getResultProduct1 = decimal.Parse(qtyLb1.Text); if (getResultProduct1 < 0) { // add transactions getResultProduct1 = Math.Abs(getResultProduct1); } else if (getResultProduct1 > 0) // พบสินค้าหน้าร้าน ห้ามย้ายฐานทั้งหมด { MessageBox.Show("ไม่สามารถย้ายฐานทั้งหมดได้ ยังมีสินค้าค้างอยู่หน้าร้าน"); return; } } else { } //db.SaveChanges(); } this.Dispose(); }
private void textBoxSearchKey_KeyUp(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.Enter: string key = textBoxSearchKey.Text.Trim(); var result = new List <ProductDetails>(); if (radioButtonCode.Checked) { // ถ้าหาด้วย code var getFirst = Singleton.SingletonProduct.Instance().ProductDetails.FirstOrDefault(w => w.Code == key && w.Enable == true && w.Products.IsProcessingGoods == true); if (getFirst != null) { result = SingletonProduct.Instance().ProductDetails.Where(w => w.FKProduct == getFirst.FKProduct && w.Enable == true && w.Products.IsProcessingGoods == true).Take(MyConstant.SelectTopRow.Product).ToList(); } else { result = SingletonProduct.Instance().ProductDetails.Where(w => w.Code.Contains(key) && w.Enable == true && w.Products.IsProcessingGoods == true).Take(MyConstant.SelectTopRow.Product).ToList(); } } else { string[] words = key.Split(' '); // ถ้าหาด้วยชื่อ //result = SingletonProduct.Instance().ProductDetails.Where(w => w.Products.ThaiName.Contains(key) && w.Enable == true).ToList(); switch (words.Count()) { case 1: result = SingletonProduct.Instance().ProductDetails .Where(w => w.Products.ThaiName.Contains(words[0]) && w.Enable == true && w.Products.IsProcessingGoods == true).Take(MyConstant.SelectTopRow.Product).ToList(); break; case 2: result = SingletonProduct.Instance().ProductDetails .Where(w => w.Products.ThaiName.Contains(words[0]) && w.Products.ThaiName.Contains(words[1]) && w.Enable == true && w.Products.IsProcessingGoods == true).ToList(); break; case 3: result = SingletonProduct.Instance().ProductDetails .Where(w => w.Products.ThaiName.Contains(words[0]) && w.Products.ThaiName.Contains(words[1]) && w.Products.ThaiName.Contains(words[2]) && w.Enable == true && w.Products.IsProcessingGoods == true).ToList(); break; case 4: result = SingletonProduct.Instance().ProductDetails .Where(w => w.Products.ThaiName.Contains(words[0]) && w.Products.ThaiName.Contains(words[1]) && w.Products.ThaiName.Contains(words[2]) && w.Products.ThaiName.Contains(words[3]) && w.Enable == true && w.Products.IsProcessingGoods == true).ToList(); break; case 5: result = SingletonProduct.Instance().ProductDetails .Where(w => w.Products.ThaiName.Contains(words[0]) && w.Products.ThaiName.Contains(words[1]) && w.Products.ThaiName.Contains(words[2]) && w.Products.ThaiName.Contains(words[3]) && w.Products.ThaiName.Contains(words[4]) && w.Enable == true && w.Products.IsProcessingGoods == true).ToList(); break; default: break; } } dataGridView1.Rows.Clear(); dataGridView1.Refresh(); foreach (var item in result) { dataGridView1.Rows.Add(item.Id, item.Code, item.Products.ThaiName, item.ProductUnit.Name, Library.ConvertDecimalToStringForm(item.PackSize), Library.ConvertDecimalToStringForm(item.SellPrice), item.Description); } break; default: break; } }
/// <summary> /// เปลี่ยนแปลงค่าใน Grid1 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e) { try { List<ProductDetails> products = new List<ProductDetails>(); products = SingletonProduct.Instance().ProductDetails; decimal costCal = 0; if (e.ColumnIndex == 0 || e.ColumnIndex == 1 || e.ColumnIndex == 2) { } else if (e.ColumnIndex == colQty) { var pNo = dataGridView1.Rows[e.RowIndex].Cells[colNo].Value.ToString(); var p = products.FirstOrDefault(w => w.Code == pNo); decimal qty = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colQty].Value.ToString()); //dataGridView1.Rows[e.RowIndex].Cells[colCostPerUnit].Value = Library.ConvertDecimalToStringForm(p.CostOnly * qty); // ทุนเปล่า //dataGridView1.Rows[e.RowIndex].Cells[colCostVatPerUnit].Value = Library.ConvertDecimalToStringForm(p.CostAndVat * qty); // ทุนรวมภาษี costCal = 0; if (_poCostType == MyConstant.POCostType.CostAndVat) { costCal = p.CostAndVat; } else if (_poCostType == MyConstant.POCostType.CostOnly) { costCal = p.CostOnly; } else { costCal = p.CostOnly; } dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value = "0.00"; dataGridView1.Rows[e.RowIndex].Cells[colDiscountBath].Value = "0.00"; // ส่วนลดเมื่อแปลงเป็นเงิน จาก บ หรือ % dataGridView1.Rows[e.RowIndex].Cells[colTotalBalance].Value = Library.ConvertDecimalToStringForm(costCal * qty); // ราคาสุทธิ RefreshConclude(); } else if (e.ColumnIndex == colDiscount) // ถ้าคีย์ และะออกจากช่อง ส่วนลด { string discountTxt = dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value.ToString(); string[] subString = Library.GetCheckBathOrPercent(discountTxt); decimal discountBath = 0; //decimal costOnly = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colCostPerUnit].Value.ToString()); var pNo = dataGridView1.Rows[e.RowIndex].Cells[colNo].Value.ToString(); var p = Singleton.SingletonProduct.Instance().ProductDetails.FirstOrDefault(w => w.Code == pNo); if (_poCostType == MyConstant.POCostType.CostAndVat) // ทุนรวมภาษี { costCal = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colCostVatPerUnit].Value.ToString()); } else if (_poCostType == MyConstant.POCostType.CostOnly) // ทุนเปล่า { costCal = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colCostPerUnit].Value.ToString()); } //else //{ // costCal = p.CostOnly; //} /// คำนวนส่วนลด decimal qty = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colQty].Value.ToString()); // จำนวน if (subString[1] == "บ") // ต้องการลดเป็น บาท { discountBath = decimal.Parse(subString[0]); } else if (subString[1] == "") // ต้องการลด % { decimal percent = decimal.Parse(subString[0]); if (percent > 99) MessageBox.Show("ส่วนลด " + percent + " % คุณแน่ใจหรือไม่ ?"); discountBath = Library.CalPercentByValue(costCal * qty, decimal.Parse(subString[0])); } dataGridView1.Rows[e.RowIndex].Cells[colDiscountBath].Value = Library.ConvertDecimalToStringForm(discountBath); // ส่วนลดเมื่อแปลงเป็นเงิน จาก บ หรือ % dataGridView1.Rows[e.RowIndex].Cells[colTotalBalance].Value = Library.ConvertDecimalToStringForm(qty * costCal - discountBath); // total balance RefreshConclude(); } else { RefreshConclude(); } } catch (Exception ex) { } }