private void SaleOrderWarehouseListForm_Load(object sender, EventArgs e) { using (SSLsEntities db = new SSLsEntities()) { this._pc = PhysicalAddressPOS.ShowNetworkInterfaces(); var b = SingletonAuthen.Instance().MyBranch.Id; var pcs = db.PosMachine.Where(w => w.Enable == true && w.FKBranch == b).ToList(); //var checkPC = pcs.FirstOrDefault(w => w.EthernetPhysicalAddress == pc.EthernetAddress || w.WirelessPhysicalAddress == pc.WirelessAddress && w.Enable == true && w.FKBranch == b); var checkPC = pcs.FirstOrDefault(w => w.ComputerName == _pc.ComputerName && w.Enable == true && w.FKBranch == b); if (checkPC != null) { // แสดงว่า เครื่อง เคยบันทึกการตั้งค่าแล้ว _posMachine = checkPC; } else { MessageBox.Show("ไม่พบการตั้งค่าหมายเลขเครื่อง กรุณาติดต่อ Admin"); } } DataGridViewCheckBoxColumn ColumnCheckBox = new DataGridViewCheckBoxColumn(); ColumnCheckBox.Width = width_columcheckbox; ColumnCheckBox.DataPropertyName = "Select"; //dataGridView1.Columns.Add(ColumnCheckBox); Rectangle rect = dataGridView1.GetCellDisplayRectangle(colCheckAll, -1, true); ckBox.Size = new Size(14, 14); rect.X = rect.Location.X + (rect.Width / 2) - (ckBox.Width / 2); rect.Y += 3; ckBox.Location = rect.Location; this.ckBox.CheckedChanged += new EventHandler(this.ckBox_CheckedChanged); dataGridView1.Controls.Add(ckBox); dataGridView1.Columns[colCheckAll].Frozen = false; LoadGrid(); }
private void Form1_Load(object sender, EventArgs e) { System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); toolStripStatusLabel2.Text = "ผู้ใช้งาน : " + SingletonAuthen.Instance().Name + " |"; //เวลาเข้าใช้งาน: 23.00 น. | toolStripStatusLabel1.Text = "เข้าใช้เมื่อ: " + Library.ConvertDateToThaiDate(DateTime.Now, true) + " น. |"; using (SSLsEntities db = new SSLsEntities()) { //toolStripStatusLabel5.Text = db.Database.Connection.ConnectionString; System.Data.SqlClient.SqlConnectionStringBuilder connBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder(); connBuilder.ConnectionString = db.Database.Connection.ConnectionString; string server = connBuilder.DataSource; toolStripStatusLabel5.Text = "| SERVER: " + server;//-> this gives you the Server name. string database = connBuilder.InitialCatalog; } System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location); string version = fvi.FileVersion; LibraryUI.AddNewMenuAndDisable(menuStrip1); try { toolStripStatusVersion.Text = "Version Name : " + ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString() + " |"; } catch { } //CheckPromorionstop(); //int[] values = { 85, 30, 45, 96, 20, 0, 74, 60, 45, 101 }; }
private void button4_Click(object sender, EventArgs e) { try { DialogResult dialogResult = MessageBox.Show("ยืนยันทำรายการใช่หรือไม่", "Some Title", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { using (SSLsEntities db = new SSLsEntities()) { var data = db.Member.Where(w => w.Id == RowId & w.Enable == true & w.ResignDate != null).FirstOrDefault(); if (data != null) { data.UpdateDate = Library.DateTimeServer(); data.UpdateBy = SingletonAuthen.Instance().Id; data.ResignDate = dateTimePicker1.Value; db.SaveChanges(); } } Singleton.SingletonMember.SetInstance(); MessageBox.Show("Complete", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void SaveCommit() { using (SSLsEntities db = new SSLsEntities()) { PriceSchedule ps = new PriceSchedule(); 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 proCodeGen = SingletonThisBudgetYear.Instance().ThisYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(pro, 3); ps.Code = proCodeGen; ps.Enable = true; ps.Name = textBoxProName.Text; ps.Description = textBoxRemark.Text; ps.CreateDate = DateTime.Now; ps.CreateBy = SingletonAuthen.Instance().Id; ps.UpdateDate = DateTime.Now; ps.UpdateBy = SingletonAuthen.Instance().Id; ps.FKCampaign = MyConstant.CampaignType.FullyAmountAndDiscount; // dd/MM/yyyy string[] date = dateTimePickerStart.Text.Split('/'); ps.StartDate = Library.ConvertDateTime(date[0], date[1], date[2]); //ps.StartDate = DateTime.Parse(dateTimePickerStart.Text); date = dateTimePickerEnd.Text.Split('/'); ps.EndDate = Library.ConvertDateTime(date[0], date[1], date[2]); //ps.EndDate = DateTime.Parse(dateTimePickerEnd.Text); ps.Limited = 0; ps.Notice = textBoxProNotice.Text; ps.FullPrice = decimal.Parse(textBoxProAmount.Text); ps.FullQty = 0; ps.Discount = decimal.Parse(textBoxProDiscount.Text); ps.IsStop = false; List <SellingPrice> details = new List <SellingPrice>(); for (int i = 0; i < dataGridView1.Rows.Count; i++) { details.Add(new SellingPrice() { CreateBy = SingletonAuthen.Instance().Id, CreateDate = DateTime.Now, Description = dataGridView1.Rows[i].Cells[colRemark].Value.ToString(), Enable = true, FKProduct = int.Parse(dataGridView1.Rows[i].Cells[colId].Value.ToString()), GetCurrentPrice = decimal.Parse(dataGridView1.Rows[i].Cells[colCurrentPrice].Value.ToString()), Name = textBoxProName.Text, SpecialPrice = 0, UpdateDate = DateTime.Now, UpdateBy = SingletonAuthen.Instance().Id }); if (i >= dataGridView1.Rows.Count - 2) { break; } } ps.SellingPrice = details; db.PriceSchedule.Add(ps); db.SaveChanges(); } // reset all ResetForm(); }
/// <summary> /// บันทึกการแก้ไข โดยไล่ Disable ตัวเดิมทิ้งให้หมด แล้ว add ใหม่ /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button6_Click(object sender, EventArgs e) { DialogResult dr = MessageBox.Show("คุณต้องการบันทึกข้อมูล ใช่หรือไม่ ?", "คำเตือนจากระบบ", MessageBoxButtons.YesNo); switch (dr) { case DialogResult.Yes: using (SSLsEntities db = new SSLsEntities()) { var order = db.SaleOrderWarehouse.SingleOrDefault(w => w.Code == code); foreach (var item in order.SaleOrderWarehouseDtl.Where(w => w.Enable == true).ToList()) { item.UpdateDate = DateTime.Now; item.UpdateBy = SingletonAuthen.Instance().Id; item.Enable = false; db.Entry(item).State = EntityState.Modified; } List <SaleOrderWarehouseDtl> details = new List <SaleOrderWarehouseDtl>(); SaleOrderWarehouseDtl detail; decimal discountList = 0; for (int i = 0; i < dataGridView1.Rows.Count; i++) { detail = new SaleOrderWarehouseDtl(); detail.FKSaleOrderWarehouse = order.Id; detail.Enable = true; detail.Description = dataGridView1.Rows[i].Cells[colRemark].Value.ToString(); detail.CreateDate = DateTime.Now; detail.CreateBy = SingletonAuthen.Instance().Id; detail.UpdateDate = DateTime.Now; detail.UpdateBy = SingletonAuthen.Instance().Id; detail.FKProductDtl = int.Parse(dataGridView1.Rows[i].Cells[colId].Value.ToString()); detail.Qty = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); // จำนวนหน่วย detail.PricePerUnit = decimal.Parse(dataGridView1.Rows[i].Cells[colPricePerUnit].Value.ToString()); // จำนวนหน่วย detail.BathDiscount = decimal.Parse(dataGridView1.Rows[i].Cells[colDiscount].Value.ToString()); // จำนวนเงินส่วนลด detail.TotalPrice = decimal.Parse(dataGridView1.Rows[i].Cells[colTotalPrice].Value.ToString()); // จำนวนเงิน หลังหักส่วนลด details.Add(detail); discountList += decimal.Parse(dataGridView1.Rows[i].Cells[colDiscount].Value.ToString()); if (i >= dataGridView1.Rows.Count - 2) { break; } } db.SaleOrderWarehouseDtl.AddRange(details); order.TotalDiscountInList = discountList; // วนใน ลิส order.TotalBalance = decimal.Parse(textBoxTotalBalance.Text); order.UpdateDate = DateTime.Now; order.UpdateBy = SingletonAuthen.Instance().Id; db.Entry(order).State = EntityState.Modified; db.SaveChanges(); saleOrderWarehouseListForm.LoadGrid(); this.Dispose(); } break; case DialogResult.No: break; } }
private void PaperCNWasteViewer_Load(object sender, EventArgs e) { var thisBranch = SingletonAuthen.Instance().MyBranch; BranchValue bv = new BranchValue(); bv.BranchName = thisBranch.Name + " สาขา " + thisBranch.BranchNo; bv.BranchAddress = thisBranch.Address; bv.BranchTax = "เลขประจำตัวผู้เสียภาษี " + thisBranch.TaxNo; bv.BranchTelAndFax = "โทรศัพท์ " + thisBranch.Tel + " แฟกซ์ " + thisBranch.Fax; WasteDocValue wv = new WasteDocValue(); wv.DocNo = code; List <WasteDocDetails> wds = new List <WasteDocDetails>(); using (SSLsEntities db = new SSLsEntities()) { var data = db.CNWarehouse.SingleOrDefault(w => w.Code == code); wv.DocDate = Library.ConvertDateToThaiDate(data.DocDate); wv.DocReference = data.DocRefer; wv.PrintDate = Library.ConvertDateToThaiDate(DateTime.Now); wv.VendorCode = data.Vendor.Code; wv.VendorName = data.Vendor.Name; wv.VendorAddress = data.Vendor.Address; int i = 1; decimal totalCost = 0; foreach (var item in data.CNWarehouseDetails.Where(w => w.Enable == true).ToList()) { wds.Add(new WasteDocDetails() { Number = i + "", ProductCode = item.ProductDetails.Code, ProductName = item.ProductDetails.Products.ThaiName, ProductUnit = item.ProductDetails.ProductUnit.Name, Qty = Library.ConvertDecimalToStringForm(item.Qty), CostPerUnit = Library.ConvertDecimalToStringForm(item.PricePerUnit), TotalCost = Library.ConvertDecimalToStringForm(item.TotalPrice) }); i++; totalCost += item.PricePerUnit; } wv.TotalUnit = Library.ConvertDecimalToStringForm(data.TotalQtyUnit); wv.TotalCost = Library.ConvertDecimalToStringForm(data.TotalBalance); wv.TotalBalance = Library.ConvertDecimalToStringForm(data.TotalBalance); } BranchValueBindingSource.DataSource = bv; WasteDocValueBindingSource.DataSource = wv; WasteDocDetailsBindingSource.DataSource = wds; this.reportViewer1.RefreshReport(); }
private void SaveConfirm() { using (SSLsEntities db = new SSLsEntities()) { string code = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value.ToString(); var data = db.CNWarehouse.SingleOrDefault(w => w.Enable == true && w.Code == code); data.ConfirmCNDate = DateTime.Now; data.ConfirmCNBy = SingletonAuthen.Instance().Id; db.Entry(data).State = EntityState.Modified; db.SaveChanges(); SearchData(); } }
/// <summary> /// ตรวจสอบ Promotion หยุดทำงาน /// </summary> private void CheckPromorionstop() { using (SSLsEntities db = new SSLsEntities()) { var dateQuery = db.Database.SqlQuery <DateTime>("SELECT getdate()"); DateTime serverDate = dateQuery.AsEnumerable().First(); var dateCheck = db.PriceScheduleCheck.FirstOrDefault(w => DbFunctions.TruncateTime(w.DateCheck) == DbFunctions.TruncateTime(serverDate)); if (dateCheck.IsCheck == false) { // ถ้าวันนี้ ยังไม่เชค ก็เชค dateCheck.IsCheck = true; dateCheck.CheckDate = serverDate; dateCheck.CheckBy = SingletonAuthen.Instance().Id; db.Entry(dateCheck).State = EntityState.Modified; var priceSchedule = db.PriceSchedule.Where(w => w.Enable == true && w.IsStop == false); foreach (var item in priceSchedule) { if (serverDate > item.EndDate) { // ถ้าวันนี้ มากกว่า วันสิ้นสุด // โปรโมชั่น ควร Stop ลง item.IsStop = true; item.StopReason = "Stop By Code"; item.UpdateDate = DateTime.Now; item.UpdateBy = SingletonAuthen.Instance().Id; db.Entry(item).State = EntityState.Modified; } } db.SaveChanges(); } else { // ถ้าวันนี้ เชคแล้ว ปล่อยผ่าน } //int days = 1000; //for (int i = 0; i < days; i++) //{ // PriceScheduleCheck f = new PriceScheduleCheck(); // f.DateCheck = DateTime.Now.AddDays(i + 1); // f.IsCheck = false; // db.PriceScheduleCheck.Add(f); //} //db.SaveChanges(); } }
private void PaperSaleOrderWarehouseViewer_Load(object sender, EventArgs e) { using (SSLsEntities db = new SSLsEntities()) { var thisBranch = SingletonAuthen.Instance().MyBranch; List <SaleOrderWarehouseList> objs = new List <SaleOrderWarehouseList>(); SaleOrderWarehouseList obj; var data = db.SaleOrderWarehouse.Where(w => codeSelected.Contains(w.Code)).ToList(); foreach (var item in data) { obj = new SaleOrderWarehouseList(); obj.BranchName = thisBranch.Name + " สาขา " + thisBranch.BranchNo; obj.DebtorCode = item.Debtor.Code; obj.MemberCode = item.Member.Code; obj.DocNo = item.Code; List <SaleOrderWarehouseList.Details> details = new List <SaleOrderWarehouseList.Details>(); int i = 1; foreach (var dtl in item.SaleOrderWarehouseDtl.Where(w => w.Enable == true)) { details.Add(new SaleOrderWarehouseList.Details() { Number = i + "", Code = dtl.ProductDetails.Code }); i++; } obj.DataDetails = details; objs.Add(obj); } SaleOrderWarehouseListBindingSource.DataSource = objs; this.reportViewer1.RefreshReport(); } //bv.BranchName = thisBranch.Name + " สาขา " + thisBranch.BranchNo; //bv.BranchAddress = thisBranch.Address; //bv.BranchTax = "เลขประจำตัวผู้เสียภาษี " + thisBranch.TaxNo; //bv.BranchTelAndFax = "โทรศัพท์ " + thisBranch.Tel + " แฟกซ์ " + thisBranch.Fax; //BranchValueBindingSource.DataSource = branch; //this.reportViewer1.RefreshReport(); }
/// <summary> /// ลบสมาชิก ออกจากระบบ Disable ทั้ง HD Details /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// private void button3_Click(object sender, EventArgs e) { DialogResult dr = MessageBox.Show("คุณต้องการบันทึกข้อมูล ใช่หรือไม่ ?", "คำเตือนจากระบบ", MessageBoxButtons.YesNo); switch (dr) { case DialogResult.Yes: int index = dataGridView1.CurrentRow.Index; int id = int.Parse(dataGridView1.Rows[index].Cells[col1Id].Value.ToString()); var member = Singleton.SingletonMember.Instance().Members.SingleOrDefault(w => w.Id == id); Singleton.SingletonMember.Instance().Members.Remove(member); using (SSLsEntities db = new SSLsEntities()) { var data = db.Member.SingleOrDefault(w => w.Id == id); data.UpdateDate = DateTime.Now; data.UpdateBy = SingletonAuthen.Instance().Id; data.Enable = false; db.Entry(data).State = EntityState.Modified; foreach (var item in data.MemberShare.Where(w => w.Enable == true)) { item.UpdateDate = DateTime.Now; item.UpdateBy = SingletonAuthen.Instance().Id; item.Enable = false; db.Entry(item).State = EntityState.Modified; } db.SaveChanges(); } reload(); break; case DialogResult.No: break; } }
/// <summary> /// Main Process Store Front Transaction /// </summary> /// <param name="list">map มา และกรุ๊ปมา ให้เรียบร้อย</param> public static void POsTransactionProcess(List <ObjectPOsTransaction> list) { using (SSLsEntities db = new SSLsEntities()) { decimal actionQty = 0; decimal actionQtyUnit = 0; foreach (var item in list) { PosStock headerStock = db.PosStock.FirstOrDefault(w => w.Enable == true && w.FKProduct == item.ProductDetail.FKProduct); TransactionType transaction = SingletonPOsTransaction.Instance().TransactionTypes.SingleOrDefault(w => w.Id == item.FKTransaction); if (transaction.IsPlus) { // แสดงว่า ค่า + actionQtyUnit = item.ActionQty; // จำนวนหน่วย actionQty = item.ActionQty * item.ProductDetail.PackSize; // จำนวน เล็กสุด ชิ้น } else { actionQtyUnit = -item.ActionQty; // จำนวนหน่วย actionQty = -item.ActionQty * item.ProductDetail.PackSize; // จำนวน เล็กสุด ชิ้น } // ถ้าไม่มีใน pos store front if (headerStock == null) { // is add headerStock = new PosStock(); headerStock.Name = item.ProductDetail.Name; headerStock.Description = "Auto Add"; headerStock.CreateDate = DateTime.Now; headerStock.CreateBy = SingletonAuthen.Instance().Id; headerStock.UpdateDate = DateTime.Now; headerStock.UpdateBy = SingletonAuthen.Instance().Id; headerStock.Enable = true; headerStock.CurrentQty = actionQty; headerStock.FKProduct = item.ProductDetail.FKProduct; // details PosStockDetails details = new PosStockDetails(); details.Description = transaction.Name; details.CreateDate = DateTime.Now; details.CreateBy = SingletonAuthen.Instance().Id; details.UpdateBy = SingletonAuthen.Instance().Id; details.UpdateDate = DateTime.Now; details.Enable = true; details.FKTransactionType = item.FKTransaction; details.ActionQty = actionQty; details.ActionQtyUnit = actionQtyUnit; details.FKProductDetails = item.ProductDetail.Id; headerStock.PosStockDetails.Add(details); db.PosStock.Add(headerStock); } else // ถ้ามีแล้วใน store front { // add transaction ก่อน PosStockDetails details = new PosStockDetails(); details.Description = transaction.Name; details.CreateDate = DateTime.Now; details.CreateBy = SingletonAuthen.Instance().Id; details.UpdateBy = SingletonAuthen.Instance().Id; details.UpdateDate = DateTime.Now; details.Enable = true; details.FKTransactionType = item.FKTransaction; details.ActionQty = actionQty; details.ActionQtyUnit = actionQtyUnit; details.FKProductDetails = item.ProductDetail.Id; details.FKPosStock = headerStock.Id; db.PosStockDetails.Add(details); // is Update header headerStock.UpdateDate = DateTime.Now; headerStock.UpdateBy = SingletonAuthen.Instance().Id; headerStock.CurrentQty = headerStock.CurrentQty + actionQty; db.Entry(headerStock).State = EntityState.Modified; } } db.SaveChanges(); } }
private void SaveCommit() { using (SSLsEntities db = new SSLsEntities()) { int currentYear = DateTime.Now.Year; int currentMonth = DateTime.Now.Month; var adjust = db.AdjustStoreFront.Where(w => w.UpdateDate.Year == currentYear && w.UpdateDate.Month == currentMonth).Count() + 1; //Branch branch = Singleton.SingletonP string code = MyConstant.PrefixForGenerateCode.AdjustStoreFront + DateTime.Now.ToString("yy") + "" + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(adjust, 4); // adjust AdjustStoreFront obj = new AdjustStoreFront(); obj.Code = code; obj.Enable = true; obj.Description = textBoxDesc.Text; obj.CreateDate = DateTime.Now; obj.CreateBy = Singleton.SingletonAuthen.Instance().Id; obj.UpdateDate = DateTime.Now; obj.UpdateBy = Singleton.SingletonAuthen.Instance().Id; obj.TotalBalance = dtl.CostOnly * decimal.Parse(textBoxQtyAd.Text); obj.TotalQtyUnit = decimal.Parse(textBoxQtyAd.Text); List <AdjustStoreFrontDetail> adDtl = new List <AdjustStoreFrontDetail>(); adDtl.Add(new AdjustStoreFrontDetail() { Enable = true, Description = "", CreateDate = DateTime.Now, CreateBy = obj.CreateBy, UpdateDate = DateTime.Now, UpdateBy = obj.CreateBy, FKProductDetails = dtl.Id, Qty = decimal.Parse(textBoxQtyAd.Text), CostPerUnit = dtl.CostOnly, SellPricePerUnit = dtl.SellPrice }); obj.AdjustStoreFrontDetail = adDtl; db.AdjustStoreFront.Add(obj); // stock StoreFrontStockDetails addDtl = new StoreFrontStockDetails(); addDtl.DocNo = code; addDtl.DocDtlNumber = 1; addDtl.Description = "Adjust หน้าร้าน"; addDtl.CreateDate = DateTime.Now; addDtl.CreateBy = SingletonAuthen.Instance().Id; addDtl.UpdateDate = DateTime.Now; addDtl.UpdateBy = SingletonAuthen.Instance().Id; addDtl.Enable = true; addDtl.ActionQty = decimal.Parse(textBoxQtyAd.Text) * dtl.PackSize; var stockHD = db.StoreFrontStock.FirstOrDefault(w => w.FKProduct == dtl.FKProduct && w.Enable == true); addDtl.FKStoreFrontStock = stockHD.Id; addDtl.FKTransactionType = MyConstant.PosTransaction.ADJ; addDtl.Barcode = textBoxCode.Text; addDtl.Name = dtl.Products.ThaiName; addDtl.FKProductDetails = dtl.Id; addDtl.ResultQty = addDtl.ActionQty; addDtl.PackSize = dtl.PackSize; addDtl.DocRefer = "-"; addDtl.DocReferDtlNumber = 0; addDtl.CostOnlyPerUnit = dtl.CostOnly; addDtl.SellPricePerUnit = dtl.SellPrice; db.StoreFrontStockDetails.Add(addDtl); db.SaveChanges(); // open paper frmMainReport report = new frmMainReport(this, code); report.Show(); dataGridView1.Rows.Clear(); dataGridView1.Refresh(); var data = db.AdjustStoreFront.OrderBy(w => w.CreateDate).Where(w => w.Enable == true).ToList(); foreach (var item in data) { dataGridView1.Rows.Add ( item.Code, Library.ConvertDateToThaiDate(item.CreateDate), Library.GetFullNameUserById(item.CreateBy), item.TotalQtyUnit, item.TotalBalance, item.Description ); } } }
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 SaveCommit() { SSLsEntities db = new SSLsEntities(); try { var rcvOld = db.PORcv.SingleOrDefault(w => w.Enable == true && w.Code == textBoxRcvNo.Text); rcvOld.PORefer = rcvOld.PORefer + "," + textBoxPONo.Text; rcvOld.Description = textBoxDesc.Text; rcvOld.UpdateDate = DateTime.Now; rcvOld.UpdateBy = SingletonAuthen.Instance().Id; rcvOld.DiscountKey = textBoxDiscountKey.Text; rcvOld.DiscountBath = decimal.Parse(textBoxDiscountBath.Text); rcvOld.TotalBUnVat = decimal.Parse(textBoxTotalUnVat.Text); rcvOld.TotalBHasVat = decimal.Parse(textBoxTotalHasVat.Text); rcvOld.TotalVat = decimal.Parse(textBoxTotalVat.Text); rcvOld.TotalGift = _totalGift; // details //List<PORcvDetails> details = new List<PORcvDetails>(); PORcvDetails detail; decimal rcvAndGift = 0; for (int i = 0; i < dataGridView1.Rows.Count; i++) { detail = new PORcvDetails(); detail.Enable = true; detail.CreateDate = DateTime.Now; detail.CreateBy = SingletonAuthen.Instance().Id; detail.UpdateDate = DateTime.Now; detail.UpdateBy = SingletonAuthen.Instance().Id; string proCode = dataGridView1.Rows[i].Cells[colCode].Value.ToString(); var product = Singleton.SingletonProduct.Instance().ProductDetails.FirstOrDefault(w => w.Code == proCode); detail.FKProductDtl = product.Id; detail.SequenceNumber = int.Parse(dataGridView1.Rows[i].Cells[colNumber].Value.ToString()); // รับเข้าในครั้งนี้ detail.RcvQuantity = decimal.Parse(dataGridView1.Rows[i].Cells[colQtyRcv].Value.ToString()); if (_po.Vendor.FKPOCostType == MyConstant.POCostType.CostOnly) // ตรวจสอบการ ยึดราคาทุน { detail.CurrentCost = product.CostOnly; } else if (_po.Vendor.FKPOCostType == MyConstant.POCostType.CostAndVat) { detail.CurrentCost = product.CostAndVat; } else { detail.CurrentCost = product.CostAndVat; } detail.QtyOnPO = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); detail.NewCost = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString()); detail.DiscountKey = dataGridView1.Rows[i].Cells[colDiscountKey].Value.ToString(); detail.DiscountBath = decimal.Parse(dataGridView1.Rows[i].Cells[colDiscountBath].Value.ToString()); detail.TotalPrice = decimal.Parse(dataGridView1.Rows[i].Cells[colTotal].Value.ToString()); detail.GiftOnPo = decimal.Parse(dataGridView1.Rows[i].Cells[colGiftOnPo].Value.ToString()); detail.GiftQty = decimal.Parse(dataGridView1.Rows[i].Cells[colGift].Value.ToString()); detail.SequenceNumber = int.Parse(dataGridView1.Rows[i].Cells[colNumber].Value.ToString()); int idPO = int.Parse(dataGridView1.Rows[i].Cells[colId].Value.ToString()); // ยอดรับเข้าครั้งนี้ = ยอดรับเข้า+ของแถม rcvAndGift = detail.GiftQty + detail.RcvQuantity; if (idPO != 0) { rcvOld.PORcvDetails.Add(detail); var getProductRcv = db.PODetail.FirstOrDefault(w => w.Id == idPO); getProductRcv.RcvQty = detail.GiftQty; getProductRcv.RcvGiftQty = rcvAndGift; db.Entry(getProductRcv).State = EntityState.Modified; } decimal rcvComplet = decimal.Parse(dataGridView1.Rows[i].Cells[colQtyRcvComplete].Value.ToString()); } db.Entry(rcvOld).State = EntityState.Modified; //List<PORcvDetails> rcvDtl = rcv.PORcvDetails.ToList(); //Library.MakeValueForUpdateStockWms(rcvDtl); // update po status = 3 เคยมีการรับเข้าแล้ว เชคว่าครบแล้วหรือไม่ var po = db.POHeader.SingleOrDefault(w => w.Id == _po.Id); decimal checkRcvQty = 0; decimal checkRcvGiftQty = 0; //foreach (var item in po.PODetail.Where(w => w.Enable == true).ToList()) //{ // // ดึง // var getProductRcv = rcvOld.PORcvDetails.FirstOrDefault(w => w.FKProductDtl == item.FKProductDetail); // item.RcvQty = item.RcvQty + getProductRcv.RcvQuantity; // item.RcvGiftQty = item.RcvGiftQty + getProductRcv.GiftQty; // db.Entry(item).State = EntityState.Modified; // checkRcvQty = checkRcvQty + item.RcvQty; // checkRcvGiftQty = checkRcvGiftQty + item.RcvGiftQty; //} //if ((checkRcvQty + checkRcvGiftQty) == (po.TotalQty + po.TotalGift)) //{ // // ถ้ารับเข้าครบ แปลว่า Complete // po.FKPOStatus = MyConstant.POStatus.RCVComplete; //} //else //{ // po.FKPOStatus = MyConstant.POStatus.RCVNotEnd; //} po.FKPOStatus = MyConstant.POStatus.RCVNotEnd; db.Entry(po).State = EntityState.Modified; db.SaveChanges(); // reset form frmMainReport mr = new frmMainReport(this, textBoxRcvNo.Text); mr.Show(); } catch (Exception) { MessageBox.Show("ไม่ถูกต้อง พบข้อผิดพลาด กรุณาติดต่อ admin"); } finally { db.Dispose(); } }
/// <summary> /// ยืนยัน จะตัด stock หน้าร้าน /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button4_Click(object sender, EventArgs e) { var stackCode = GetAllCodeForAction(); using (SSLsEntities db = new SSLsEntities()) { foreach (var item in stackCode) { var data = db.StoreFrontTransferOut.SingleOrDefault(w => w.Code == item); if (data.Enable == false) { MessageBox.Show(item + " ถูกยกเลิกไปแล้ว"); return; } else if (data.ConfirmDate != null) { MessageBox.Show(item + " ยืนยันไปแล้ว"); return; } } DialogResult dr = MessageBox.Show("ยืนยันทำรายการ ?", "คำเตือนจากระบบ", MessageBoxButtons.YesNo); switch (dr) { case DialogResult.Yes: foreach (var item in stackCode) { var data = db.StoreFrontTransferOut.SingleOrDefault(w => w.Code == item); data.ConfirmDate = DateTime.Now; data.ConfirmBy = Singleton.SingletonAuthen.Instance().Id; db.Entry(data).State = EntityState.Modified; } db.SaveChanges(); // ตัดสต๊อก // Initisl หน้าร้าน ก่อน เผื่อยังไม่มี List <StoreFrontStock> stocks = new List <StoreFrontStock>(); foreach (var item in stackCode) { var data = db.StoreFrontTransferOut.SingleOrDefault(w => w.Code == item); List <int> fkPro = data.StoreFrontTransferOutDtl.Select(w => w.ProductDetails.FKProduct).ToList().Distinct().ToList <int>(); foreach (var fk in fkPro) { var stock = db.StoreFrontStock.FirstOrDefault(w => w.Enable == true && w.FKProduct == fk); if (stock == null) { stocks.Add(new StoreFrontStock() { CreateDate = DateTime.Now, CreateBy = SingletonAuthen.Instance().Id, UpdateDate = DateTime.Now, UpdateBy = SingletonAuthen.Instance().Id, Enable = true, CurrentQty = 0, FKProduct = fk, Description = "พบการโอนสาขา" }); } } db.StoreFrontStock.AddRange(stocks); db.SaveChanges(); } // - หน้าร้าน //List<StoreFrontStockDetails> addDtl = new List<StoreFrontStockDetails>(); foreach (var item in stackCode) { var data = db.StoreFrontTransferOut.SingleOrDefault(w => w.Code == item); int number = 1; foreach (var getDtl in data.StoreFrontTransferOutDtl.Where(w => w.Enable == true).ToList()) { var proDtl = Singleton.SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == getDtl.FKProductDetails && w.Enable == true); var stockHD = db.StoreFrontStock.FirstOrDefault(w => w.FKProduct == proDtl.FKProduct && w.Enable == true); StoreFrontStockDetails addDtl = new StoreFrontStockDetails(); addDtl.DocNo = data.Code; addDtl.DocDtlNumber = number; 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 = getDtl.Qty * proDtl.PackSize; addDtl.FKStoreFrontStock = stockHD.Id; addDtl.FKTransactionType = MyConstant.PosTransaction.TransferStoreFrontToBranch; addDtl.Barcode = proDtl.Code; addDtl.Name = proDtl.Products.ThaiName; addDtl.FKProductDetails = getDtl.FKProductDetails; addDtl.ResultQty = addDtl.ActionQty; var lastAction = db.StoreFrontStockDetails.OrderByDescending(w => w.CreateDate).FirstOrDefault(w => w.FKProductDetails == getDtl.FKProductDetails && w.Enable == true); if (lastAction != null) { addDtl.ResultQty = lastAction.ResultQty - addDtl.ActionQty; } addDtl.PackSize = proDtl.PackSize; addDtl.DocRefer = "-"; addDtl.DocReferDtlNumber = 0; addDtl.CostOnlyPerUnit = proDtl.CostOnly; addDtl.SellPricePerUnit = proDtl.SellPrice; stockHD.CurrentQty = stockHD.CurrentQty - addDtl.ActionQty; db.Entry(stockHD).State = EntityState.Modified; db.StoreFrontStockDetails.Add(addDtl); db.SaveChanges(); number++; } } ReloadGrid(); break; case DialogResult.No: break; } } //string code = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[2].Value.ToString(); //using (SSLsEntities db = new SSLsEntities()) //{ // var data = db.StoreFrontTransferOut.SingleOrDefault(w => w.Code == code); // if (data.Enable == true && data.ConfirmDate == null) // { // DialogResult dr = MessageBox.Show("คุณต้องการบันทึกข้อมูล ใช่หรือไม่ ?", "คำเตือนจากระบบ", MessageBoxButtons.YesNo); // switch (dr) // { // case DialogResult.Yes: // /// ยืนยัน // data.ConfirmDate = DateTime.Now; // data.ConfirmBy = Singleton.SingletonAuthen.Instance().Id; // data.UpdateDate = DateTime.Now; // data.UpdateBy = Singleton.SingletonAuthen.Instance().Id; // db.Entry(data).State = EntityState.Modified; // db.SaveChanges(); // /// Update Stock Version เก่า // //Library.MakeValueForUpdateStockPos(data.StoreFrontTransferOutDtl.Where(w => w.Enable == true).ToList()); // ///// StoreFrontStock // foreach (var item in data.StoreFrontTransferOutDtl.Where(w => w.Enable == true).ToList()) // { // // add to StoreFrontStockDetails // var prodtl = Singleton.SingletonProduct.Instance().ProductDetails // .SingleOrDefault(w => w.Enable == true && w.Id == item.FKProductDetails); // // check in header // var storeFrontStock = db.StoreFrontStock.FirstOrDefault(w => w.Enable == true && w.FKProduct == prodtl.FKProduct); // } // ReloadGrid(); // break; // case DialogResult.No: // break; // } // } // else // { // MessageBox.Show("ไม่สามารถยกเลิกได้"); // } //} }
/// <summary> /// 1. check invoice no /// 2. check invoice date**** /// 3. check vendor**** /// 4. ต้องเลือก อย่างน้อย 1 PO เพื่อ save /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button3_Click(object sender, EventArgs e) { string invoice = textBoxInvoiceNo.Text.Trim(); if (invoice == "") { MessageBox.Show("กรุณากรอก ใบกำกับภาษี/ใบส่ง"); return; } try { DateTime?invoiceDate = Library.ConvertTHToENDate(textBoxInvoiceDate.Text); if (invoiceDate == null) { MessageBox.Show("วันที่ Invoice ไม่ถูกต้อง (Need Date English United Kingdom)"); return; } else { } Console.WriteLine(invoiceDate); } catch (Exception) { Console.WriteLine("Error"); return; } //if (_VendorId == 0) //{ // MessageBox.Show("กรุณาเลือก ผู้จำหน่าย"); // return; //} if (listBoxPolist.Items.Count == 0) { MessageBox.Show("กรุณาเลือก อย่างน้อย 1 PO"); return; } string poInList = listBoxPolist.Items[0].ToString(); DialogResult dr = MessageBox.Show("คุณต้องการบันทึกข้อมูล ใช่หรือไม่ ?", "คำเตือนจากระบบ", MessageBoxButtons.YesNo); switch (dr) { case DialogResult.Yes: string rcvNo = textBoxRcvNo.Text; #region กรณีแก้ไข if (rcvNo != "") { using (SSLsEntities db = new SSLsEntities()) { var rcv = db.PORcv.SingleOrDefault(w => w.Enable == true && w.Code == rcvNo); rcv.InvoiceNo = textBoxInvoiceNo.Text; rcv.InvoiceDate = (DateTime)Library.ConvertTHToENDate(textBoxInvoiceDate.Text); rcv.FKVendor = _VendorId; string[] listPO = listBoxPolist.Items.OfType <string>().ToArray(); rcv.PORefer = string.Join(",", listPO); rcv.Description = textBoxDesc.Text; rcv.UpdateDate = DateTime.Now; rcv.UpdateBy = SingletonAuthen.Instance().Id; rcv.DiscountKey = textBoxDis.Text; rcv.DiscountBath = decimal.Parse(textBoxDis.Text); rcv.TotalBUnVat = decimal.Parse(textBoxUnVat.Text); rcv.TotalBHasVat = decimal.Parse(textBoxHasVat.Text); rcv.TotalVat = decimal.Parse(textBoxVat.Text); // details List <PORcvDetails> details = new List <PORcvDetails>(); PORcvDetails detail; for (int row = 0; row < dataGridView1.Rows.Count; row++) { int idpo = int.Parse(dataGridView1.Rows[row].Cells[colIdPo].Value.ToString()); int idProd = int.Parse(dataGridView1.Rows[row].Cells[colIdProd].Value.ToString()); int number = int.Parse(dataGridView1.Rows[row].Cells[colNumber].Value.ToString()); string barcode = dataGridView1.Rows[row].Cells[colCode].Value.ToString(); decimal rcvComplete = decimal.Parse(dataGridView1.Rows[row].Cells[colRcvComplete].Value.ToString()); string name = dataGridView1.Rows[row].Cells[colName].Value.ToString(); decimal pz = decimal.Parse(dataGridView1.Rows[row].Cells[colPz].Value.ToString()); string unit = dataGridView1.Rows[row].Cells[colUnit].Value.ToString(); decimal qty = decimal.Parse(dataGridView1.Rows[row].Cells[colQty].Value.ToString()); decimal gift = decimal.Parse(dataGridView1.Rows[row].Cells[colGift].Value.ToString()); decimal rcvQty = decimal.Parse(dataGridView1.Rows[row].Cells[colRcvQty].Value.ToString()); decimal rcvGift = decimal.Parse(dataGridView1.Rows[row].Cells[colRcvGift].Value.ToString()); decimal price = decimal.Parse(dataGridView1.Rows[row].Cells[colPrice].Value.ToString()); decimal total = decimal.Parse(dataGridView1.Rows[row].Cells[colTotal].Value.ToString()); int poDtlId = int.Parse(dataGridView1.Rows[row].Cells[colPODtlId].Value.ToString()); // ถ้ามีแล้ว ก็อัพเดท var getDtlRcv = db.PORcvDetails.SingleOrDefault(w => w.Enable == true && w.FKPoDetails == poDtlId); if (getDtlRcv != null) { getDtlRcv.FKProductDtl = idProd; getDtlRcv.SequenceNumber = number; getDtlRcv.RcvQuantity = rcvQty; getDtlRcv.GiftQty = rcvGift; getDtlRcv.NewCost = price; getDtlRcv.CurrentCost = price; getDtlRcv.TotalPrice = total; if ((rcvGift + rcvQty + rcvComplete) == qty + gift) { getDtlRcv.IsComplete = true; } else { getDtlRcv.IsComplete = false; } getDtlRcv.RcvComplete = rcvGift + rcvQty + rcvComplete; db.Entry(getDtlRcv).State = EntityState.Modified; } else // ถ้าไมีมี { detail = new PORcvDetails(); detail.FKPORcv = rcv.Id; detail.CreateDate = DateTime.Now; detail.CreateBy = Singleton.SingletonAuthen.Instance().Id; detail.UpdateDate = DateTime.Now; detail.UpdateBy = Singleton.SingletonAuthen.Instance().Id; detail.Description = "-"; detail.Enable = true; detail.FKProductDtl = idProd; detail.SequenceNumber = number; detail.QtyOnPO = qty; detail.RcvQuantity = rcvQty; detail.CurrentCost = price; detail.NewCost = price; detail.DiscountKey = 0 + ""; detail.DiscountBath = 0; detail.TotalPrice = total; detail.GiftOnPo = gift; detail.GiftQty = rcvGift; // รับเข้าของแถม detail.FKPoDetails = poDtlId; if ((rcvGift + rcvQty + rcvComplete) == qty + gift) { detail.IsComplete = true; } else { detail.IsComplete = false; } detail.RcvComplete = detail.RcvComplete + rcvGift + rcvQty; detail.FKPOHeader = idpo; //if (rcvGift + rcvQty > 0) //{ // details.Add(detail); //} db.PORcvDetails.Add(detail); } } db.SaveChanges(); } return; } #endregion /////////////////////////////////////////////////////////////////////////////////////////////////// #region กรณีเพิ่ม using (SSLsEntities db = new SSLsEntities()) { int currentYear = DateTime.Now.Year; int currentMonth = DateTime.Now.Month; var running = db.PORcv.Where(w => w.CreateDate.Year == currentYear && w.CreateDate.Month == currentMonth).Count() + 1; string code = SingletonThisBudgetYear.Instance().ThisYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(running, 4); //string poInList = listBoxPolist.Items[0].ToString(); var getPo = db.POHeader.SingleOrDefault(w => w.Enable == true && w.PONo == poInList); PORcv rcv = new PORcv(); rcv.FKPOHeader = getPo.Id; rcv.Code = MyConstant.PrefixForGenerateCode.RCVPOS + code; rcv.Description = textBoxDesc.Text; rcv.Enable = true; rcv.CreateDate = DateTime.Now; rcv.CreateBy = SingletonAuthen.Instance().Id; rcv.UpdateDate = DateTime.Now; rcv.UpdateBy = SingletonAuthen.Instance().Id; rcv.DiscountKey = textBoxDis.Text; rcv.DiscountBath = decimal.Parse(textBoxDis.Text); rcv.TotalBUnVat = decimal.Parse(textBoxUnVat.Text); rcv.TotalBHasVat = decimal.Parse(textBoxHasVat.Text); rcv.TotalVat = decimal.Parse(textBoxVat.Text); rcv.TotalGift = 0; rcv.InvoiceNo = textBoxInvoiceNo.Text; rcv.InvoiceDate = (DateTime)Library.ConvertTHToENDate(textBoxInvoiceDate.Text); string[] listPO = listBoxPolist.Items.OfType <string>().ToArray(); rcv.PORefer = string.Join(",", listPO); rcv.FKTransport = MyConstant.Transport.NotChoose; rcv.PrintNumber = 0; rcv.FKVendor = _VendorId; if (_VendorId == 0) { rcv.FKVendor = null; } // details List <PORcvDetails> details = new List <PORcvDetails>(); PORcvDetails detail; for (int row = 0; row < dataGridView1.Rows.Count; row++) { detail = new PORcvDetails(); int idpo = int.Parse(dataGridView1.Rows[row].Cells[colIdPo].Value.ToString()); int idProd = int.Parse(dataGridView1.Rows[row].Cells[colIdProd].Value.ToString()); int number = int.Parse(dataGridView1.Rows[row].Cells[colNumber].Value.ToString()); string barcode = dataGridView1.Rows[row].Cells[colCode].Value.ToString(); decimal rcvComplete = decimal.Parse(dataGridView1.Rows[row].Cells[colRcvComplete].Value.ToString()); string name = dataGridView1.Rows[row].Cells[colName].Value.ToString(); decimal pz = decimal.Parse(dataGridView1.Rows[row].Cells[colPz].Value.ToString()); string unit = dataGridView1.Rows[row].Cells[colUnit].Value.ToString(); decimal qty = decimal.Parse(dataGridView1.Rows[row].Cells[colQty].Value.ToString()); decimal gift = decimal.Parse(dataGridView1.Rows[row].Cells[colGift].Value.ToString()); decimal rcvQty = decimal.Parse(dataGridView1.Rows[row].Cells[colRcvQty].Value.ToString()); decimal rcvGift = decimal.Parse(dataGridView1.Rows[row].Cells[colRcvGift].Value.ToString()); decimal price = decimal.Parse(dataGridView1.Rows[row].Cells[colPrice].Value.ToString()); decimal total = decimal.Parse(dataGridView1.Rows[row].Cells[colTotal].Value.ToString()); int poDtlId = int.Parse(dataGridView1.Rows[row].Cells[colPODtlId].Value.ToString()); detail.CreateDate = DateTime.Now; detail.CreateBy = SingletonAuthen.Instance().Id; detail.UpdateDate = DateTime.Now; detail.UpdateBy = SingletonAuthen.Instance().Id; detail.Description = "-"; detail.Enable = true; detail.FKProductDtl = idProd; detail.SequenceNumber = number; detail.QtyOnPO = qty; detail.RcvQuantity = rcvQty; detail.CurrentCost = price; detail.NewCost = price; detail.DiscountKey = 0 + ""; detail.DiscountBath = 0; detail.TotalPrice = total; detail.GiftOnPo = gift; detail.GiftQty = rcvGift; // รับเข้าของแถม detail.FKPoDetails = poDtlId; if ((rcvGift + rcvQty + rcvComplete) == qty) { detail.IsComplete = true; } else { detail.IsComplete = false; } detail.RcvComplete = rcvGift + rcvQty; detail.FKPOHeader = idpo; details.Add(detail); //if (rcvGift + rcvQty > 0) //{ // details.Add(detail); //} } rcv.PORcvDetails = details; db.PORcv.Add(rcv); db.SaveChanges(); MessageBox.Show("บันทึก " + rcv.Code + "เรียบร้อย"); } #endregion break; case DialogResult.No: break; } }
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); } }
private void SaveCommit() { 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; string code = thisBudget.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(pro, 3); PriceSchedule header = new PriceSchedule(); header.Code = code; header.Enable = true; header.Name = textBoxProName.Text; header.Description = textBoxRemark.Text; header.CreateDate = DateTime.Now; header.CreateBy = SingletonAuthen.Instance().Id; header.UpdateBy = SingletonAuthen.Instance().Id; header.UpdateDate = DateTime.Now; header.FKCampaign = MyConstant.CampaignType.FullyQtyAndGift; header.StartDate = dateTimePickerStart.Value; header.EndDate = dateTimePickerEnd.Value; header.Limited = 0; header.Notice = textBoxProNotice.Text; header.FullPrice = 0; header.FullQty = 0; header.Discount = 0; header.IsStop = false; header.StopReason = null; /// ต้อง Row เท่ากัน if (dataGridView1.Rows.Count == dataGridView2.Rows.Count) { SellingPrice selling; SellingPriceDetails details; for (int i = 0; i < dataGridView1.Rows.Count; i++) { selling = new SellingPrice(); selling.CreateDate = DateTime.Now; selling.CreateBy = SingletonAuthen.Instance().Id; selling.Enable = true; selling.Name = header.Name; selling.Description = null; selling.UpdateDate = DateTime.Now; selling.UpdateBy = SingletonAuthen.Instance().Id; selling.FKProduct = int.Parse(dataGridView1.Rows[i].Cells[col1Id].Value.ToString()); selling.GetCurrentPrice = decimal.Parse(dataGridView1.Rows[i].Cells[col1Price].Value.ToString()); selling.SpecialPrice = 0; selling.FullyQty = decimal.Parse(dataGridView1.Rows[i].Cells[col1Qty].Value.ToString()); /// ส่วนของแถม details = new SellingPriceDetails(); details.Enable = true; details.Name = header.Name; details.CreateDate = DateTime.Now; details.CreateBy = SingletonAuthen.Instance().Id; details.UpdateDate = DateTime.Now; details.UpdateBy = SingletonAuthen.Instance().Id; details.FKProduct = int.Parse(dataGridView2.Rows[i].Cells[col2Id].Value.ToString()); details.GiftQty = decimal.Parse(dataGridView2.Rows[i].Cells[col2Qty].Value.ToString()); details.GetCurrentPrice = decimal.Parse(dataGridView2.Rows[i].Cells[col2Price].Value.ToString()); details.SpecialPrice = 0; selling.SellingPriceDetails.Add(details); header.SellingPrice.Add(selling); if (i >= dataGridView1.Rows.Count - 2) { break; } } } else { MessageBox.Show("พบข้อผิดพลาดกรุณาตรวจสอบดูอีกครั้ง"); } db.PriceSchedule.Add(header); db.SaveChanges(); // reset all ResetForm(); } }
/// <summary> /// แก้ไข PO ที่ยังไม่ approve เราจะ Disable details ทอ้งทั้งหมด และ add new details ใหม่ /// </summary> private void SaveCommit() { using (SSLsEntities db = new SSLsEntities()) { var hd = db.POHeader.SingleOrDefault(w => w.Id == _id); hd.UpdateDate = DateTime.Now; hd.UpdateBy = SingletonAuthen.Instance().Id; if (discountPercent) { hd.DiscountBath = Library.ConvertDecimalToStringForm(Library.CalPercentByValue(hd.TotalHasVat + hd.TotalUnVat, decimal.Parse(textBoxDiscountInvoice.Text))); // แปลงจากคีย์ % เป็น บาท hd.DiscountPercent = textBoxDiscountInvoice.Text + " %"; } else { hd.DiscountBath = textBoxDiscountInvoice.Text.Replace("บ", ""); //hd.DiscountPercent = hd.TotalDiscount + ""; // แปลงเงินบาทเป็น % hd.DiscountPercent = Library.GetPercentFromDiscountBath(decimal.Parse(hd.DiscountBath), hd.TotalHasVat + hd.TotalUnVat) + " %"; } hd.DiscountInput = textBoxDiscountInvoice.Text; hd.TotalPrice = decimal.Parse(textBoxTotal.Text); hd.TotalHasVat = decimal.Parse(textBoxTotalHasVat.Text); hd.TotalUnVat = decimal.Parse(textBoxTotalUnVat.Text); hd.TotalDiscount = decimal.Parse(textBoxTotalDiscountInvoice.Text); hd.TotalPriceDiscount = decimal.Parse(textBoxTotalAfterDis.Text); hd.TotalVat = decimal.Parse(textBoxTotalVat.Text); hd.TotalBalance = decimal.Parse(textBoxTotalBalance.Text); /// disable old foreach (var item in hd.PODetail) { if (item.Enable == true) { item.Enable = false; item.UpdateDate = DateTime.Now; item.UpdateBy = Singleton.SingletonAuthen.Instance().Id; db.Entry(item).State = EntityState.Modified; } } /// add new //List<PODetail> details = new List<PODetail>(); PODetail detail; decimal costOnly = 0; decimal costAndVat = 0; decimal totalCost = 0; decimal totalQty = 0; decimal totalGift = 0; for (int i = 0; i < dataGridView1.Rows.Count; i++) { detail = new PODetail(); costOnly = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString()); costAndVat = decimal.Parse(dataGridView1.Rows[i].Cells[colCostVatPerUnit].Value.ToString()); if (_poCostType == MyConstant.POCostType.CostOnly) { totalCost = costOnly * decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); } else { totalCost = costAndVat * decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); } detail.Qty = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); totalQty += detail.Qty; detail.GiftQty = decimal.Parse(dataGridView1.Rows[i].Cells[colGift].Value.ToString()); totalGift += detail.GiftQty; detail.CostOnly = costOnly; detail.CostAndVat = costAndVat; detail.DiscountInput = dataGridView1.Rows[i].Cells[colDiscount].Value.ToString(); detail.DiscountBath = decimal.Parse(dataGridView1.Rows[i].Cells[colDiscountBath].Value.ToString()); detail.TotalCost = totalCost - decimal.Parse(dataGridView1.Rows[i].Cells[colDiscountBath].Value.ToString()); detail.CreateDate = DateTime.Now; detail.CreateBy = SingletonAuthen.Instance().Id; detail.UpdateDate = DateTime.Now; detail.UpdateBy = SingletonAuthen.Instance().Id; detail.Enable = true; //detail.RcvQty = 0; detail.FKProductDetail = int.Parse(dataGridView1.Rows[i].Cells[colFKProDtlId].Value.ToString()); if (dataGridView1.Rows[i].Cells[colInterface].Value != null) { string interfaceDate = dataGridView1.Rows[i].Cells[colInterface].Value.ToString(); detail.InterfaceDate = DateTime.Parse(interfaceDate); } //int id = int.Parse(dataGridView1.Rows[i].Cells[colId].Value.ToString()); if (dataGridView1.Rows[i].Cells[colId].Value != null) { int id = int.Parse(dataGridView1.Rows[i].Cells[colId].Value.ToString()); detail.RcvQty = hd.PODetail.SingleOrDefault(w => w.Id == id).RcvQty; detail.RcvGiftQty = hd.PODetail.SingleOrDefault(w => w.Id == id).RcvGiftQty; } detail.Sequence = hd.SequenceEdit; hd.PODetail.Add(detail); if (i >= dataGridView1.Rows.Count - 2) break; } hd.TotalQty = totalQty; hd.TotalGift = totalGift; db.SaveChanges(); MainReportViewer mr = new MainReportViewer(this, _id); mr.ShowDialog(); } }
private void SaveCommit() { using (SSLsEntities db = new SSLsEntities()) { StoreFrontTransferWaste sft = new StoreFrontTransferWaste(); sft.Enable = true; sft.Code = textBoxCode.Text; sft.CreateDate = DateTime.Now; sft.CreateBy = SingletonAuthen.Instance().Id; sft.Description = textBoxRemark.Text; sft.UpdateDate = DateTime.Now; sft.UpdateBy = SingletonAuthen.Instance().Id; decimal qtyPiece = 0; List <StoreFrontTransferWasteDtl> details = new List <StoreFrontTransferWasteDtl>(); StoreFrontTransferWasteDtl detail; for (int i = 0; i < dataGridView1.Rows.Count; i++) { var code = dataGridView1.Rows[i].Cells[colCode].Value; if (code == null) { continue; } detail = new StoreFrontTransferWasteDtl(); qtyPiece += decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()) * decimal.Parse(dataGridView1.Rows[i].Cells[colPZ].Value.ToString()); detail.Enable = true; detail.Description = dataGridView1.Rows[i].Cells[colDescription].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()); detail.Qty = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); detail.CostPerUnit = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString()); details.Add(detail); //if (i >= dataGridView1.Rows.Count - 2) break; } sft.TotalQty = qtyPiece; sft.TotalQtyUnit = details.Sum(w => w.Qty); sft.FKWarehouse = MyConstant.WareHouse.StoreFront; sft.FKWasteReason = _WasteReason; sft.StoreFrontTransferWasteDtl = details; db.StoreFrontTransferWaste.Add(sft); db.SaveChanges(); // + ห้องของเสีย // 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(); /// จัดการ stock /// -storefront //Library.MakeValueForUpdateStockPos(details); // อันเดิม ยกเลิก /// + warehouse ///Library.MakeValueForUpdateStockWms(details); /// + ห้องของเสีย Library.AddWasteWarehouse(details, sft.Code); // print ใบ ของเสียหน้าร้าน สู่ ห้องของเสีย // Initisl หน้าร้าน ก่อน เผื่อยังไม่มี List <StoreFrontStock> stocks = new List <StoreFrontStock>(); foreach (var item in fkPro) { var data = db.StoreFrontStock.FirstOrDefault(w => w.Enable == true && w.FKProduct == item); if (data == null) { stocks.Add(new StoreFrontStock() { CreateDate = DateTime.Now, CreateBy = SingletonAuthen.Instance().Id, UpdateDate = DateTime.Now, UpdateBy = SingletonAuthen.Instance().Id, Enable = true, CurrentQty = 0, FKProduct = item, Description = "พบของเสียห้านร้าน" }); } } db.StoreFrontStock.AddRange(stocks); db.SaveChanges(); // - หน้าร้าน int number = 1; foreach (var item in details) { var proDtl = Singleton.SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == item.FKProductDetails && w.Enable == true); var stockHD = db.StoreFrontStock.FirstOrDefault(w => w.FKProduct == proDtl.FKProduct && w.Enable == true); StoreFrontStockDetails addDtl = new StoreFrontStockDetails(); addDtl.DocNo = sft.Code; addDtl.DocDtlNumber = number; 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 = item.Qty * proDtl.PackSize; addDtl.FKStoreFrontStock = stockHD.Id; addDtl.FKTransactionType = MyConstant.PosTransaction.CNToWarehouse; addDtl.Barcode = proDtl.Code; addDtl.Name = proDtl.Products.ThaiName; addDtl.FKProductDetails = item.FKProductDetails; addDtl.ResultQty = addDtl.ActionQty; var lastAction = db.StoreFrontStockDetails.OrderByDescending(w => w.CreateDate).FirstOrDefault(w => w.FKProductDetails == item.FKProductDetails && w.Enable == true); if (lastAction != null) { addDtl.ResultQty = lastAction.ResultQty - addDtl.ActionQty; } addDtl.PackSize = proDtl.PackSize; addDtl.DocRefer = "-"; addDtl.DocReferDtlNumber = 0; addDtl.CostOnlyPerUnit = proDtl.CostOnly; addDtl.SellPricePerUnit = proDtl.SellPrice; stockHD.CurrentQty = stockHD.CurrentQty - addDtl.ActionQty; db.Entry(stockHD).State = EntityState.Modified; db.StoreFrontStockDetails.Add(addDtl); db.SaveChanges(); number++; } try { /// ใบของเสียหน้าร้าน frmMainReport mr = new frmMainReport(this, sft.Code); mr.Show(); } catch (Exception) { MessageBox.Show("จำนวนเอกสารผิดพลาด"); } this.Dispose(); } }
/// <summary> /// บันทึกรับเข้า และ เพิ่ม Stock Card Wms /// </summary> private void SaveCommit() { SSLsEntities db = new SSLsEntities(); try { int currentYear = DateTime.Now.Year; int currentMonth = DateTime.Now.Month; var running = db.PORcv.Where(w => w.CreateDate.Year == currentYear && w.CreateDate.Month == currentMonth).Count() + 1; string code = SingletonThisBudgetYear.Instance().ThisYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(running, 4); PORcv rcv = new PORcv(); rcv.FKPOHeader = _po.Id; rcv.Code = MyConstant.PrefixForGenerateCode.RCVPOS + code; rcv.PORefer = "" + rcv.Code; rcv.Description = textBoxRemark.Text; rcv.Enable = true; rcv.CreateDate = DateTime.Now; rcv.CreateBy = SingletonAuthen.Instance().Id; rcv.UpdateDate = DateTime.Now; rcv.UpdateBy = SingletonAuthen.Instance().Id; rcv.DiscountKey = textBoxDiscountKey.Text; rcv.DiscountBath = decimal.Parse(textBoxDiscountBath.Text); rcv.TotalBUnVat = decimal.Parse(textBoxTotalUnVat.Text); rcv.TotalBHasVat = decimal.Parse(textBoxTotalHasVat.Text); rcv.TotalVat = decimal.Parse(textBoxTotalVat.Text); rcv.TotalGift = _totalGift; rcv.DriverName = textBoxDriverName.Text; rcv.InvoiceNo = textBoxInvoice.Text; rcv.InvoiceDate = (DateTime)Library.ConvertTHToENDate(textBoxInvoiceDate.Text); if (_idTransport == 0) { _idTransport = MyConstant.Transport.NotChoose; rcv.TransportRemark = "ไม่เลือกบริษัทขนส่ง"; } rcv.FKTransport = _idTransport; // details //List<PORcvDetails> details = new List<PORcvDetails>(); PORcvDetails detail; decimal rcvAndGift = 0; for (int i = 0; i < dataGridView1.Rows.Count; i++) { detail = new PORcvDetails(); detail.Enable = true; detail.CreateDate = DateTime.Now; detail.CreateBy = SingletonAuthen.Instance().Id; detail.UpdateDate = DateTime.Now; detail.UpdateBy = SingletonAuthen.Instance().Id; string proCode = dataGridView1.Rows[i].Cells[colCode].Value.ToString(); var product = Singleton.SingletonProduct.Instance().ProductDetails.FirstOrDefault(w => w.Code == proCode); detail.FKProductDtl = product.Id; detail.SequenceNumber = int.Parse(dataGridView1.Rows[i].Cells[colNumber].Value.ToString()); // รับเข้าในครั้งนี้ detail.RcvQuantity = decimal.Parse(dataGridView1.Rows[i].Cells[colQtyRcv].Value.ToString()); if (_po.Vendor.FKPOCostType == MyConstant.POCostType.CostOnly) // ตรวจสอบการ ยึดราคาทุน { detail.CurrentCost = product.CostOnly; } else if (_po.Vendor.FKPOCostType == MyConstant.POCostType.CostAndVat) { detail.CurrentCost = product.CostAndVat; } else { detail.CurrentCost = product.CostAndVat; } detail.QtyOnPO = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); detail.NewCost = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString()); detail.DiscountKey = dataGridView1.Rows[i].Cells[colDiscountKey].Value.ToString(); detail.DiscountBath = decimal.Parse(dataGridView1.Rows[i].Cells[colDiscountBath].Value.ToString()); detail.TotalPrice = decimal.Parse(dataGridView1.Rows[i].Cells[colTotal].Value.ToString()); detail.GiftOnPo = decimal.Parse(dataGridView1.Rows[i].Cells[colGiftOnPo].Value.ToString()); detail.GiftQty = decimal.Parse(dataGridView1.Rows[i].Cells[colGift].Value.ToString()); rcv.PORcvDetails.Add(detail); decimal rcvComplet = decimal.Parse(dataGridView1.Rows[i].Cells[colQtyRcvComplete].Value.ToString()); // ยอดรับเข้าครั้งนี้ = ยอดรับเข้า+ของแถม rcvAndGift = detail.GiftQty + detail.RcvQuantity; #region Manage WmsStock //////////////////////////////// ใช้ Library ManageStock แทนละ/////////////////////////////////////////////////////// /// จัดการ stock card //int productId = product.FKProduct; ///// get wmsStock //var wmsStock = db.WmsStock.FirstOrDefault(w => w.Enable == true && w.FKProduct == productId); //if (wmsStock != null) // ถ้าเคยตั้ง stock แล้ว //{ // ProductDetails productDtl = product; // /// check wmsStockDetail เอาตัวล่าสุด // WmsStockDetail wmsDtl = wmsStock.WmsStockDetail.OrderByDescending(w => w.CreateDate).FirstOrDefault(w => w.Enable == true && w.FKProductDetail == productDtl.Id); // decimal thisResultQty = 0; // if (wmsDtl != null) // { // // ถ้ามีใน wms stock detail แล้ว // // modify WmsStockDetail // WmsStockDetail wmsStockDetail = new WmsStockDetail(); // wmsStockDetail.FKItemRemark = MyConstant.ItemRemark.Nornal; // wmsStockDetail.FKProductDetail = productDtl.Id; // wmsStockDetail.FKTransaction = MyConstant.WmsTransaction.RCV; // wmsStockDetail.FKWmsStock = wmsStock.Id; // wmsStockDetail.CreateDate = DateTime.Now; // wmsStockDetail.CreateBy = SingletonAuthen.Instance().Id; // wmsStockDetail.UpdateDate = DateTime.Now; // wmsStockDetail.UpdateBy = SingletonAuthen.Instance().Id; // wmsStockDetail.Enable = true; // wmsStockDetail.Description = "รับเข้าด้วย PO"; // wmsStockDetail.PackSize = productDtl.PackSize; // wmsStockDetail.ActionQtyUnit = rcvAndGift; // wmsStockDetail.ActionQty = rcvAndGift * productDtl.PackSize; // /// Result จะได้ ของยกยอดมา + ของรับเข้าล่าสุด // wmsStockDetail.ResultQtyUnit = wmsDtl.ResultQtyUnit + rcvAndGift; // wmsStockDetail.ResultQty = (wmsDtl.ResultQtyUnit + rcvAndGift) * productDtl.PackSize; // thisResultQty = wmsStockDetail.ResultQty; // db.WmsStockDetail.Add(wmsStockDetail); // } // else // ถ้าไม่มีใน // { // // add new WmsStock // WmsStockDetail wmsStockDetail = new WmsStockDetail(); // wmsStockDetail.FKItemRemark = MyConstant.ItemRemark.Nornal; // wmsStockDetail.FKProductDetail = productDtl.Id; // wmsStockDetail.FKTransaction = MyConstant.WmsTransaction.RCV; // wmsStockDetail.FKWmsStock = wmsStock.Id; // wmsStockDetail.CreateDate = DateTime.Now; // wmsStockDetail.CreateBy = SingletonAuthen.Instance().Id; // wmsStockDetail.UpdateDate = DateTime.Now; // wmsStockDetail.UpdateBy = SingletonAuthen.Instance().Id; // wmsStockDetail.Enable = true; // wmsStockDetail.Description = "รับเข้าด้วย PO"; // wmsStockDetail.PackSize = productDtl.PackSize; // wmsStockDetail.ActionQtyUnit = rcvAndGift; // wmsStockDetail.ActionQty = rcvAndGift * productDtl.PackSize; // /// Result จะได้ ของยกยอดมา + ของรับเข้าล่าสุด // wmsStockDetail.ResultQtyUnit = rcvAndGift; // wmsStockDetail.ResultQty = rcvAndGift * productDtl.PackSize; // thisResultQty = wmsStockDetail.ResultQty; // db.WmsStockDetail.Add(wmsStockDetail); // } // // Update WmsStock // wmsStock.OldQty = wmsStock.CurrentQty; // wmsStock.CurrentQty = thisResultQty; // wmsStock.UpdateDate = DateTime.Now; // wmsStock.UpdateBy = SingletonAuthen.Instance().Id; // db.Entry(wmsStock).State = EntityState.Modified; //} //else // กรณีไม่เคยมีใน Stock //{ // /// ต้อง new stock ใหม่ // // ต้องดัก การ initial Stock ตั้งแต่ new Product //} #endregion } db.PORcv.Add(rcv); List <PORcvDetails> rcvDtl = rcv.PORcvDetails.ToList(); //Library.MakeValueForUpdateStockWms(rcvDtl); // update po status = 3 เคยมีการรับเข้าแล้ว เชคว่าครบแล้วหรือไม่ var po = db.POHeader.SingleOrDefault(w => w.Id == _po.Id); decimal checkRcvQty = 0; decimal checkRcvGiftQty = 0; foreach (var item in po.PODetail.Where(w => w.Enable == true).ToList()) { // ดึง var getProductRcv = rcv.PORcvDetails.FirstOrDefault(w => w.FKProductDtl == item.FKProductDetail); item.RcvQty = item.RcvQty + getProductRcv.RcvQuantity; item.RcvGiftQty = item.RcvGiftQty + getProductRcv.GiftQty; db.Entry(item).State = EntityState.Modified; checkRcvQty = checkRcvQty + item.RcvQty; checkRcvGiftQty = checkRcvGiftQty + item.RcvGiftQty; } if ((checkRcvQty + checkRcvGiftQty) == (po.TotalQty + po.TotalGift)) { // ถ้ารับเข้าครบ แปลว่า Complete po.FKPOStatus = MyConstant.POStatus.RCVComplete; } else { po.FKPOStatus = MyConstant.POStatus.RCVNotEnd; } db.Entry(po).State = EntityState.Modified; db.SaveChanges(); // reset form ResetRcv(); } catch (Exception) { MessageBox.Show("ไม่ถูกต้อง พบข้อผิดพลาด กรุณาติดต่อ admin"); } finally { db.Dispose(); } }
/// <summary> /// Add Member /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, EventArgs e) { DialogResult dr = MessageBox.Show("คุณต้องการบันทึกข้อมูล ใช่หรือไม่ ?", "คำเตือนจากระบบ", MessageBoxButtons.YesNo); switch (dr) { case DialogResult.Yes: // แปลว่า add new if (textBoxId.Text == "") { SaveCommit(); reload(); } else { // edit using (SSLsEntities db = new SSLsEntities()) { int id = int.Parse(textBoxId.Text.ToString()); Member member = new Member(); //member = Singleton.SingletonMember.Instance().Members.SingleOrDefault(w => w.Id == id); member = db.Member.SingleOrDefault(w => w.Id == id); if (radioButtonRemove.Checked == true) { // ถ้าถอนหุ้น วิ่งไปอัพเดท member.IsRemoveShared = true; member.ResignDate = DateTime.Now; //foreach (var item in member.MemberShare.Where(w => w.Enable == true)) //{ // item.UpdateDate = DateTime.Now; // item.UpdateBy = Singleton.SingletonAuthen.Instance().Id; // item.Enable = false; // db.Entry(item).State = EntityState.Modified; //} } else { member.Name = textBoxName.Text; member.Code = textBoxCode.Text.Trim(); member.CreateDate = (DateTime)Library.ConvertTHToENDate(maskedTextBoxMemberCreate.Text); if (radioButtonFemale.Checked == true) { member.FKSex = MyConstant.Sex.Female; } else { member.FKSex = MyConstant.Sex.male; } member.TaxId = textBoxTax.Text; var date = Library.ConvertTHToENDate(textBoxBirthDate.Text); if (date == null) { MessageBox.Show("วันเกิดไม่ถูกต้อง"); return; } else { member.BirthDate = date.Value; } member.Tel = textBoxTel.Text; member.Age = decimal.Parse(textBoxAge.Text); member.Address = textBoxAddress.Text; // หุ้นมากกว่า 0 ถึงเพิ่ม if (this.value > 0) { MemberShare ms = new MemberShare(); ms.Enable = true; var dateC = Library.ConvertTHToENDate(maskedTextBoxCreateDate.Text); if (dateC == null) { MessageBox.Show("วันที่เพิ่มหุ้นไม่ถูกต้อง"); return; } ms.CreateDate = dateC.Value; ms.CreateBy = Singleton.SingletonAuthen.Instance().Id; ms.UpdateDate = DateTime.Now; ms.UpdateBy = Singleton.SingletonAuthen.Instance().Id; ms.FKShare = MyConstant.Shared.General; ms.FKBudgetYear = Singleton.SingletonThisBudgetYear.Instance().ThisYear.Id; ms.Qty = value; ms.FKMember = member.Id; //ms.FKAgeOfShare = this.fkAgeOfShared; ms.FKAgeOfShare = CheckAgeOfShared(ms.CreateDate); db.MemberShare.Add(ms); //db.SaveChanges(); } // check edit share for (int i = 0; i < dataGridView2.Rows.Count; i++) { int idShared = int.Parse(dataGridView2.Rows[i].Cells[0].Value.ToString()); if (idShared != 0) { // หุ้น decimal shareVal = decimal.Parse(dataGridView2.Rows[i].Cells[1].Value.ToString()); MemberShare shareEdit = member.MemberShare.SingleOrDefault(w => w.Id == idShared); if (shareVal < 1) // ใส่ 0 เพื่อต้องการ ลบ หุ้นออก *Disable { shareEdit.Enable = false; shareEdit.UpdateDate = DateTime.Now; shareEdit.UpdateBy = SingletonAuthen.Instance().Id; } else if (shareEdit.Qty != shareVal) { // แปลว่าแก้ไข จำนวนหุ้น ให้อัพเดท shareEdit.Qty = shareVal; shareEdit.UpdateDate = DateTime.Now; shareEdit.UpdateBy = SingletonAuthen.Instance().Id; } db.Entry(shareEdit).State = EntityState.Modified; } } } //db.Member.Attach(member); member.UpdateDate = DateTime.Now; member.UpdateBy = Singleton.SingletonAuthen.Instance().Id; db.Entry(member).State = EntityState.Modified; db.SaveChanges(); var members = Singleton.SingletonMember.Instance().Members; member = members.SingleOrDefault(w => w.Id == id); members.Remove(member); var lastEditMember = db.Member.Include("Sex").Include("MemberShare.Share").Include("MemberShare.AgeOfShare") .SingleOrDefault(w => w.Id == member.Id); members.Add(lastEditMember); this.value = 0; this.fkAgeOfShared = 0; reload(); } } break; case DialogResult.No: break; } }