Пример #1
0
        private void Prc_Fill_DgrStatus()
        {
            string _query;

            _query = @"SELECT decode(a.id_name, 'Null', 'Y', b.status) status,
                                                     a.id_name status_name, b.where_log, b.err_code
                                                FROM tb_lst_stacqt a, ( SELECT c.pck, c.status, d.tax_model,
                                                                               c.where_log, c.err_code 
                                                                          FROM tb_log_pck c, tb_lst_taxo d
                                                                         WHERE c.short_name = d.short_name 
                                                                           AND c.ltd = 0 
                                                                           AND c.short_name = '" + v_short_name + @"') b
                                               WHERE a.func_name = b.pck(+) 
                                                 AND EXISTS ( SELECT 1 
                                                                FROM tb_lst_taxo c 
                                                               WHERE c.short_name = '" + v_short_name + @"' 
                                                                 AND (c.tax_model = a.tax_model or a.tax_model = '*'))
                                            ORDER BY a.stt";

            DataTable _dt = _ora.exeQuery(_query);

            for (int i = 0; i < _dt.Rows.Count; i++)
            {
                DataRow _dr = _dt.Rows[i];

                ListViewItem lvi = new ListViewItem(_dr["status_name"].ToString());
                lvi.SubItems.Add(_dr["status"].ToString());
                lvi.SubItems.Add(_dr["where_log"].ToString());
                lvi.SubItems.Add(_dr["err_code"].ToString());

                this.lvwLog.Items.Add(lvi);
            }
            _dt = null;
        }
Пример #2
0
        private void importFileExcelToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (CLS_DBASE.ORA _ora = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ))
            {
                string    _query = @"SELECT *
                                    FROM tb_01_para a
                                   WHERE a.rv_group = 'JAVA'
                                ORDER BY a.id";
                DataTable _dt    = _ora.exeQuery(_query);

                string cmd              = _dt.Rows[0]["rv_chr"].ToString();
                string cmdParams        = _dt.Rows[1]["rv_chr"].ToString();
                string workingDirectory = _dt.Rows[2]["rv_chr"].ToString();
                int    timeout          = Int32.Parse(_dt.Rows[3]["rv_chr"].ToString());

                using (Process process = Process.Start(new ProcessStartInfo(cmd, cmdParams)))
                {
                    process.StartInfo.WorkingDirectory       = workingDirectory;
                    process.StartInfo.UseShellExecute        = false;
                    process.StartInfo.RedirectStandardOutput = true;
                    process.StartInfo.WindowStyle            = ProcessWindowStyle.Hidden;
                    process.Start();
                    process.StandardOutput.ReadToEnd();
                    process.WaitForExit(timeout);
                }
            }
        }
Пример #3
0
        //test check out
        //TienTM2 : Get parameter of Target Server
        public static void Prc_Targetes_Server_Parameter(ref string target_username, ref string target_password)
        {
            //            using (CLS_DBASE.ORA _connOra_cndm = new CLS_DBASE.ORA("Provider=msdaora;Data Source=DPPIT;User Id=TKTQ;Password=TKTQ;"))
            using (CLS_DBASE.ORA _connOra_ptsp = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ))
            {
                string _query = "";

                //Biến lưu trữ tên của hàm hoặc thủ tục
                string v_pck = "Prc_Targetes_Server_Parameter";

                // Biến lưu số bản ghi dữ liệu phát sinh tháng
                //int _rowsnum = 0;

                ArrayList parameter = new ArrayList();

                #region Server Parameter
                try
                {
                    _query = @"SELECT rv_key, rv_chr FROM tb_01_para where rv_group ='TARGETES'";
                    DataTable _dt = _connOra_ptsp.exeQuery(_query);
                    foreach (DataRow _dr in _dt.Rows)
                    {
                        target_username = _dr["rv_key"].ToString().Trim();
                        target_password = _dr["rv_chr"].ToString().Trim();
                    }
                }
                catch (Exception e)
                {
                    //return -1;
                    MessageBox.Show(e.Message);
                }
                #endregion
            }
        }
