/// <summary> /// ปิดสถานะ จะปิดได้ ต้อง enable == true และต้องมีการรับเข้า > 0% /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button5_Click(object sender, EventArgs e) { SSLsEntities db = new SSLsEntities(); WH_TRATEntities wh = new WH_TRATEntities(); try { int currentRow = dataGridView1.CurrentRow.Index; int currentId = int.Parse(dataGridView1.Rows[currentRow].Cells[0].Value.ToString()); var data = db.POHeader.SingleOrDefault(w => w.Id == currentId); if (data.Enable == false) { MessageBox.Show("PO นี้ยกเลิกไปแล้ว"); } else if (data.FKPOStatus == MyConstant.POStatus.RCVComplete || data.FKPOStatus == MyConstant.POStatus.RCVNotComplete_ButEnd) { MessageBox.Show("PO นี้ ปิดสถานะแล้ว"); } else if (data.FKPOStatus == MyConstant.POStatus.NotRCV) { MessageBox.Show("PO นี้ ไม่เคยรับเข้ามาก่อน ไม่สามารถปิดได้"); } else { // DialogResult dr = MessageBox.Show("คุณต้องการบันทึกข้อมูล ใช่หรือไม่ ?", "คำเตือนจากระบบ", MessageBoxButtons.YesNo); switch (dr) { case DialogResult.Yes: data.UpdateDate = DateTime.Now; data.UpdateBy = Singleton.SingletonAuthen.Instance().Id; data.FKPOStatus = MyConstant.POStatus.RCVNotComplete_ButEnd; db.Entry(data).State = EntityState.Modified; var poOrder = wh.PS_PO_ORDER.FirstOrDefault(w => w.ENABLE == true && w.PO_NO == data.PONo); poOrder.CONFIRMRCV = DateTime.Now; wh.Entry(poOrder).State = EntityState.Modified; wh.SaveChanges(); db.SaveChanges(); Search(); break; case DialogResult.No: break; } } } catch (Exception ex) { MessageBox.Show("พบข้อผิดพลาด ในการเลือกรายการ"); } finally { db.Dispose(); wh.Dispose(); } }
private void WasteWarehouseManageLocationList_Load(object sender, EventArgs e) { // ตรวจสอบ stock warehouse ในระบบเก่า using (WH_TRATEntities db = new WH_TRATEntities()) { var locstk = db.WH_LOCSTK.Where(w => w.PRODUCT_NO == product.Code).ToList(); foreach (var item in locstk) { decimal qty = ConvertDecimalNull(item.QTY) / ConvertDecimalNull(item.PACK_SIZE); decimal bookRaw = ConvertDecimalNull(item.BOOK_QTY); decimal book = bookRaw / ConvertDecimalNull(item.PACK_SIZE); decimal allow = (ConvertDecimalNull(item.QTY) - ConvertDecimalNull(item.BOOK_QTY)) / ConvertDecimalNull(item.PACK_SIZE); dataGridView1.Rows.Add ( item.LOCATION_NO, item.DOOR_NO, Library.ConvertDecimalToStringForm(qty), Library.ConvertDecimalToStringForm(book), Library.ConvertDecimalToStringForm(allow), 0, item.ROWID ); } // if (locstk != null) // { // decimal qtyLoc = 0; // decimal bookqtyLoc = 0; // if (locstk.QTY != null) // { // qtyLoc = (decimal)locstk.QTY; // } // if (locstk.BOOK_QTY != null) // { // bookqtyLoc = (decimal)locstk.BOOK_QTY; // } // if ((qtyLoc - bookqtyLoc) <= 0) // { // MessageBox.Show("ไม่มีสินค้าคงเหลือ"); // } // } // else // { // MessageBox.Show("ไม่มีสินค้าคงเหลือ"); // } //} //else //{ // MessageBox.Show("ไม่พบรหัสบาร์โค้ด"); //} } }
private void SaveCommit() { try { WarehouseToWaste wt = new WarehouseToWaste(); wt.Enable = true; wt.Description = textBoxRemark.Text; wt.CreateDate = DateTime.Now; wt.CreateBy = Singleton.SingletonAuthen.Instance().Id; wt.UpdateDate = DateTime.Now; wt.UpdateBy = Singleton.SingletonAuthen.Instance().Id; wt.DocNo = textBoxCode.Text; wt.FKWarehouse = _WarehouseId; if (_WasteReason == 0) { MessageBox.Show("กรุณาเลือกเหตุผล"); return; } wt.FKWasteReason = _WasteReason; List <WarehouseToWasteDetails> details = new List <WarehouseToWasteDetails>(); WarehouseToWasteDetails d; using (WH_TRATEntities whEN = new WH_TRATEntities()) { for (int i = 0; i < dataGridView1.Rows.Count; i++) { var code = dataGridView1.Rows[i].Cells[colCode].Value; if (code == null) { continue; } d = new WarehouseToWasteDetails(); d.Enable = true; d.Description = textBoxRemark.Text; d.CreateDate = DateTime.Now; d.CreateBy = Singleton.SingletonAuthen.Instance().Id; d.UpdateDate = DateTime.Now; d.UpdateBy = Singleton.SingletonAuthen.Instance().Id; d.FKProductDetails = int.Parse(dataGridView1.Rows[i].Cells[colId].Value.ToString()); d.QtyUnit = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); d.Packsize = decimal.Parse(dataGridView1.Rows[i].Cells[colPZ].Value.ToString()); d.PricePerUnit = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString()); decimal qty = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); decimal cost = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString()); decimal sum = qty * cost; Console.WriteLine(sum); int locId = int.Parse(dataGridView1.Rows[i].Cells[colLocation + 1].Value.ToString()); WH_LOCSTK locStk = whEN.WH_LOCSTK.FirstOrDefault(w => w.ROWID == locId); d.Location = locStk.LOCATION_NO; details.Add(d); locStk.UPDATE_DATE = DateTime.Now; locStk.QTY = locStk.QTY - ((float)qty * (float)locStk.PACK_SIZE); if (locStk.QTY <= 0) { // ลบ row ทิ้ง whEN.WH_LOCSTK.Remove(locStk); whEN.SaveChanges(); // check WH_LOCSTK เพื่อ set book flag master var locationList = whEN.WH_LOCSTK.Where(w => w.LOCATION_NO == locStk.LOCATION_NO && (w.QTY > 0 || w.BOOK_QTY > 0)).ToList(); if (locationList.Count() > 0) // ถ้าบ้านนี้ ยัง { // not set } else { // set book flag // ต้องไปอัพเดท location mast ให้ book flag = null //var locationMast = whEN.WH_LOCATION_MAST.SingleOrDefault(w => w.LOCATION_NO == locStk.LOCATION_NO); //locationMast.BOOK_FLAG = null; //whEN.Entry(locationMast).State = EntityState.Modified; //whEN.SaveChanges(); whEN.Database.ExecuteSqlCommand("UPDATE dbo.WH_LOCATION_MAST SET BOOK_FLAG = NULL WHERE LOCATION_NO = '" + locStk.LOCATION_NO + "'"); } } else { whEN.Entry(locStk).State = EntityState.Modified; whEN.SaveChanges(); } } } wt.WarehouseToWasteDetails = details; using (SSLsEntities db = new SSLsEntities()) { db.WarehouseToWaste.Add(wt); db.SaveChanges(); //reset form dataGridView1.Rows.Clear(); dataGridView1.Refresh(); int count = db.WarehouseToWaste.Where(w => w.CreateDate.Year == DateTime.Now.Year && w.CreateDate.Month == DateTime.Now.Month).Count() + 1; string code = MyConstant.PrefixForGenerateCode.WHToWaste + Singleton.SingletonThisBudgetYear.Instance().ThisYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(count, 4); textBoxCode.Text = code; textBoxDate.Text = Library.ConvertDateToThaiDate(DateTime.Now); textBoxTotalBalance.Text = "0.00"; textBoxTotalQty.Text = "0.00"; // Update Stock Wms //Library.MakeValueForUpdateStockWms(details); // + ห้องของเสีย // Initisl waste warehouse ก่อน List <int> fkProDtl = details.Select(w => w.FKProductDetails).Distinct().ToList <int>(); List <int> fkPro = Singleton.SingletonProduct.Instance().ProductDetails.Where(w => fkProDtl.Contains(w.Id)).Select(w => w.FKProduct).Distinct().ToList <int>(); List <WasteWarehouse> wss = new List <WasteWarehouse>(); foreach (var item in fkPro) { var data = db.WasteWarehouse.FirstOrDefault(w => w.FKProduct == item && w.Enable == true); if (data == null) { WasteWarehouse ws = new WasteWarehouse(); ws.FKProduct = item; ws.FKWarehouse = MyConstant.WareHouse.WasteWarehouse; ws.QtyPiece = 0; ws.QtyUnit = 0; ws.Description = "Auto Detect"; ws.Enable = true; ws.CreateDate = DateTime.Now; ws.CreateBy = Singleton.SingletonAuthen.Instance().Id; ws.UpdateDate = DateTime.Now; ws.UpdateBy = Singleton.SingletonAuthen.Instance().Id; wss.Add(ws); } } db.WasteWarehouse.AddRange(wss); db.SaveChanges(); Library.AddWasteWarehouse(details, wt.DocNo); /// ต้องไปตัด stock ระบบจารกอต โดยใช้ บาร์โค้ด dataGridView1.Rows.Add(1); textBoxRemark.Text = ""; textBoxRemark.Select(); } } catch (Exception ex) { MessageBox.Show("พบข้อผิดพลาด " + ex.ToString()); } }
private void button2_Click(object sender, EventArgs e) { using (SSLsEntities db = new SSLsEntities()) { if (_Id == 0) { // add new Vendor obj = new Vendor(); obj.Code = textBoxCode.Text; obj.Name = textBoxName.Text; obj.Address = textBoxAddress.Text; obj.Tel = textBoxTel.Text; obj.Fax = textBoxFax.Text; obj.TaxNo = textBoxTax.Text.Trim(); obj.Description = textBoxDesc.Text; obj.CreateDate = DateTime.Now; obj.CreateBy = Singleton.SingletonAuthen.Instance().Id; obj.Enable = true; obj.UpdateBy = Singleton.SingletonAuthen.Instance().Id; obj.UpdateDate = DateTime.Now; if (radioButtonCostOnly.Checked == true) { obj.FKPOCostType = MyConstant.POCostType.CostOnly; } else { obj.FKPOCostType = MyConstant.POCostType.CostAndVat; } db.Vendor.Add(obj); var vendorsOnSingleton = Singleton.SingletonVender.Instance().Vendors; if (vendorsOnSingleton.FirstOrDefault(w => w.Code == obj.Code) != null) // ถ้า code นี้ เคยมีแล้ว { MessageBox.Show("รหัสซ้ำบนระบบใหม่ (pos.Vendor) " + vendorsOnSingleton.FirstOrDefault(w => w.Code == obj.Code).Name); return; } // add to wh customer and brand using (WH_TRATEntities wh = new WH_TRATEntities()) { var getCust = wh.WH_CUSTOMER_MAST.FirstOrDefault(w => (w.CUSTOMER_NO + "") == obj.Code); if (getCust != null) // แปลว่าซ้ำยุ่ในระบบเก่า { MessageBox.Show("รหัสซ้ำบนระบบเก่า (dbo.WH_CUSTOMER_MAST) " + getCust.CUSTOMER_NAME); return; } // check in brand var getBrand = wh.WH_BRAND_MAST.FirstOrDefault(w => (w.BRAND_NO + "") == obj.Code); if (getBrand != null) // ซ้ำ ยี่ห้อในระบบเก่า { MessageBox.Show("รหัสซ้ำบนระบบเก่า (dbo.WH_BRAND_MAST) " + getBrand.BRAND_NAME); return; } // pass customer and brand to add 2 table WH_CUSTOMER_MAST customer = new WH_CUSTOMER_MAST(); customer.CUSTOMER_NO = int.Parse(obj.Code); customer.CUSTOMER_NAME = obj.Name; customer.CUSTOMER_BRANCH = "-"; customer.CUSTOMER_TAXID = obj.TaxNo; customer.CUSTOMER_ADDRESS = obj.Address; customer.CUSTOMER_PROVINCE = ""; customer.CUSTOMER_POSTNO = null; customer.CUSTOMER_PHONE = obj.Tel; customer.CUSTOMER_FAX = obj.Fax; customer.CUSTOMER_EMAIL = ""; customer.CREATE_DATE = DateTime.Now; customer.UPDATE_DATE = null; customer.USER_ID = obj.CreateBy; wh.WH_CUSTOMER_MAST.Add(customer); // brand WH_BRAND_MAST brand = new WH_BRAND_MAST(); brand.BRAND_NO = int.Parse(obj.Code); brand.BRAND_NAME = obj.Name; brand.CREATE_DATE = DateTime.Now; brand.UPDATE_DATE = null; brand.USER_ID = obj.CreateBy; wh.WH_BRAND_MAST.Add(brand); wh.SaveChanges(); } db.SaveChanges(); } else { // edit var obj = db.Vendor.SingleOrDefault(w => w.Id == _Id); var vendorSingle = Singleton.SingletonVender.Instance().Vendors.SingleOrDefault(w => w.Id == _Id); Singleton.SingletonVender.Instance().Vendors.Remove(vendorSingle); obj.UpdateDate = DateTime.Now; obj.UpdateBy = Singleton.SingletonAuthen.Instance().Id; //obj.Code = textBoxCode.Text; obj.Name = textBoxName.Text; obj.Address = textBoxAddress.Text; obj.Tel = textBoxTel.Text; obj.Fax = textBoxFax.Text; obj.Description = textBoxDesc.Text; if (radioButton1.Checked) { obj.Enable = true; } else { obj.Enable = false; } if (radioButtonCostOnly.Checked == true) { obj.FKPOCostType = MyConstant.POCostType.CostOnly; } else { obj.FKPOCostType = MyConstant.POCostType.CostAndVat; } db.Entry(obj).State = EntityState.Modified; } db.SaveChanges(); string user = Singleton.SingletonAuthen.Instance().Id; var v = db.Vendor.Include("POCostType").OrderByDescending(w => w.UpdateDate).Where(w => w.UpdateBy == user).FirstOrDefault(); Singleton.SingletonVender.Instance().Vendors.Add(v); dataGrid(); //this.Dispose(); //_Id = 0; } }
private void button2_Click(object sender, EventArgs e) { using (SSLsEntities db = new SSLsEntities()) { if (_Id == 0) { // add new ProductBrands obj = new ProductBrands(); obj.Code = textBoxCode.Text; obj.Name = textBoxName.Text; obj.Description = textBoxDesc.Text; obj.CreateDate = DateTime.Now; obj.CreateBy = Singleton.SingletonAuthen.Instance().Id; obj.Enable = true; obj.UpdateBy = Singleton.SingletonAuthen.Instance().Id; obj.UpdateDate = DateTime.Now; db.ProductBrands.Add(obj); //add to wh using (WH_TRATEntities wh = new WH_TRATEntities()) { var getBrand = wh.WH_BRAND_MAST.FirstOrDefault(w => (w.BRAND_NO + "") == obj.Code); if (getBrand == null) { // add now WH_BRAND_MAST brand = new WH_BRAND_MAST(); brand.BRAND_NAME = obj.Name; brand.BRAND_NO = int.Parse(obj.Code); brand.CREATE_DATE = DateTime.Now; brand.USER_ID = obj.UpdateBy; wh.WH_BRAND_MAST.Add(brand); wh.SaveChanges(); } else { // not add } } } else { // edit var obj = db.ProductBrands.SingleOrDefault(w => w.Id == _Id); obj.UpdateDate = DateTime.Now; obj.UpdateBy = Singleton.SingletonAuthen.Instance().Id; //obj.Code = textBoxCode.Text; obj.Name = textBoxName.Text; obj.Description = textBoxDesc.Text; if (radioButton1.Checked) { obj.Enable = true; } else { obj.Enable = false; } db.Entry(obj).State = EntityState.Modified; } db.SaveChanges(); Singleton.SingletonPriority1.SetInstance(); //Singleton.SingletonPriority1.Instance(); dataGrid(); //this.Dispose(); //_Id = 0; } }
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) { } }