/// <summary> /// double click เลือกรายการ /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex < 0 || e.RowIndex < 0) { return; } SSLsEntities db = new SSLsEntities(); try { int currentRow = dataGridView1.CurrentRow.Index; int currentId = int.Parse(dataGridView1.Rows[currentRow].Cells[0].Value.ToString()); var data = db.POHeader.Include("PODetail.ProductDetails.Products.ProductVatType").Include("Vendor.POCostType").SingleOrDefault(w => w.Id == currentId); PODetailsDialog obj = new PODetailsDialog(data); obj.ShowDialog(); } catch (Exception ex) { } finally { db.Dispose(); } }
/// <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(); } }
/// <summary> /// ยกเลิก PO ทีละ 1 PO /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button4_Click(object sender, EventArgs e) { SSLsEntities db = new SSLsEntities(); 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.RCVNotEnd) { 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.Enable = false; db.Entry(data).State = EntityState.Modified; db.SaveChanges(); Search(); break; case DialogResult.No: break; } } } catch (Exception ex) { MessageBox.Show("พบข้อผิดพลาด ในการเลือกรายการ"); } finally { db.Dispose(); } }
/// <summary> /// ยืนยันชำระหนี้ /// </summary> private void SaveCommit() { SSLsEntities db = new SSLsEntities(); try { foreach (var item in stackDebtor) { } } catch (Exception) { } finally { db.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(); } }
private void dataGridView1_SelectionChanged(object sender, EventArgs e) { SSLsEntities db = new SSLsEntities(); try { if (hasCellBeenEdited && dataGridView1.CurrentCell.ColumnIndex != dataGridView1.ColumnCount - 10) { int desiredColumn = dataGridView1.CurrentCell.ColumnIndex + 2; int desiredRow = dataGridView1.CurrentCell.RowIndex - 1; string _Code = dataGridView1.Rows[desiredRow].Cells[colCode].Value.ToString().Replace(" ", ""); var data = db.ProductDetails.FirstOrDefault(w => w.Enable == true && w.Code == _Code); if (desiredColumn == 3) { dataGridView1.CurrentCell = dataGridView1[desiredColumn, desiredRow]; hasCellBeenEdited = false; if (_Code == null) { } else { if (data == null) { MessageBox.Show("ไม่พบรหัสสินค้า " + _Code + " ในระบบกรุณาตรวจสอบอีกครั้ง", "คำเตือนจากระบบ", MessageBoxButtons.OK, MessageBoxIcon.Warning); dataGridView1.Rows[desiredRow].Cells[colCode].Value = null; SendKeys.Send("{LEFT}"); SendKeys.Send("{LEFT}"); return; } else { setGridView(desiredRow, data); } } } else { SumCalRow(); return; desiredRow++; dataGridView1.CurrentCell = dataGridView1[desiredColumn, desiredRow]; hasCellBeenEdited = false; setGridView(desiredRow, data); } } else if (hasCellBeenEdited && dataGridView1.CurrentCell.ColumnIndex == dataGridView1.ColumnCount - 10) { int desiredColumn = 1; int desiredRow = dataGridView1.CurrentCell.RowIndex; dataGridView1.CurrentCell = dataGridView1[desiredColumn, desiredRow]; hasCellBeenEdited = false; } // set value //decimal qty1 = decimal.Parse(dataGridView1.Rows[desiredRow].Cells[colQty1].Value.ToString()); //return; SumCalRow(); } catch (Exception) { } finally { db.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> /// หลังจากยืนยัน จะต้อง add เข้า pos ด้วย เพราะเป็นการจบการขาย เชื่อ /// </summary> /// <param name="stackDocNo"></param> private void ConfirmOrder(IEnumerable<string> stackDocNo) { SSLsEntities dbS = new SSLsEntities(); try { using (SSLsEntities db = new SSLsEntities()) { PosHeader pos; List<PosDetails> details; foreach (var item in stackDocNo) { pos = new PosHeader(); details = new List<PosDetails>(); var order = db.SaleOrderWarehouse.Include("SaleOrderWarehouseDtl.ProductDetails.Products.ProductVatType").SingleOrDefault(w => w.Code == item && w.Enable == true && w.InvoiceNo == null && w.ConfirmOrderDate == null); // call library tin tin DataTable dataMap = Library.ConvertToDataTable(MapSaleOrderWHForLibrary(order)); //TradPickBigCar(string tb_cusno, string tb_sentno, string tb_po_distcount, string tb_statusno, int UserId, string tb_costall, string detail, DataTable dt, string invoice) //TradPickBigCar(order.FKMember.ToString(), order.FKBranch.ToString(), 0 + "", "ยืนยัน", int.Parse(order.CreateBy), order.TotalBalance.ToString(), order.Description, dataMap, order.Code); var ds = db.SaleOrderWarehouseDtl.Where(w => w.Enable == true & w.SaleOrderWarehouse.Enable == true & w.ProductDetails.Enable == true & w.ProductDetails.Products.Enable == true & w.SaleOrderWarehouse.InvoiceNoWH == null & w.SaleOrderWarehouse.Code == item) .Select(s => new { PRODUCT_ID = s.ProductDetails.Products.FKRowID, PRODUCT_NO = s.ProductDetails.Code, PRODUCT_NAME = s.ProductDetails.Name, UNIT_NAME = s.ProductDetails.ProductUnit.Name, QTY = s.Qty, GIVEAWAY = "0", COST = s.PricePerUnit, DISCOUNT = (s.PercentDiscount + s.BathDiscount), COST_TOTAL = s.TotalPrice }).ToList(); DataTable dt = Library.ConvertToDataTable(ds); foreach (DataRow row in dt.Rows) { Console.WriteLine(row["PRODUCT_NO"].ToString()); } if (dt.Rows.Count > 0) { var dshd = db.SaleOrderWarehouseDtl.Where(w => w.Enable == true & w.SaleOrderWarehouse.Enable == true & w.ProductDetails.Enable == true & w.ProductDetails.Products.Enable == true & w.SaleOrderWarehouse.InvoiceNoWH == null & w.SaleOrderWarehouse.Code == item).FirstOrDefault(); if (dshd != null) { var check = Library.TradPickBigCar(dshd.SaleOrderWarehouse.Member.Code.ToString(), "1", "0", "1", int.Parse(dshd.SaleOrderWarehouse.CreateBy), dshd.SaleOrderWarehouse.TotalBeforeVat.ToString(), dshd.SaleOrderWarehouse.Description.ToString(), dt, dshd.SaleOrderWarehouse.Code.ToString()); if (check == "OK") { Console.WriteLine(check); } else { Console.WriteLine(check); } } } // call เสด ReCal Recal(order.Code); /// ถ้า ไป เชคกะ จารตินแล้ว ไม่ได้ของ จิงๆ ก็ คอนเฟิมไปนะแหละ List<SaleOrderWarehouseDtl> getNewList = dbS.SaleOrderWarehouseDtl.Where(w => w.Enable == true && w.FKSaleOrderWarehouse == order.Id).ToList(); if (getNewList.Sum(w => w.QtyAllow) == 0) { order.FKSaleOrderWarehouseStatus = MyConstant.SaleOrderWarehouseStatus.ConfirmOrder; order.UpdateDate = DateTime.Now; order.UpdateBy = Singleton.SingletonAuthen.Instance().Id; order.ConfirmOrderDate = DateTime.Now; order.ConfirmOrderBy = Singleton.SingletonAuthen.Instance().Id; db.Entry(order).State = EntityState.Modified; db.SaveChanges(); return; } // Add To Pos pos.Qty = getNewList.Sum(w => w.QtyAllow); pos.QtyList = getNewList.Count(); pos.TotalCost = 0; pos.FKPosType = MyConstant.POsType.Creadit; pos.FKPosMachine = _posMachine.Id; pos.FKBudgetYear = Singleton.SingletonThisBudgetYear.Instance().ThisYear.Id; pos.PrintSequence = 0; foreach (var dtl in getNewList) { PosDetails dd = new PosDetails(); dd.Enable = true; dd.Description = "รถใหญ่"; dd.CreateDate = DateTime.Now; dd.CreateBy = Singleton.SingletonAuthen.Instance().Id; dd.UpdateDate = DateTime.Now; dd.UpdateBy = Singleton.SingletonAuthen.Instance().Id; dd.FKProductDetails = dtl.FKProductDtl; dd.Qty = dtl.QtyAllow; dd.Cost = dtl.ProductDetails.CostAndVat; dd.PricePerUnit = dtl.PricePerUnit; dd.DiscountCoupon = 0; dd.DiscountShop = dtl.BathDiscount; if (dtl.QtyAllow < dd.Qty) { // ถ้าไม่ได้ตามเป้า dd.DiscountShop = 0; } dd.TotalPrice = dtl.TotalPrice; if (dtl.ProductDetails.Products.ProductVatType.Id == MyConstant.ProductVatType.HasVat) { decimal removeVat = dd.TotalPrice * MyConstant.MyVat.Vat / MyConstant.MyVat.VatRemove; dd.TotalBeforeVat = dd.TotalPrice - removeVat; dd.TotalVat = removeVat; } else { dd.TotalBeforeVat = dd.TotalPrice; dd.TotalVat = 0; } dd.IsPromotion = false; details.Add(dd); } var posCode = Library.GetGeneratePosNo(this._posMachine); pos.InvoiceNo = posCode; pos.Enable = true; pos.Description = order.Description; pos.CreateDate = DateTime.Now; pos.CreateBy = Singleton.SingletonAuthen.Instance().Id; pos.UpdateDate = DateTime.Now; pos.UpdateBy = Singleton.SingletonAuthen.Instance().Id; pos.FKMember = order.FKMember; pos.FKDebtor = order.FKDebtor; pos.TotalBalance = order.TotalBalance; pos.PayDate = null; pos.TotalVat = order.TotalVat; pos.TotaNoVat = order.TotaNoVat; pos.Total = order.Total; pos.TotalDiscountCoupon = 0; pos.TotalDiscountShop = 0; pos.TotalBeforeVat = order.TotalBeforeVat; pos.Discount = 0; pos.Cash = order.TotalBalance; pos.Change = 0; pos.TotalDiscountShop = details.Sum(w => w.DiscountShop); pos.PosDetails = details; //pos.Total = getNewList.Sum(w => w.QtyAllow); order.FKSaleOrderWarehouseStatus = MyConstant.SaleOrderWarehouseStatus.ConfirmOrder; order.UpdateDate = DateTime.Now; order.UpdateBy = Singleton.SingletonAuthen.Instance().Id; order.ConfirmOrderDate = DateTime.Now; order.ConfirmOrderBy = Singleton.SingletonAuthen.Instance().Id; order.InvoiceNo = posCode; // add to post เพื่อขาย db.PosHeader.Add(pos); // อีพเดท สถาน db.Entry(order).State = EntityState.Modified; db.SaveChanges(); } LoadGrid(); } } catch (Exception) { } finally { dbS.Dispose(); } }