Пример #4
0
        public static void Fnc_doc_file_thang(string p_short_name,
                                              string p_tax_name,
                                              string p_tax_code,
                                              string p_path,
                                              DirectoryInfo p_dir_source,
                                              DateTime p_ky_chot,
                                              DateTime p_ky,
                                              Forms.Frm_QLCD p_frm_qlcd
                                              )
        {
            using (CLS_DBASE.ORA _connOra_tkmb = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQVATW))
            {
                string _query = "";

                // Biến lưu trữ tên của hàm hoặc thủ tục
                string v_pck = "FNC_DOC_FILE_CCTT";

                int    _rowsnum   = 0;
                string _File_Nghi = "Nghi" + p_ky.ToString("yyyy") + ".DBF";

                // Biến lưu mô tả lỗi, ngoại lệ trong quá trình đọc file dữ liệu
                string _error_message = "";

                string _search_pattern = "TK" + p_ky.ToString("MMyyyy") + ".DBF";
                // Đối tượng lưu trữ danh sách các file dữ liệu tờ khai môn bài
                ArrayList _listFile = new ArrayList();
                // Lấy danh sách các file dữ liệu tờ khai môn bài
                _listFile.AddRange(p_dir_source.GetFiles(_search_pattern));

                foreach (FileInfo _file in _listFile)
                {
                    if (_file.Name.Length != 12)
                    {
                        continue;
                    }

                    _query = @"SELECT   a.madtnt as tin,
                                                a.kykkhai,                                                                     
                                                max(a.NgNop) as NgNop,
                                                max(a.HanNop) as HanNop,
                                                a.kylbo, 
                                                a.MaTM as MaTM,
                                                sum(a.thuecl) as so_tien
                                        FROM {0} a                                                                                          
                                             INNER JOIN
                                             DTNT2.DBF as c
                                                ON a.madtnt = c.madtnt                                              
                                       WHERE a.TThTK$'1' AND allt(a.MaTKHAI) = '4Q/GTGTKH'
                                             and Allt(a.madtnt) not in (select Allt(MaDTNT) from {3} where empty(denngay))
                                       GROUP BY a.madtnt, a.kykkhai, a.kylbo, a.MaTM";

                    _query = _query.Replace("{0}", _file.Name);
                    _query = _query.Replace("{3}", _File_Nghi);

                    CLS_DBASE.FOX _connFoxPro = new CLS_DBASE.FOX(p_path);
                    // Chứa dữ liệu
                    DataTable _dt = _connFoxPro.exeQuery(_query);

                    foreach (DataRow _dr in _dt.Rows)
                    {
                        #region Xác định mã đối tượng người nộp thuế
                        string _tin  = _dr["tin"].ToString().Trim();
                        string matin = _dr["tin"].ToString().Trim();
                        if (matin.Length > 10)
                        {
                            matin = matin.Insert(10, "-");
                        }
                        _query = _query.Replace("{4}", matin);
                        #endregion

                        #region Xác định kỳ phát sinh của đối tượng nộp thuế
                        // Biến lưu trữ kỳ kê khai lấy từ file dữ liệu
                        string _ky_kkhai = _dr["KyKKhai"].ToString().Replace("/", "").Trim();
                        if (_ky_kkhai.Length != 5)
                        {
                            _ky_kkhai = (((p_ky_chot.Month - 1) / 3) + 1).ToString("D")
                                        + p_ky_chot.ToString("yyyy");
                        }

                        // Ngày bắt đầu kỳ phát sinh
                        DateTime _kykk_tu_ngay;
                        // Ngày kết thúc kỳ phát sinh
                        DateTime _kykk_den_ngay;
                        int      _quy_ky_kkhai;
                        int      _nam_ky_kkhai;

                        _quy_ky_kkhai = Int32.Parse(_ky_kkhai.Trim().Substring(0, 1));
                        _nam_ky_kkhai = Int32.Parse(_ky_kkhai.Trim().Substring(1, 4));

                        if (_quy_ky_kkhai == 1)
                        {
                            _kykk_tu_ngay  = new DateTime(_nam_ky_kkhai, 1, 1);
                            _kykk_den_ngay = new DateTime(_nam_ky_kkhai, 3, 31);
                        }
                        else if (_quy_ky_kkhai == 2)
                        {
                            _kykk_tu_ngay  = new DateTime(_nam_ky_kkhai, 4, 1);
                            _kykk_den_ngay = new DateTime(_nam_ky_kkhai, 6, 30);
                        }
                        else if (_quy_ky_kkhai == 3)
                        {
                            _kykk_tu_ngay  = new DateTime(_nam_ky_kkhai, 7, 1);
                            _kykk_den_ngay = new DateTime(_nam_ky_kkhai, 9, 30);
                        }
                        else if (_quy_ky_kkhai == 4)
                        {
                            _kykk_tu_ngay  = new DateTime(_nam_ky_kkhai, 10, 1);
                            _kykk_den_ngay = new DateTime(_nam_ky_kkhai, 12, 31);
                        }
                        else
                        {
                            p_frm_qlcd.AddToListView(0, "   + " + p_short_name
                                                     + "/ " + v_pck + ": "
                                                     + new InvalidDataException("Quý không hợp lệ").Message);
                            continue;
                        }
                        #endregion

                        #region Lấy số ID tự tăng trong CSDL trung gian
                        _query = @"select seq_id_csv.nextval ID from dual";
                        DataTable _dt_ID = _connOra_tkmb.exeQuery(_query);
                        string    _ID    = _dt_ID.Rows[0]["ID"].ToString().Trim();
                        #endregion

                        string _NgNop  = ((DateTime)_dr["NgNop"]).ToString("dd/MM/yyyy").Trim();
                        string _HanNop = ((DateTime)_dr["HanNop"]).ToString("dd/MM/yyyy").Trim();
                        string _MaTM   = _dr["MaTM"].ToString().Trim();

                        _query = @"INSERT INTO TB_01_THKH_HDR
                                               (short_name,
                                                tin, 
                                                KYTT_TU_NGAY,
                                                KYTT_DEN_NGAY,   
                                                NGAY_HTOAN,
                                                NGAY_NOP_TK,                                                                                                                                         
                                                tax_model,
                                                ma_cqt,                                                
                                                id,                                                                                                
                                                Han_Nop                                          
                                                )
                                        VALUES ('{0}', '{1}', '{2}',
                                                '{3}', '{4}', '{5}',
                                                '{6}', '{7}', {8},
                                                '{9}')";

                        _query = _query.Replace("{0}", p_short_name);
                        _query = _query.Replace("{1}", matin);
                        _query = _query.Replace("{2}", _kykk_tu_ngay.ToString("dd/MM/yyyy"));
                        _query = _query.Replace("{3}", _kykk_den_ngay.ToString("dd/MM/yyyy"));
                        _query = _query.Replace("{4}", p_ky_chot.ToString("dd/MM/yyyy"));
                        _query = _query.Replace("{5}", _NgNop);
                        _query = _query.Replace("{6}", "VAT-APP");
                        _query = _query.Replace("{7}", p_tax_code);
                        _query = _query.Replace("{8}", _ID);
                        _query = _query.Replace("{9}", _HanNop);

                        if (_connOra_tkmb.exeUpdate(_query) != 0)
                        {
                            _rowsnum++;
                        }

                        string _File_DTL = "KH" + p_ky.ToString("MMyyyy") + ".DBF";

                        if (p_dir_source.GetFiles(_File_DTL).Count() > 0)
                        {
                            DataTable _dt_details;

                            #region Cập nhật chỉ tiêu tờ khai khoan

                            _query = @"SELECT b.madtnt,
                                                allt(str(sum(b.DSo), 20, 0)) as Doanh_Thu,
                                                allt(str(sum(b.GTTT), 20, 0)) as GTTT,
                                                allt(str(sum(b.ThueSuat), 2, 0)) as ThueSuat,
                                                allt(str(sum(b.Thue), 20, 0)) as Thue_GTGT
                                             FROM {0} b
                                             WHERE b.madtnt = '" + _tin +
                                     "' AND b.MaTM = '" + _MaTM +
                                     "' GROUP BY b.madtnt, b.MaTM";

                            _query = _query.Replace("{0}", _File_DTL);


                            _dt_details = _connFoxPro.exeQuery(_query);

                            foreach (DataRow _dr_details in _dt_details.Rows)
                            {
                                string _thue_suat = _dr_details["ThueSuat"].ToString().Trim();
                                if (_thue_suat == "5")
                                {
                                    _query = @"UPDATE TB_01_THKH_HDR a
                                                        SET a.doanh_thu_quy_ts_5 = {0},
                                                        a.gtgt_chiu_thue_quy_ts_5 = {1},
                                                        a.thue_gtgt_quy_ts_5 = {2}
                                                        WHERE a.ID = {3}"
                                    ;
                                }
                                else
                                {
                                    _query = @"UPDATE TB_01_THKH_HDR a
                                                        SET a.doanh_thu_quy_ts_10 = {0},
                                                        a.gtgt_chiu_thue_quy_ts_10 = {1},
                                                        a.thue_gtgt_quy_ts_10 = {2}
                                                        WHERE a.ID = {3}"
                                    ;
                                }

                                _query = _query.Replace("{0}", _dr_details["doanh_thu"].ToString().Trim());
                                _query = _query.Replace("{1}", _dr_details["GTTT"].ToString().Trim());
                                _query = _query.Replace("{2}", _dr_details["Thue_GTGT"].ToString().Trim());
                                _query = _query.Replace("{3}", _ID);
                                _connOra_tkmb.exeUpdate(_query);

                                _query = @"UPDATE TB_01_THKH_HDR a
                                                        SET 
                                                        a.doanh_thu_ts_5 = a.doanh_thu_quy_ts_5 / 3 ,
                                                        a.gtgt_chiu_thue_ts_5 = a.gtgt_chiu_thue_quy_ts_5 / 3,
                                                        a.thue_gtgt_ts_5 = a.thue_gtgt_quy_ts_5 / 3,
                                                        a.doanh_thu_ts_10 = a.doanh_thu_quy_ts_10 / 3 ,
                                                        a.gtgt_chiu_thue_ts_10 = a.gtgt_chiu_thue_quy_ts_10 / 3,
                                                        a.thue_gtgt_ts_10 = a.thue_gtgt_quy_ts_10 /3
                                                        WHERE a.ID = {3}";
                                _query = _query.Replace("{3}", _ID);
                                _connOra_tkmb.exeUpdate(_query);
                            }
                            // Xóa nội dung chi tiết tờ khai
                            _dt_details.Clear();

                            #endregion
                        }
                    }
                    _dt.Clear();
                    _dt = null;
                    _connFoxPro.close();
                }
                _listFile.Clear();
                _listFile = null;

                //Ghi log
                _connOra_tkmb.TransStart();
                _query = null;
            }
        }
