/// <summary>
        /// 傳入參數:
        /// 〔@依照頁面輸入的查詢條件〕
        /// 傳回訊息:
        /// 〔@回傳gridview 參照web ui spec〕
        /// 
        /// Table:
        /// DM=VDS_VAM_DISCOUNT_MAIN(進項折讓主檔)
        /// DD=VDS_VAM_DISCOUNT_DETL(進項折讓明細檔)
        /// 
        /// 關聯:
        /// DM.DISC_NO=DD.DISC_NO
        /// 
        /// 說明:
        /// 依照查詢條件回傳資料清單
        /// </summary>
        public DataTable QueryByFind(ArrayList ParameterList)
        {
            try
            {

                DBO.VAM071_DBO dbo = new VAM071_DBO(ref USEDB);
                return dbo.doQueryDiscountMain(ParameterList);

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 呼叫VDS_ACM_VAM07.SP_DELETEDISCOUNTINVOICE
        /// 
        /// 傳入參數:
        /// 〔@折讓號碼〕
        /// 
        /// 傳回訊息:
        /// 〔@刪除是否成功〕
        /// 
        /// MAIN TABLE:
        /// VDS_VAM_DISCOUNT_MAIN(進項折讓主檔)
        /// VDS_VAM_DISCOUNT_DETL(進項折讓明細檔)
        /// VDS_VAM_DIFF_INVOICE(物料差主檔)
        /// VDS_VAM_DISCOUNT_INV(折讓發票檔)
        /// 
        /// REFERENCE TABLE:
        /// 1.VDS_VGI_ACCEPT_MAIN (驗收主檔)
        /// 2.VDS_VGR_RETURN_MAIN (廠退主檔)
        /// 
        /// 參考附件說明:Package_SP_VDS_ACM_VAM07.doc
        /// </summary>
        public void DeleteDiscountInvoice(ArrayList ParameterList1, DbTransaction RootDBT)
        {
            bool IsRootTranscation = false;

            try
            {
                DBO.VAM071_DBO dbo = new VAM071_DBO(ref USEDB);

                //判斷是否有傳入Root Transcation 
                IsRootTranscation = (RootDBT == null) ? true : false;


                #region 啟動交易或指定RootTranscation

                if (IsRootTranscation)
                {
                    //獨立呼叫啟動Transcation
                    Conn = USEDB.CreateConnection();
                    Conn.Open();
                    DBT = Conn.BeginTransaction();
                }
                else
                {
                    DBT = RootDBT;
                }

                #endregion
                
                //先刪除原發票資料
                dbo.doDeleteDiscountInvoice(ParameterList1, DBT);
                
                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation成立
                    DBT.Commit();
                }
                
            }
            catch (Exception ex)
            {
                #region 交易失敗

                DBT.Rollback();
                #endregion

                throw ex;
            }
            finally
            {
                #region 判斷是否關閉交易連線

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation,關閉連線
                    if (Conn.State == ConnectionState.Connecting)
                    {
                        Conn.Close();
                    }
                }

                #endregion

            }
        }
        /// <summary>
        /// 傳入值:
        /// 〔@要修改資料列PK〕
        /// 
        /// 回傳值:
        /// 〔@更新是否成功〕
        /// 
        /// 說明:
        /// 呼叫VDS_ACM_VAM07.
        /// SP_UPDATEDISCOUNTINVOICE,先將資料還原後在進行新增,所以先呼叫SP_DELETEDISCOUNTINVOICE刪除新增發票收據資料後在呼
        /// 叫SP名稱:SP_CREATEDISCOUNTINVOICE設定新增發票收據資料。
        /// 
        /// 參考附件說明:Package_SP_VDS_ACM_VAM07.doc
        /// </summary>
        public void UpdateDiscountInvoice(ArrayList ParameterList1,ArrayList ParameterList, DataTable dtA, DataTable dtB, DbTransaction RootDBT, string V_DISC_NO,int N_ID)
        {
            bool IsRootTranscation = false;

            try
            {
                DBO.VAM071_DBO dbo = new VAM071_DBO(ref USEDB);

                //判斷是否有傳入Root Transcation 
                IsRootTranscation = (RootDBT == null) ? true : false;


                #region 啟動交易或指定RootTranscation

                if (IsRootTranscation)
                {
                    //獨立呼叫啟動Transcation
                    Conn = USEDB.CreateConnection();
                    Conn.Open();
                    DBT = Conn.BeginTransaction();
                }
                else
                {
                    DBT = RootDBT;
                }

                #endregion
                
                //先刪除原發票資料
                dbo.doDeleteDiscountInvoice(ParameterList1, DBT);

                //做折讓主檔新增
                dbo.doUpdateDiscountMain(ParameterList, N_ID, V_DISC_NO, DBT);


                //做折讓明細檔新增
                ArrayList Parameter_Det = new ArrayList();

                if (dtA != null)
                {
                    for (int i = 0; i < dtA.Rows.Count; i++)
                    {
                        Parameter_Det.Clear();
                        //N_PID
                        Parameter_Det.Add(N_ID);
                        //V_DISC_NO
                        Parameter_Det.Add(V_DISC_NO);
                        //V_TAX_TYPE
                        Parameter_Det.Add(ParameterList[1]);
                        //V_SOURCE_TYPE
                        Parameter_Det.Add(GetValueSetParameter(dtA.Rows[i]["SOURCE_TYPE"].ToString(), "string", false));
                        //V_SOURCE_NO
                        Parameter_Det.Add(GetValueSetParameter(dtA.Rows[i]["SOURCE_NO"].ToString(), "string", false));
                        //N_REMAIN_AMT目前沒用到該欄位所以填NULL
                        Parameter_Det.Add(GetValueSetParameter("", "float", false));
                        //N_AMT
                        Parameter_Det.Add(GetValueSetParameter(dtA.Rows[i]["AMT"].ToString(), "float", false));
                        //D_UPDATEDATE
                        Parameter_Det.Add(ParameterList[6]);
                        //V_UPDATEUID
                        Parameter_Det.Add(ParameterList[7]);
                        //D_CREATEDATE
                        Parameter_Det.Add(ParameterList[8]);
                        //V_CREATEUID
                        Parameter_Det.Add(ParameterList[9]);

                        dbo.doInsertDiscountDetl(Parameter_Det,DBT);
                    }
                }


                //做發票折讓明細檔新增
                
                if (dtB != null)
                {
                    for (int i = 0; i < dtB.Rows.Count; i++)
                    {
                        Parameter_Det.Clear();
                        
                        //V_DISC_NO
                        Parameter_Det.Add(V_DISC_NO);
                        //V_INV_NO
                        Parameter_Det.Add(GetValueSetParameter(dtB.Rows[i]["INV_NO"].ToString(), "string", false));
                        //N_DISC_AMT
                        Parameter_Det.Add(GetValueSetParameter(dtB.Rows[i]["DISC_AMT"].ToString(), "float", false));
                        //V_UPDATEUID
                        Parameter_Det.Add(ParameterList[7]);
                        //D_UPDATEDATE
                        Parameter_Det.Add(ParameterList[6]);
                        //V_CREATEUID
                        Parameter_Det.Add(ParameterList[9]);
                        //D_CREATEDATE
                        Parameter_Det.Add(ParameterList[8]);
                        
                        dbo.doInsertDiscountInvoice(Parameter_Det, DBT);
                    }
                }

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation成立
                    DBT.Commit();
                }
                else
                {
                    DBT.Rollback();
                }
                
            }
            catch (Exception ex)
            {
                #region 交易失敗

                DBT.Rollback();
                #endregion

                throw ex;
            }
            finally
            {
                #region 判斷是否關閉交易連線

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation,關閉連線
                    if (Conn.State == ConnectionState.Connecting)
                    {
                        Conn.Close();
                    }
                }

                #endregion

            }
        }
 //查詢發票明細檔資料
 public DataTable QueryInvoiceDetl(string V_VANDOR,string V_INV_NO)
 {
     try
     {
         DBO.VAM071_DBO dbo = new VAM071_DBO(ref USEDB);
         return dbo.doQueryPurchaseInvoiceInfo(V_VANDOR,V_INV_NO);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        //查詢發票折讓明細檔
        public DataTable QueryDiscountInv(string V_DISC_NO)
        {
            try
            {

                DBO.VAM071_DBO dbo = new VAM071_DBO(ref USEDB);
                return dbo.doQueryDiscountInv(V_DISC_NO);

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        //查詢進退貨折讓明細檔
        public DataTable ViewDiscountDetl(string V_DISC_NO)
        {
            try
            {

                DBO.VAM071_DBO dbo = new VAM071_DBO(ref USEDB);
                return dbo.doViewDiscountDetl(V_DISC_NO);

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }