private void btn_Save_Click(object sender, EventArgs e)
        {
            if (txt_DocNoTran.Text == "")
            {
                MessageBox.Show("คุณยังไม่ได้กรอกข้อมูล [เลขที่เอกสารโอน] ...กรุณากรอกข้อมูลก่อนทำการบันทึก", "ข้อมูลไม่ครบ", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (gridView1.RowCount > 0)
            {
                if (DEntRun == null)
                {
                    Utility.MessageError("ไม่พบข้อมูล [เลข Running] กรุณาทำการเลือกข้อมูล Running ใหม่อีกครั้งครับ");
                    return;
                }

                //------ Check การเปลี่ยน Running
                if (Fn_CheckRunningChange(Convert.ToInt32(_RunningID), _Menu_ID) == false)//True : มีการเปลี่ยน Running พร้อม Reset เป็น 0
                {
                    return;
                }

                if (Utility.MessageQuestion("คุณต้องการที่จะทำการโอนข้อมูลหรือไม่... กด Yes เพื่อยินยันการโอน?") == DialogResult.No)
                {
                    return;
                }

                List <Stock_TranferArInvoice> Item_Source = (List <Stock_TranferArInvoice>)gridView1.DataSource;
                string   TranDocNo       = txt_DocNoTran.Text.Trim();
                DateTime TranDate        = dtp_Tranfer.DateTime;
                string   sRunningCurrent = "";

                List <Stock_TranferArInvoice> Item_Result = new List <Stock_TranferArInvoice>();
                foreach (Stock_TranferArInvoice ItemSet in Item_Source)
                {
                    ItemSet.Tran_DocNo       = TranDocNo;
                    ItemSet.Tran_DocDate     = TranDate;
                    ItemSet.QtyRemain        = ItemSet.Qty - ItemSet.QtyActual; // [Qty] - [QtyActual]
                    ItemSet.Tran_StatusClear = 0;                               //0 : รายการปกติ ยอดคงค้างใช้คำนวณ   1 : รายการที่ถูกยกเลิก ยอดคงค้างจะไม่คำนวณ
                    ItemSet.Status           = ItemSet.QtyRemain == 0 ? 0 : 1;  //0 : โอนสำเร็จ  1 : ค้างโอน  2 : ยกเลิก
                    //ItemSet.Tran_Attribute01 = ItemSet.Tran_Attribute01;
                    ItemSet.Tran_UpdateBy   = Utility._UserDB;
                    ItemSet.Tran_UpdateDate = DateTime.Now;
                    ItemSet.Tran_CreateBy   = Utility._UserDB;
                    ItemSet.Tran_CreateDate = DateTime.Now;
                    //ItemSet.Tran_Attribute01 = "Delete Test where Tran_DocNo=('sdsdsd-0102-3')";
                    Item_Result.Add(ItemSet);
                }

                List <Stock_TranferAccrual> ItemLog = new List <Stock_TranferAccrual>();
                foreach (Stock_TranferArInvoice Iset in Item_Result)
                {
                    Stock_TranferAccrual ILog = new Stock_TranferAccrual();
                    ILog.TranferAccrual_Date   = Iset.Tran_DocDate;
                    ILog.TranferAccual_QtyReam = Iset.QtyActual;
                    ILog.Tran_DocNo            = Iset.Tran_DocNo;
                    ILog.Tran_DocDate          = Iset.Tran_DocDate;
                    ILog.DocNo            = Iset.DocNo;
                    ILog.ItemCode         = Iset.ItemCode;
                    ILog.DocDate          = Iset.DocDate;
                    ILog.ArCode           = Iset.ArCode;
                    ILog.SaleCode         = Iset.SaleCode;
                    ILog.MyDescription    = Iset.MyDescription;
                    ILog.ItemName         = Iset.ItemName;
                    ILog.WHCode           = Iset.WHCode;
                    ILog.ShelfCode        = Iset.ShelfCode;
                    ILog.Qty              = Iset.Qty;
                    ILog.QtyActual        = Iset.QtyActual;
                    ILog.QtyRemain        = Iset.QtyRemain;
                    ILog.Price            = Iset.Price;
                    ILog.Amount           = Iset.Amount;
                    ILog.UnitCode         = Iset.UnitCode;
                    ILog.LineNumber       = Iset.LineNumber;
                    ILog.Tran_StatusClear = Iset.Tran_StatusClear;
                    ILog.Tran_Attribute01 = Iset.Tran_Attribute01;
                    ILog.Tran_Attribute02 = Iset.Tran_Attribute02;
                    ILog.Tran_Attribute03 = Iset.Tran_Attribute03;
                    ILog.Tran_Attribute04 = Iset.Tran_Attribute04;
                    ILog.Tran_Attribute05 = Iset.Tran_Attribute05;
                    ILog.Status           = Iset.Status;
                    ILog.Tran_CreateBy    = Iset.Tran_CreateBy;
                    ILog.Tran_CreateDate  = Iset.Tran_CreateDate;
                    ILog.Tran_UpdateBy    = Iset.Tran_UpdateBy;
                    ILog.Tran_UpdateDate  = Iset.Tran_UpdateDate;
                    ItemLog.Add(ILog);
                }

                try
                {
                    using (var srv = new StockTranferArInvoiceService(Utility.ConnSDB))
                    {
                        using (var srv2 = new StockTranferAccrualService(Utility.ConnSDB))
                        {
                            if (srv.CheckUseDocNo(TranDocNo) == false)
                            {
                                if (Utility.MessageQuestion("ข้อมูลการโอน : " + TranDocNo + " ถูกใช้บันทึกไปแล้ว\nคุณต้องการทำการบันทึกหรือไม่...โดยระบบจะทำการ Running รหัสเอกสารลำดับต่อไป") == DialogResult.Yes)
                                {
                                    //::::::::::: Manage Running Duplicate [Start] :::::::::::::::::::::::
                                    using (var db2 = new DocumentRunningService(Utility.ConnSDB))
                                    {
                                        DEntRun = db2.GetRunning(Convert.ToInt32(_RunningID), _Menu_ID);
                                        do
                                        {
                                            DEntRun         = db2.SetNextRunning(DEntRun); //---- IncreaseNextNumber 1
                                            sRunningCurrent = Db_Run.GetRunningDisplay(DEntRun);
                                        } while (!srv.CheckUseDocNo(sRunningCurrent));     //วนเช็ค Running และ Update Running ไปเรื่อยๆจนกว่าจะเจอ Running ที่ไม่ได้ใช้

                                        foreach (var item in Item_Result)
                                        {
                                            item.Tran_DocNo = sRunningCurrent;
                                        }
                                    }
                                    //::::::::::: Manage Running Duplicate [END] :::::::::::::::::::::::
                                }
                                else
                                {
                                    return;
                                }
                            }

                            bool result     = srv.Insert(Item_Result, DEntRun);
                            bool result_log = srv2.Insert(ItemLog);
                            if (result && result_log)
                            {
                                Utility.MessageInformation("บันทึกข้อมูลเรียบร้อย...");
                                //Fn_ScreenClear();
                                Fn_ClearData();
                            }
                            else
                            {
                                Utility.MessageError("ไม่สามารถบันทึกข้อมูลได้...เนื่องจาก : " + srv.ErrorMessage);
                                Utility.MessageError("ไม่สามารถบันทึกข้อมูลได้...เนื่องจาก : " + srv2.ErrorMessage);
                            }
                        }
                    }
                }
                catch (ApplicationException ex)
                {
                    Utility.MessageError("Error : " + ex.Message);
                    if (ex.InnerException != null)
                    {
                        Utility.MessageError("Error Inner : " + ex.InnerException.Message);
                    }
                }
            }
        }
Example #2
0
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            if (Utility.MessageQuestion("คุณต้องการ [ยกเลิกข้อมูลการโอน] หรือไม่...กด Yes เพื่อทำการยกเลิก") == DialogResult.No)
            {
                return;
            }

            using (var srv = new StockTranferArInvoiceService(Utility.ConnSDB))
            {
                List <Stock_TranferArInvoice> ItemAdd = new List <Stock_TranferArInvoice>();
                List <Stock_TranferAccrual>   ItemLog = new List <Stock_TranferAccrual>();

                Stock_TranferArInvoice Iupdate = srv.GetFind(this._Code);
                if (Iupdate != null)
                {
                    string Remark = txt_Tran_Attribute01.Text.Trim();
                    Iupdate.Tran_Attribute01 = Remark;
                    Iupdate.Status           = 2;//0 : โอนสำเร็จ  1 : ค้างโอน  2 : ยกเลิก
                    Iupdate.Tran_UpdateDate  = DateTime.Now;
                    Iupdate.Tran_UpdateBy    = Utility._UserDB;
                    ItemAdd.Add(Iupdate);

                    Stock_TranferAccrual ILog = new Stock_TranferAccrual();
                    ILog.TranferAccrual_Date = DateTime.Now;
                    ILog.Tran_DocNo          = Iupdate.Tran_DocNo;
                    ILog.Tran_DocDate        = Iupdate.Tran_DocDate;
                    ILog.DocNo            = Iupdate.DocNo;
                    ILog.ItemCode         = Iupdate.ItemCode;
                    ILog.DocDate          = Iupdate.DocDate;
                    ILog.ArCode           = Iupdate.ArCode;
                    ILog.SaleCode         = Iupdate.SaleCode;
                    ILog.MyDescription    = Iupdate.MyDescription;
                    ILog.ItemName         = Iupdate.ItemName;
                    ILog.WHCode           = Iupdate.WHCode;
                    ILog.ShelfCode        = Iupdate.ShelfCode;
                    ILog.Qty              = Iupdate.Qty;
                    ILog.QtyActual        = Iupdate.QtyActual;
                    ILog.QtyRemain        = Iupdate.QtyRemain;
                    ILog.Price            = Iupdate.Price;
                    ILog.Amount           = Iupdate.Amount;
                    ILog.UnitCode         = Iupdate.UnitCode;
                    ILog.LineNumber       = Iupdate.LineNumber;
                    ILog.Tran_StatusClear = Iupdate.Tran_StatusClear;
                    ILog.Tran_Attribute01 = Iupdate.Tran_Attribute01;
                    ILog.Tran_Attribute02 = Iupdate.Tran_Attribute02;
                    ILog.Tran_Attribute03 = Iupdate.Tran_Attribute03;
                    ILog.Tran_Attribute04 = Iupdate.Tran_Attribute04;
                    ILog.Tran_Attribute05 = Iupdate.Tran_Attribute05;
                    ILog.Status           = Iupdate.Status;
                    ILog.Tran_CreateBy    = Iupdate.Tran_CreateBy;
                    ILog.Tran_CreateDate  = Iupdate.Tran_CreateDate;
                    ILog.Tran_UpdateBy    = Iupdate.Tran_UpdateBy;
                    ILog.Tran_UpdateDate  = Iupdate.Tran_UpdateDate;
                    ItemLog.Add(ILog);
                }


                using (var srv2 = new StockTranferAccrualService(Utility.ConnSDB))
                {
                    if (srv.Update(ItemAdd) && srv2.Insert(ItemLog))
                    {
                        Utility.MessageInformation("บันทึกข้อมูลสำเร็จ...");
                        DialogResult = DialogResult.Yes;
                        this.Close();
                    }
                    else
                    {
                        if (srv.ErrorMessage != "")
                        {
                            Utility.MessageError("ไม่สามารถบันทึกได้ เนื่องจาก : " + srv.ErrorMessage);
                        }
                        if (srv2.ErrorMessage != "")
                        {
                            Utility.MessageError("ไม่สามารถบันทึกได้ เนื่องจาก : " + srv2.ErrorMessage);
                        }
                    }
                }
            }
        }
        private void btn_Cancel_Click(object sender, EventArgs e)
        {
            if (gridView1.SelectedRowsCount > 0)
            {
                if (Utility.MessageQuestion("คุณต้องการ [ยกเลิกข้อมูลการโอน] ที่เลือกหรือไม่...กด Yes เพื่อทำการยกเลิก") == DialogResult.No)
                {
                    return;
                }

                int[] rows = gridView1.GetSelectedRows();
                using (var srv = new StockTranferArInvoiceService(Utility.ConnSDB))
                {
                    List <Stock_TranferArInvoice> ItemAdd = new List <Stock_TranferArInvoice>();
                    List <Stock_TranferAccrual>   ItemLog = new List <Stock_TranferAccrual>();
                    for (int i = 0; i < gridView1.SelectedRowsCount; i++)
                    {
                        Stock_TranferArInvoice IReture = (Stock_TranferArInvoice)gridView1.GetRow(rows[i]);
                        Stock_TranferArInvoice Iupdate = srv.GetFind(IReture.ROWORDER);
                        if (Iupdate != null)
                        {
                            //---เดิม
                            //Iupdate.QtyActual = Iupdate.QtyActual + IReture.QtyActual; // บวกการเบิกของใหม่กับเดิมไป

                            //---ใหม่ แก้ตรงข้ามกับอันเดิม 27-12-2559
                            Iupdate.QtyActual        = Iupdate.QtyActual - IReture.QtyActual; // บวกการเบิกของใหม่กับเดิมไป
                            Iupdate.QtyRemain        = Iupdate.Qty - Iupdate.QtyActual;       // คำนวณยอดคงเหลือ
                            Iupdate.Tran_StatusClear = 1;                                     //0 : รายการปกติ ยอดคงค้างใช้คำนวณ   1 : รายการที่ถูกยกเลิก ยอดคงค้างจะไม่คำนวณ
                            Iupdate.Status           = 2;                                     //0 : โอนสำเร็จ  1 : ค้างโอน  2 : ยกเลิก
                            Iupdate.Tran_UpdateDate  = DateTime.Now;
                            Iupdate.Tran_UpdateBy    = Utility._UserDB;
                            ItemAdd.Add(Iupdate);

                            Stock_TranferAccrual ILog = new Stock_TranferAccrual();
                            ILog.TranferAccrual_Date = DateTime.Now;
                            ILog.Tran_DocNo          = Iupdate.Tran_DocNo;
                            ILog.Tran_DocDate        = Iupdate.Tran_DocDate;
                            ILog.DocNo            = Iupdate.DocNo;
                            ILog.ItemCode         = Iupdate.ItemCode;
                            ILog.DocDate          = Iupdate.DocDate;
                            ILog.ArCode           = Iupdate.ArCode;
                            ILog.SaleCode         = Iupdate.SaleCode;
                            ILog.MyDescription    = Iupdate.MyDescription;
                            ILog.ItemName         = Iupdate.ItemName;
                            ILog.WHCode           = Iupdate.WHCode;
                            ILog.ShelfCode        = Iupdate.ShelfCode;
                            ILog.Qty              = Iupdate.Qty;
                            ILog.QtyActual        = Iupdate.QtyActual;
                            ILog.QtyRemain        = Iupdate.QtyRemain;
                            ILog.Price            = Iupdate.Price;
                            ILog.Amount           = Iupdate.Amount;
                            ILog.UnitCode         = Iupdate.UnitCode;
                            ILog.LineNumber       = Iupdate.LineNumber;
                            ILog.Tran_StatusClear = Iupdate.Tran_StatusClear;
                            ILog.Tran_Attribute01 = Iupdate.Tran_Attribute01;
                            ILog.Tran_Attribute02 = Iupdate.Tran_Attribute02;
                            ILog.Tran_Attribute03 = Iupdate.Tran_Attribute03;
                            ILog.Tran_Attribute04 = Iupdate.Tran_Attribute04;
                            ILog.Tran_Attribute05 = Iupdate.Tran_Attribute05;
                            ILog.Status           = Iupdate.Status;
                            ILog.Tran_CreateBy    = Iupdate.Tran_CreateBy;
                            ILog.Tran_CreateDate  = Iupdate.Tran_CreateDate;
                            ILog.Tran_UpdateBy    = Iupdate.Tran_UpdateBy;
                            ILog.Tran_UpdateDate  = Iupdate.Tran_UpdateDate;
                            ItemLog.Add(ILog);
                        }
                    }


                    //foreach (Stock_TranferArInvoice Iset in ItemAdd)
                    //{
                    //    Stock_TranferAccrual ILog = new Stock_TranferAccrual();
                    //    ILog.TranferAccrual_Date = DateTime.Now;
                    //    ILog.Tran_DocNo = Iset.Tran_DocNo;
                    //    ILog.Tran_DocDate = Iset.Tran_DocDate;
                    //    ILog.DocNo = Iset.DocNo;
                    //    ILog.ItemCode = Iset.ItemCode;
                    //    ILog.DocDate = Iset.DocDate;
                    //    ILog.ArCode = Iset.ArCode;
                    //    ILog.SaleCode = Iset.SaleCode;
                    //    ILog.MyDescription = Iset.MyDescription;
                    //    ILog.ItemName = Iset.ItemName;
                    //    ILog.WHCode = Iset.WHCode;
                    //    ILog.ShelfCode = Iset.ShelfCode;
                    //    ILog.Qty = Iset.Qty;
                    //    ILog.QtyActual = Iset.QtyActual;
                    //    ILog.QtyRemain = Iset.QtyRemain;
                    //    ILog.Price = Iset.Price;
                    //    ILog.Amount = Iset.Amount;
                    //    ILog.UnitCode = Iset.UnitCode;
                    //    ILog.LineNumber = Iset.LineNumber;
                    //    ILog.Tran_StatusClear = Iset.Tran_StatusClear;
                    //    ILog.Tran_Attribute01 = Iset.Tran_Attribute01;
                    //    ILog.Tran_Attribute02 = Iset.Tran_Attribute02;
                    //    ILog.Tran_Attribute03 = Iset.Tran_Attribute03;
                    //    ILog.Tran_Attribute04 = Iset.Tran_Attribute04;
                    //    ILog.Tran_Attribute05 = Iset.Tran_Attribute05;
                    //    ILog.Status = Iset.Status;
                    //    ILog.Tran_CreateBy = Iset.Tran_CreateBy;
                    //    ILog.Tran_CreateDate = Iset.Tran_CreateDate;
                    //    ILog.Tran_UpdateBy = Iset.Tran_UpdateBy;
                    //    ILog.Tran_UpdateDate = Iset.Tran_UpdateDate;
                    //    ItemLog.Add(ILog);
                    //}
                    using (var srv2 = new StockTranferAccrualService(Utility.ConnSDB))
                    {
                        if (srv.Update(ItemAdd) && srv2.Insert(ItemLog))
                        {
                            Utility.MessageInformation("บันทึกข้อมูลสำเร็จ...");
                            backgroundWorker_Remain.RunWorkerAsync();
                        }
                        else
                        {
                            if (srv.ErrorMessage != "")
                            {
                                Utility.MessageError("ไม่สามารถบันทึกได้ เนื่องจาก : " + srv.ErrorMessage);
                            }
                            if (srv2.ErrorMessage != "")
                            {
                                Utility.MessageError("ไม่สามารถบันทึกได้ เนื่องจาก : " + srv2.ErrorMessage);
                            }
                        }
                    }
                }
                //List<Stock_TranferArInvoice> ItemAdd = new List<Stock_TranferArInvoice>();
                //for (int i = 0; i < gridView1.SelectedRowsCount; i++)
                //{
                //    Stock_TranferArInvoice IReture = (Stock_TranferArInvoice)gridView1.GetRow(rows[i]);
                //    IReture.QtyRemain = IReture.Qty - IReture.QtyActual; // [Qty] - [QtyActual]
                //    IReture.Tran_StatusClear = 1;//0 : รายการปกติ ยอดคงค้างใช้คำนวณ   1 : รายการที่ถูกยกเลิก ยอดคงค้างจะไม่คำนวณ
                //    ItemAdd.Add(IReture);
                //}

                //using (var srv = new StockTranferArInvoiceService(Utility.ConnSDB))
                //{
                //    if (srv.Update(ItemAdd))
                //    {
                //        Utility.MessageInformation("บันทึกข้อมูลสำเร็จ...");
                //        backgroundWorker_Remain.RunWorkerAsync();
                //    }
                //    else
                //        Utility.MessageError("ไม่สามารถบันทึกได้ เนื่องจาก : " + srv.ErrorMessage);
                //}
            }
        }