Пример #5
0
        // Đọc dữ liệu TKMB
        public static void Fnc_doc_file_tkmb(string p_short_name,
                                             string p_tax_name,
                                             string p_tax_code,
                                             string p_path,
                                             DirectoryInfo p_dir_source,
                                             DateTime p_ky_chot,
                                             Forms.Frm_QLCD p_frm_qlcd,
                                             ref int p_rownum,
                                             ref int p_rownumn)
        {
            using (CLS_DBASE.ORA _connOra_tkmb = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQVATW))
            {
                string _query = "";

                // Biến lưu trữ tên của hàm hoặc thủ tục
                string v_pck    = "FNC_DOC_FILE_TKMB";
                string _Nam_TrK = p_ky_chot.Year.ToString().Trim();

                string _TM_1801, _TM_1802, _TM_1803, _TM_1804, _TM_1805, _TM_1806;
                string _File_Nghi = "Nghi" + p_ky_chot.ToString("yyyy") + ".DBF";

                // Biến lưu trữ số bản ghi đã thêm vào bảng TB_TK
                int _rowsnum  = 0;
                int _rowsnumn = 0;

                // Biến lưu mô tả lỗi, ngoại lệ trong quá trình đọc file dữ liệu
                string _error_message = "";

                // Đọc file TKMBYYYY.DBF
                string _search_pattern = "TKMB" + _Nam_TrK + ".DBF";
                // Đối tượng lưu trữ danh sách các file dữ liệu tờ khai môn bài
                ArrayList _listFile = new ArrayList();
                // Lấy danh sách các file dữ liệu tờ khai môn bài
                _listFile.AddRange(p_dir_source.GetFiles(_search_pattern));

                foreach (FileInfo _file in _listFile)
                {
                    if (_file.Name.Length != 12)
                    {
                        continue;
                    }

                    _query = @"SELECT a.madtnt as tin,
                                             a.kykkhai,              
                                             a.NgNop as NgNop,                                                       
                                             DToC(a.NgNop) as cNgNop,
                                             dtoc(a.HanNop) as HanNop,
                                             a.kylbo,
                                             sum(a.ThueTKy) as TongThue
                                        FROM {0} a
                                                INNER JOIN
                                             DTNT2.DBF as c
                                                ON a.madtnt = c.madtnt                                                 
                                       WHERE (a.TThTK$'1,3,4' AND 
                                              a.KyLBo <= '{4}' AND
                                              a.ngnop = (sele max(ngnop) from {0} d 
                                                         where a.MaDTNT = d.MaDTNT and a.KyKKhai = d.KyKKhai 
                                                         AND d.TThTK$'1,3,4' and !delete()
                                                         AND d.KyLBo <= '{4}'
                                                         )
                                              and Allt(a.madtnt) not in (select Allt(MaDTNT) from {3} where empty(denngay))	
                                              )
                                       GROUP BY a.madtnt, a.kykkhai, a.NgNop, a.HanNop, a.kylbo";

                    _query = _query.Replace("{0}", _file.Name);
                    _query = _query.Replace("{3}", _File_Nghi);
                    _query = _query.Replace("{4}", p_ky_chot.ToString("MM/yyyy"));

                    CLS_DBASE.FOX _connFoxPro = new CLS_DBASE.FOX(p_path);
                    // Chứa dữ liệu
                    DataTable _dt = _connFoxPro.exeQuery(_query);

                    foreach (DataRow _dr in _dt.Rows)
                    {
                        #region Xác định mã đối tượng người nộp thuế
                        string _tin  = _dr["tin"].ToString().Trim();
                        string matin = _dr["tin"].ToString().Trim();
                        if (matin.Length > 10)
                        {
                            matin = matin.Insert(10, "-");
                        }
                        _query = _query.Replace("{4}", matin);
                        #endregion

                        #region Xác định kỳ kê khai
                        string _kykk_tu_ngay  = "01/01/" + _dr["kykkhai"].ToString().Trim();
                        string _kykk_den_ngay = "31/12/" + _dr["kykkhai"].ToString().Trim();
                        #endregion

                        #region Xác định kỳ lập bộ
                        string _kylb_tu_ngay = ("01/" + _dr["kylbo"].ToString().Trim());
                        string kylbo         = _dr["kylbo"].ToString().Trim();
                        #endregion

                        #region Không lấy dữ liệu có kỳ lập bộ lớn hơn kỳ chốt
                        if (Int32.Parse(kylbo.Substring(0, 2)) > Int32.Parse(p_ky_chot.ToString("MM")))
                        {
                            continue;
                        }
                        #endregion

                        #region Lấy số ID tự tăng trong CSDL trung gian
                        _query = @"select seq_id_csv.nextval ID from dual";
                        DataTable _dt_ID = _connOra_tkmb.exeQuery(_query);
                        string    _ID    = _dt_ID.Rows[0]["ID"].ToString().Trim();
                        string    _NgNop = ((DateTime)_dr["NgNop"]).ToString("dd/MM/yyyy").Trim();

                        if (Int32.Parse(kylbo.Substring(0, 2)) > Int32.Parse(p_ky_chot.ToString("MM")))
                        {
                            continue;
                        }
                        #endregion

                        #region Xác định thuế hạch toán vào các TM
                        _TM_1801 = "0";
                        _TM_1802 = "0";
                        _TM_1803 = "0";
                        _TM_1804 = "0";
                        _TM_1805 = "0";
                        _TM_1806 = "0";

                        _query = @"SELECT a.MaTM as MaTM,
                                                a.ThueTKy as SoTien                                              
                                                FROM {0} a                                                                                             
                                                WHERE a.madtnt = '{1}' 
                                                AND a.kykkhai = '{2}'
                                                AND a.NgNop = CToD('{3}') ";

                        _query = _query.Replace("{0}", _file.Name);
                        _query = _query.Replace("{1}", _dr["tin"].ToString().Trim());
                        _query = _query.Replace("{2}", _dr["kykkhai"].ToString().Trim());
                        _query = _query.Replace("{3}", _dr["cNgNop"].ToString().Trim());

                        DataTable _dt_hachtoan;

                        _dt_hachtoan = _connFoxPro.exeQuery(_query);
                        foreach (DataRow _dr_hachtoan in _dt_hachtoan.Rows)
                        {
                            switch (_dr_hachtoan["MaTM"].ToString().Trim())
                            {
                            case "1801":
                                _TM_1801 = _dr_hachtoan["SoTien"].ToString().Trim();
                                break;

                            case "1802":
                                _TM_1802 = _dr_hachtoan["SoTien"].ToString().Trim();
                                break;

                            case "1803":
                                _TM_1803 = _dr_hachtoan["SoTien"].ToString().Trim();
                                break;

                            case "1804":
                                _TM_1804 = _dr_hachtoan["SoTien"].ToString().Trim();
                                break;

                            case "1805":
                                _TM_1805 = _dr_hachtoan["SoTien"].ToString().Trim();
                                break;

                            case "1806":
                                _TM_1806 = _dr_hachtoan["SoTien"].ToString().Trim();
                                break;
                            }
                        }

                        #endregion

                        int flag = 0;

                        _query = @"INSERT INTO TB_TKMB_HDR
                                               (short_name,
                                                tin, 
                                                KYTT_TU_NGAY,
                                                KYTT_DEN_NGAY,   
                                                NGAY_HTOAN,
                                                NGAY_NOP_TK,                                                                                                                                         
                                                tax_model,
                                                ma_cqt,                                                
                                                id,                                                                                                
                                                Han_Nop,
                                                TONG_THUE_PN_NNT,
                                                TONG_THUE_PN_CQT,
                                                TM_1801,
                                                TM_1802,
                                                TM_1803,
                                                TM_1804,
                                                TM_1805,
                                                TM_1806
                                                )
                                        VALUES ('{0}', '{1}', '{2}',
                                                '{3}', '{4}', '{5}',
                                                '{6}', '{7}', {8},
                                                '{9}',{10},{11},{12},
                                                {13},{14},{15},{16},{17})";

                        _query = _query.Replace("{0}", p_short_name);
                        _query = _query.Replace("{1}", matin);
                        _query = _query.Replace("{2}", _kykk_tu_ngay);
                        _query = _query.Replace("{3}", _kykk_den_ngay);
                        _query = _query.Replace("{4}", p_ky_chot.ToString("dd/MM/yyyy").Trim());
                        _query = _query.Replace("{5}", _NgNop);
                        _query = _query.Replace("{6}", "VAT-APP");
                        _query = _query.Replace("{7}", p_tax_code);
                        _query = _query.Replace("{8}", _ID);
                        _query = _query.Replace("{9}", _dr["HanNop"].ToString().Trim());
                        _query = _query.Replace("{10}", _dr["TongThue"].ToString().Trim());
                        _query = _query.Replace("{11}", _dr["TongThue"].ToString().Trim());
                        _query = _query.Replace("{12}", _TM_1801);
                        _query = _query.Replace("{13}", _TM_1802);
                        _query = _query.Replace("{14}", _TM_1803);
                        _query = _query.Replace("{15}", _TM_1804);
                        _query = _query.Replace("{16}", _TM_1805);
                        _query = _query.Replace("{17}", _TM_1806);


                        if (_connOra_tkmb.exeUpdate(_query) != 0)
                        {
                            _rowsnum++;
                        }

                        string _File_DTL = "MBCT" + _Nam_TrK + ".DBF";

                        // Đối tượng lưu trữ thông tin chi tiết tờ khai 10/KK-TNCN
                        DataTable _dt_details;

                        #region Cập nhật chỉ tiêu tờ khai môn bài

                        _query = @"SELECT b.madtnt, b.STT as STT, b.BacMB as BacMB_NNT, b.BacMB2 as BacMB_CQT, 
                                             allt(str(b.VonDK, 20, 0)) as VonDK_NNT, allt(str(b.VonDK2, 20, 0)) as VonDK_CQT,
                                             allt(str(b.ThuePN, 20, 0)) as ThuePN_NNT, allt(str(b.ThuePN2, 20, 0)) as ThuePN_CQT
                                             FROM {0} b
                                             WHERE b.madtnt = '{1}' And b.ngnop = ctod('{2}') AND !Empty(b.MaTM) ";

                        _query = _query.Replace("{0}", _File_DTL);
                        _query = _query.Replace("{1}", _dr["tin"].ToString().Trim());
                        _query = _query.Replace("{2}", _dr["cNgNop"].ToString().Trim());


                        _dt_details = _connFoxPro.exeQuery(_query);
                        foreach (DataRow _dr_details in _dt_details.Rows)
                        {
                            string _Chi_Tieu = "";
                            if (_dr_details["STT"].ToString().Trim() == "2")
                            {
                                _Chi_Tieu = "2";
                            }
                            if (_dr_details["STT"].ToString().Trim() == "3")
                            {
                                _Chi_Tieu = "3";
                            }

                            // Bac mon bai NNT
                            string _BacMB_NNT = _dr_details["BacMB_NNT"].ToString().Trim();
                            // Bac mon bai CQT
                            string _BacMB_CQT = _dr_details["BacMB_CQT"].ToString().Trim();
                            //VonDK NNT
                            string _VonDK_NNT = _dr_details["VonDK_NNT"].ToString().Trim();
                            //VonDK CQT
                            string _VonDK_CQT = _dr_details["VonDK_CQT"].ToString().Trim();
                            //ThuePN NNT
                            string _ThuePN_NNT = _dr_details["ThuePN_NNT"].ToString().Trim();
                            //ThuePN NNT
                            string _ThuePN_CQT = _dr_details["ThuePN_CQT"].ToString().Trim();

                            if (_Chi_Tieu == "2")
                            {
                                _query = @"UPDATE TB_TKMB_HDR 
                                                           SET BMB_NNT = '{0}',
                                                               Von_DKy_NNT = {1},
                                                               Thue_PN_NNT = {2},
                                                               BMB_CQT = '{3}',
                                                               Von_DKy_CQT = {4},
                                                               Thue_PN_CQT = {5}
                                                           Where ID = {6} ";
                                _query = _query.Replace("{0}", _BacMB_NNT);
                                _query = _query.Replace("{1}", _VonDK_NNT);
                                _query = _query.Replace("{2}", _ThuePN_NNT);
                                _query = _query.Replace("{3}", _BacMB_CQT);
                                _query = _query.Replace("{4}", _VonDK_CQT);
                                _query = _query.Replace("{5}", _ThuePN_CQT);
                                _query = _query.Replace("{6}", _ID.ToString());

                                _connOra_tkmb.exeUpdate(_query);
                            }

                            if (_Chi_Tieu == "3")
                            {
                                _query = @"INSERT INTO TB_TKMB_DTL
                                                               (id,                                                                                                
                                                                HDR_ID,                                                
                                                                BMB_NNT,
                                                                Von_DKy_NNT,
                                                                Thue_PN_NNT,
                                                                BMB_CQT,
                                                                Von_DKy_CQT,
                                                                Thue_PN_CQT
                                                                )
                                                            VALUES ({0}, {1}, '{2}',
                                                                {3}, {4}, '{5}',
                                                                {6}, {7})";

                                _query = _query.Replace("{0}", "seq_id_csv.nextval");
                                _query = _query.Replace("{1}", _ID.ToString());
                                _query = _query.Replace("{2}", _BacMB_NNT);
                                _query = _query.Replace("{3}", _VonDK_NNT);
                                _query = _query.Replace("{4}", _ThuePN_NNT);
                                _query = _query.Replace("{5}", _BacMB_CQT);
                                _query = _query.Replace("{6}", _VonDK_CQT);
                                _query = _query.Replace("{7}", _ThuePN_CQT);

                                _connOra_tkmb.exeUpdate(_query);
                            }
                        }
                        // Xóa nội dung chi tiết tờ khai
                        _dt_details.Clear();

                        #endregion
                    }
                    _dt.Clear();
                    _dt = null;
                    _connFoxPro.close();
                }
                _listFile.Clear();
                _listFile = null;

                //Ghi log
                _connOra_tkmb.TransStart();
                _query = null;


                //   return _rowsnum;
                p_rownum  = _rowsnum;
                p_rownumn = _rowsnumn;
            }
        }