private void SaveCommit() { try { CNWarehouse cnw = new CNWarehouse(); cnw.Enable = true; cnw.Description = textBoxDesc.Text; cnw.CreateDate = DateTime.Now; cnw.CreateBy = Singleton.SingletonAuthen.Instance().Id; cnw.UpdateDate = DateTime.Now; cnw.UpdateBy = Singleton.SingletonAuthen.Instance().Id; cnw.FKWasteReason = _WasteReason; decimal qtyPiece = 0; List <CNWarehouseDetails> details = new List <CNWarehouseDetails>(); CNWarehouseDetails detail; for (int i = 0; i < dataGridView1.Rows.Count; i++) { var code = dataGridView1.Rows[i].Cells[colCode].Value; if (code == null) { continue; } detail = new CNWarehouseDetails(); 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.PricePerUnit = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString()); detail.BeforeVat = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString()) * detail.Qty; detail.Vat = 0; detail.TotalPrice = detail.BeforeVat + detail.Vat; details.Add(detail); //if (i >= dataGridView1.Rows.Count - 2) break; } cnw.FKVendor = _VendorId; cnw.DocDate = DateTime.Now; cnw.DocRefer = textBoxDocRefer.Text; cnw.TotalQty = qtyPiece; cnw.TotalQtyUnit = decimal.Parse(textBoxQtyUnit.Text); cnw.TotalUnVat = decimal.Parse(textBoxTotalUnVat.Text); cnw.TotalBeforeVat = decimal.Parse(textBoxTotalBeforeVat.Text); cnw.TotalVat = decimal.Parse(textBoxTotalVat.Text); cnw.TotalBalance = decimal.Parse(textBoxTotalBalance.Text); cnw.CNWarehouseDetails = details; using (SSLsEntities db = new SSLsEntities()) { int currentYear = DateTime.Now.Year; int currentMonth = DateTime.Now.Month; var getCNCode = db.CNWarehouse.Where(w => w.CreateDate.Year == currentYear && w.CreateDate.Month == currentMonth).Count() + 1; BudgetYear budget = Singleton.SingletonThisBudgetYear.Instance().ThisYear; //Branch branch = Singleton.SingletonP var code = MyConstant.PrefixForGenerateCode.GoodsReturnCN + "" + budget.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(getCNCode, 4); cnw.Code = code; db.CNWarehouse.Add(cnw); db.SaveChanges(); // ManageStock Wms //Library.MakeValueForUpdateStockWms(details); MessageBox.Show("บันทึกเรียบร้อย " + cnw.Code); frmMainReport mr = new frmMainReport(this, code); mr.Show(); ResetForm(); } } catch (Exception) { MessageBox.Show("พบข้อมผิดพลาด"); } }
private void SaveCommit() { try { CNWarehouse cnw = new CNWarehouse(); cnw.Code = textBoxCode.Text; cnw.Enable = true; cnw.Description = textBoxDesc.Text; cnw.CreateDate = DateTime.Now; cnw.CreateBy = Singleton.SingletonAuthen.Instance().Id; cnw.UpdateDate = DateTime.Now; cnw.UpdateBy = Singleton.SingletonAuthen.Instance().Id; cnw.FKWasteReason = _WasteReason; decimal qtyPiece = 0; List <CNWarehouseDetails> details = new List <CNWarehouseDetails>(); CNWarehouseDetails detail; for (int i = 0; i < dataGridView1.Rows.Count; i++) { detail = new CNWarehouseDetails(); 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[colQtyCN].Value.ToString()); if (detail.Qty < 1) { continue; } qtyPiece += decimal.Parse(dataGridView1.Rows[i].Cells[colQtyCN].Value.ToString()) * decimal.Parse(dataGridView1.Rows[i].Cells[colPZ].Value.ToString()); detail.PricePerUnit = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString()); detail.BeforeVat = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString()) * detail.Qty; detail.Vat = ((detail.BeforeVat * detail.Qty) * MyConstant.MyVat.Vat) / 100; detail.TotalPrice = detail.BeforeVat + detail.Vat; details.Add(detail); //if (i >= dataGridView1.Rows.Count - 2) break; } cnw.FKVendor = _VendorId; cnw.DocDate = DateTime.Now; cnw.DocRefer = textBoxDocRefer.Text; cnw.TotalQty = qtyPiece; cnw.TotalQtyUnit = decimal.Parse(textBoxQtyUnit.Text); cnw.TotalUnVat = decimal.Parse(textBoxTotalUnVat.Text); cnw.TotalBeforeVat = decimal.Parse(textBoxTotalBeforeVat.Text); cnw.TotalVat = decimal.Parse(textBoxTotalVat.Text); cnw.TotalBalance = cnw.TotalUnVat + cnw.TotalBeforeVat; cnw.CNWarehouseDetails = details; using (SSLsEntities db = new SSLsEntities()) { db.CNWarehouse.Add(cnw); db.SaveChanges(); // ManageStock Wms //Library.MakeValueForUpdateStockWms(details); MessageBox.Show("บันทึกเรียบร้อย " + cnw.Code); // Add To Details ก่อน // WasteWarehouse ห้องของเสียจัดเก็บ // WasteWarehouseDetails foreach (var item in details) { WasteWarehouseDetails dtl = new WasteWarehouseDetails(); dtl.ConfirmCNBy = null; dtl.ConfirmCNDate = null; var getProdDtl = Singleton.SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == item.FKProductDetails); dtl.CostOnly = getProdDtl.CostOnly; dtl.CreateBy = item.CreateBy; dtl.CreateDate = DateTime.Now; dtl.Description = "ส่งคืนห้องของเสีย ให้ผู้จำหน่าย"; dtl.DocReference = cnw.Code; dtl.Enable = true; dtl.FKProductDetails = item.FKProductDetails; var lastTrans = db.WasteWarehouseDetails.Where(w => w.FKProductDetails == item.FKProductDetails && w.Enable == true) .OrderByDescending(w => w.CreateDate).FirstOrDefault(); dtl.FKWasteWarehouse = lastTrans.FKWasteWarehouse; dtl.IsInOrOut = false; dtl.LastResultPiece = 0; dtl.LastResultUnit = 0; dtl.Packsize = getProdDtl.PackSize; dtl.QtyPiece = item.Qty * dtl.Packsize; dtl.QtyUnit = item.Qty; dtl.SellPrice = getProdDtl.SellPrice; dtl.UpdateBy = item.CreateBy; dtl.UpdateDate = DateTime.Now; db.WasteWarehouseDetails.Add(dtl); db.SaveChanges(); // Update HD var wasteWarehouseHD = db.WasteWarehouse.SingleOrDefault(w => w.Id == lastTrans.FKWasteWarehouse); wasteWarehouseHD.QtyPiece = wasteWarehouseHD.QtyPiece - dtl.QtyPiece; wasteWarehouseHD.QtyUnit = wasteWarehouseHD.QtyUnit - dtl.QtyUnit; db.Entry(wasteWarehouseHD).State = EntityState.Modified; db.SaveChanges(); } } // Update ห้องของเสีย //Library.AddWasteWarehouse(details, cnw.Code); // Open Paper WasteCN //PaperCNWasteViewer obj = new PaperCNWasteViewer(this, cnw.Code); //obj.ShowDialog(); frmMainReport mr = new frmMainReport(this, cnw.Code); mr.Show(); ResetForm(); } catch (Exception) { MessageBox.Show("พบข้อมผิดพลาด"); } }