/// <summary>
        /// �ت�:�d�ߤW�ǫ᪺���\����
        /// Table:VDS_VDM_VCMS_MAIN_TMP
        /// ����:V_CREATEUID
        /// </summary>
        public void QueryItemTmpImportStat(string V_CREATEUID, out int N_TMP_CNT, out int N_TAB_CNT)
        {
            try
            {
                OUT05 dbo = new OUT05(ref USEDB);

                dbo.doQueryItemTmpImportStat(V_CREATEUID, out N_TMP_CNT, out N_TAB_CNT);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// �ت�:�N�W���ɮפ��e�A�s�J�Ȧs��
        /// �ǤJ�ѼơG
        /// �e@�ҥΤ�f
        /// 1.���M���e�@���A�P�@�ϥΪ̰��檺�פJ�Ȧs��T�P���~��T�C
        ///    ����Table:
        ///    B=VDS_STM_ROUTE_STORE_TMP
        /// 2.Ū���פJ�ɮר�ȦsDataSet�C
        /// B.EFF_START=�e@�ҥΤ�f�A��L���ѷ��ɮ׮榡�C
        /// 3.�ˬd�פJ�ɮ׮榡���e�O�_���T�A�p�������~�A�h����W�Ǭy�{�A�æ^�ǿ��~�T���C
        ///   �yXX�ɮסA�ɮפ��e���~�G@���~�����z (�榡�аѦҸ�ƮwTable Shcema)
        ///       * ����G�ˬd����榡�C
        ///       * �Ʀr�G�ˬd���e�O�_���Ʀr�C
        ///       * ��r�G�ˬd���׬O�_����C
        ///       * �ɮ����ƬO�_�����C
        ///       * ��Ӥu�@��פJ���e����@�����A�ҵ������~�A�����C
        ///       * �פJ���Ӹ`�����аѦҡGWEB UI SPEC ���
        /// 4. �榡�ˬd���T�L�~��
        ///    a) �Ȧs�ɤ���[���A]���վ㬰1:FILE TO TMP
        ///    b) �I�s [CheckData] �A�ˬd��Ƥ��e�޿西�T��
        /// 5. �L��CheckData()�ˬd���G�O�_��True�A
        ///    �ұN�W���ɮפ��e�s�W���ƮwTmp Table:�A
        ///    �ðO�����~��]�B�פJ�̡B�פJ����B�B�z�ɮצW��=�W���ɦW�C
        ///    c)�W�z�פJ�ݤ@��Commit�A�B�z�����������~�A�ҵ������`�A���Rollback�A�æ^�ǿ��~�T���C
        /// 6. �W�Ǭy�{�����A�^�dzB�z���ưT���G�W���`���ơB���\���ơB���ѵ��ơC
        /// 7.�p�GCheckData()�ˬd���G��True�A�I�s [ProcessImportRoute.TmpToDB]�A�B�z�פJ�������C
        /// * �פJ�ɮ׹����A�аѦҤu�@��GSTM24 ��u����פJ(�ɮ׮榡)�C
        /// </summary>
        public void FileToTmp(DataTable dt, DbTransaction RootDBT, string V_DATA_SOURCE,  string V_CREATEUID, out string ErrorMsg)
        {
            bool IsRootTranscation = false;

            try
            {
                OUT05 dbo = new OUT05(ref USEDB);

                ErrorMsg = "";
                //�P�_�O�_���ǤJRoot Transcation
                IsRootTranscation = (RootDBT == null) ? true : false;

                #region �Ұʥ���Ϋ��wRootTranscation

                if (IsRootTranscation)
                {
                    //�W�ߩI�s�Ұ�Transcation
                    Conn = USEDB.CreateConnection();
                    Conn.Open();
                    DBT = Conn.BeginTransaction();
                }
                else
                {
                    DBT = RootDBT;
                }

                #endregion

                #region �M��VDS_OUT_VENDOR_TMP

                dbo.doDeleteItemTmp(V_CREATEUID, DBT);

                #endregion

                #region FileToTmp
                ArrayList ParameterList = new ArrayList();
                string V_RESULT = "1";

                if (dt != null)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        if (V_RESULT == "1")
                        {
                            string[] V_DATA = dt.Rows[i][0].ToString().Split(',');

                            if (V_DATA.Length != 4)
                            {
                                ErrorMsg = "��J�~�����ʳ��ɮץ��ѡA���ӼƤ��� 4 �ӡA���˵����`����I";
                                throw new Exception(ErrorMsg);
                            }
                            else
                            {
                                int[] V_LENGTH_ARRAY = { 15, 6, 8, 5 };
                                string V_LENGTH_LIMIT = "4"; // �i�H���ŭȪ����(�ӫ~�T��)
                                // Ū�J�}�C�����
                                string VENDOR = V_DATA[0];
                                string BARCODE = V_DATA[1];
                                string PURCHASE_QTY = V_DATA[2];
                                string PLAN_ACCEPT_DATE = V_DATA[3];
                                string MSG = V_DATA[2];
                                // ��ƪ����ˬd
                                for (int j = 0; j < V_LENGTH_ARRAY.Length;j++ )
                                {
                                    // ���o���ŭȪ�����ˬd
                                    if (V_DATA[j].Length <= 0 && V_LENGTH_LIMIT.IndexOf((j+1).ToString()) == -1)
                                    {
                                        ErrorMsg = string.Format("��J�~�����ʳ��ɮץ��ѡA��{0}����ơA��{1}�����A�H�Ϥ��o���ŭȪ�����", i+1, j+1);
                                        throw new Exception(ErrorMsg);
                                    }
                                    // �����ת��ˬd
                                    if (V_DATA[j].Length > V_LENGTH_ARRAY[j])
                                    {
                                        ErrorMsg = string.Format("��J�~�����ʳ��ɮץ��ѡA��{0}����ơA��{1}�����A��ƪ��׶W�L����", i+1, j+1);
                                        throw new Exception(ErrorMsg);
                                    }
                                }
                                // ��ƫ��O�ˬd
                                int V_IntTryParse;
                                DateTime V_DateTryParse;
                                if (!int.TryParse(PURCHASE_QTY, out V_IntTryParse) && !DateTime.TryParse(PLAN_ACCEPT_DATE, out V_DateTryParse))
                                {
                                    ErrorMsg = "��J�~�����ʳ��ɮץ��ѡA��ƫ��O�����T�A���˵����`����I";
                                    throw new Exception(ErrorMsg);
                                }

                                ParameterList.Clear();
                                ParameterList.Add(V_DATA_SOURCE);
                                ParameterList.Add(System.DateTime.Now);
                                ParameterList.Add(dt.Rows[i][0].ToString());
                                ParameterList.Add(V_CREATEUID);
                                ParameterList.Add(System.DateTime.Now);
                                dbo.doCreateTemp(ParameterList, DBT, out V_RESULT);
                            }

                        }
                    }
                }
                #endregion

                #region TmpToDB

                dbo.doCreateData(V_CREATEUID, DBT, out V_RESULT);

                if (V_RESULT == "0")
                    ErrorMsg = "��J�~�����ʳ��ɮץ��ѡA���˵����`����I";
                #endregion

                if (IsRootTranscation)
                {
                    //�W�ߩI�sTranscation����
                    DBT.Commit();
                }
            }
            catch (Exception ex)
            {
                #region �������

                DBT.Rollback();
                #endregion

                throw ex;
            }
            finally
            {
                #region �P�_�O�_��������s�u

                if (IsRootTranscation)
                {
                    //�W�ߩI�sTranscation,�����s�u
                    if (Conn.State == ConnectionState.Connecting)
                    {
                        Conn.Close();
                    }
                }

                #endregion

            }
        }
 /// <summary>
 /// �ت�:�d�߿��~�T�����
 /// Table:
 ///  B=VDS_STM_ROUTE_STORE_TMP
 /// ����:[��ƫ��A]=2:���~��ơB[�إߤH��]=
 /// </summary>
 public DataTable QueryErrorByFind(string V_CREATEUID, DateTime V_CREATEDATE_S, DateTime V_CREATEDATE_E)
 {
     try
     {
         OUT05 dbo = new OUT05(ref USEDB);
         return dbo.doQueryItemTmpError(V_CREATEUID, V_CREATEDATE_S, V_CREATEDATE_E);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }