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("พบข้อมผิดพลาด");
            }
        }
Exemplo n.º 2
0
        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("พบข้อมผิดพลาด");
            }
        }