Beispiel #1
0
 public static void Prc_delete()
 {
     CLS_DBASE.ORA _ora = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ);
     string _query = @"DELETE FROM tb_temp_dchieu
                             WHERE mau = 'VAT-APP'";
     _ora.TransStart();
     try
     {
         _ora.TransExecute(_query);
         _ora.TransCommit();
     }
     catch (Exception e) {
         throw new Exception("Có lỗi khi xóa dữ liệu: " + e.Message.ToString());
         _ora.TransRollBack();
     }
     finally {
         _ora.close();
     }
 }
Beispiel #2
0
        public static void Prc_import_psqt(DirectoryInfo p_dir_source, string p_path)
        {
            CLS_DBASE.ORA _ora = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ);
            string _query = "";
            string _search_pattern = "PSQT.DBF";
            _ora.TransStart();
            try
            {
                ArrayList _listFile = new ArrayList();
                _listFile.AddRange(p_dir_source.GetFiles(_search_pattern));

                foreach (FileInfo _file in _listFile)
                {
                    try
                    {
                        _query = @"SELECT short_name, matkhai, tien from {0}";

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

                        CLS_DBASE.FOX _connFoxPro = new CLS_DBASE.FOX(p_path);

                        DataTable _dt = _connFoxPro.exeQuery(_query);

                        foreach (DataRow _dr in _dt.Rows)
                        {
                            _query = @"INSERT INTO tb_temp_dchieu ( short_name,
                                                                    mau,
                                                                    v_char1,
                                                                    v_char2,
                                                                    v_char3,
                                                                    loai)
                                            VALUES ('{1}', '{2}', '{3}', '{4}', '{5}', '{6}')";

                            _query = _query.Replace("{1}", _dr["short_name"].ToString());
                            _query = _query.Replace("{2}", "VAT-APP");
                            _query = _query.Replace("{3}", _dr["matkhai"].ToString());
                            _query = _query.Replace("{4}", String.Format("{0:#,0}", Double.Parse(_dr["tien"].ToString())));
                            _query = _query.Replace("{5}", "");
                            _query = _query.Replace("{6}", "PS");

                            _ora.TransExecute(_query);
                        }
                        _dt.Clear();
                        _dt = null;
                        _connFoxPro.close();
                    }
                    catch (FormatException e)
                    {
                        _ora.TransRollBack();
                        throw new FormatException("Có lỗi khi import file psqt.dbf: " + e.Message.ToString());
                    }
                    catch (Exception e)
                    {
                        _ora.TransRollBack();
                        throw new Exception("Có lỗi khi import file psqt.dbf: " + e.Message.ToString());
                    }
                }
                _ora.TransCommit();
                _listFile.Clear();
                _listFile = null;

            }
            catch (Exception e)
            {
                _ora.TransRollBack();
                throw new Exception("Có lỗi khi import file psqt.dbf: " + e.Message.ToString());
            }
            finally
            {
                _ora.close();
            }
        }
Beispiel #3
0
        // Dữ liệu chi tiết tờ khai 10/KK-TNCN
        private void Prc_doc_file_tk10(string p_short_name, string p_tax_name, string p_tax_code, string p_path, DirectoryInfo p_dir_source, DateTime p_ky_tk10_tu, DateTime p_ky_tk10_den)
        {
            try
            {
                // Đọc file CNTKYYYY.DBF
                string _search_pattern = "CNTK2012.DBF";
                // Đối tượng lưu trữ danh sách các file dữ liệu chi tiết tờ khai 10/KK-TNCN
                ArrayList _listFile = new ArrayList();
                // Lấy danh sách các file dữ liệu chi tiết tờ khai 10/KK-TNCN
                _listFile.AddRange(p_dir_source.GetFiles(_search_pattern));

                CLS_DBASE.ORA _connOra_tk10 = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ);
                // Biến lưu trữ số bản ghi đã thêm vào bảng TB_TK

                AddToListView(2, "Tiến hành thực hiện đọc dữ liệu chi tiết tờ khai 10/KK-TNCN của " + p_tax_name);

                int _rowsnum = 0;
                foreach (FileInfo _file in _listFile)
                {
                    try
                    {
                        string _query = @"SELECT a.madtnt as tin,
                                             a.kykkhai,
                                             a.NgNop as kylb_tu_ngay,
                                             b.madlt as mst_dtk,
                                             b.sohd as hd_dlt_so,
                                             dtoc(b.ngayhd) as hd_dlt_ngay
                                        FROM {0} a
                                                LEFT JOIN
                                             DTNT_DLT.DBF as b
                                                ON a.madtnt = b.madtnt
                                       WHERE a.matkhai = '10/KK-TNCN'
                                         AND (a.Thuetky2 = 0
                                                OR
                                              ISNULL(a.Thuetky2))";

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

                        CLS_DBASE.FOX _connFoxPro = new CLS_DBASE.FOX(p_path);
                        // Chứa dữ liệu
                        DataTable _dt = _connFoxPro.exeQuery(_query);
                        int _stt = 0; // Biến đếm số bản ghi
                        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();
                            #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 = ((DateTime)_dr["kylb_tu_ngay"]).ToString("dd/MM/yyyy").Trim();
                            #endregion

                            _stt++;

                            _query = @"INSERT INTO tb_tk
                                               (short_name,
                                                tin,
                                                kykk_tu_ngay,
                                                kykk_den_ngay,
                                                kylb_tu_ngay,
                                                mst_dtk,
                                                hd_dlt_so,
                                                hd_dlt_ngay,
                                                tax_model,
                                                ma_cqt,
                                                stt,
                                                id)
                                        VALUES ('{0}', '{1}', '{2}',
                                                '{3}', '{4}', '{5}',
                                                '{6}', '{7}', '{8}',
                                                '{9}', {10}, {11})";

                            _query = _query.Replace("{0}", p_short_name);
                            _query = _query.Replace("{1}", _tin);
                            _query = _query.Replace("{2}", _kykk_tu_ngay);
                            _query = _query.Replace("{3}", _kykk_den_ngay);
                            _query = _query.Replace("{4}", _kylb_tu_ngay);
                            _query = _query.Replace("{5}", _dr["mst_dtk"].ToString().Trim());
                            _query = _query.Replace("{6}", _dr["hd_dlt_so"].ToString().Trim());
                            _query = _query.Replace("{7}", _dr["hd_dlt_ngay"].ToString().Trim());
                            _query = _query.Replace("{8}", "VAT_APP");
                            _query = _query.Replace("{9}", p_tax_code);
                            _query = _query.Replace("{10}", _stt.ToString());
                            _query = _query.Replace("{11}", "seq_id_csv.nextval");

                            try
                            {
                                if (_connOra_tk10.exeUpdate(_query) != 0)
                                    _rowsnum++;

                                // Đố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 10/KK-TNCN

                                _query = @"SELECT b.madtnt, allt(str(b.thuetky, 20, 0)) as thuetky, b.cttn
                                         FROM c102012 b
                                        WHERE b.madtnt = '" + _tin + "'";

                                try
                                {
                                    _dt_details = _connFoxPro.exeQuery(_query);
                                    foreach (DataRow _dr_details in _dt_details.Rows)
                                    {
                                        // Xác định mã cttn
                                        string _cttn = _dr_details["cttn"].ToString().Trim();
                                        // Biến lưu trữ tên loại chỉ tiêu
                                        string _chi_tieu;

                                        switch (_cttn)
                                        {
                                            case "021":
                                                _chi_tieu = "DTHU_DKIEN";
                                                break;
                                            case "022":
                                                _chi_tieu = "TL_THNHAP_DKIEN";
                                                break;
                                            case "023":
                                                _chi_tieu = "THNHAP_CTHUE_DKIEN";
                                                break;
                                            case "024":
                                                _chi_tieu = "GTRU_GCANH";
                                                break;
                                            case "025":
                                                _chi_tieu = "BAN_THAN";
                                                break;
                                            case "026":
                                                _chi_tieu = "PHU_THUOC ";
                                                break;
                                            case "027":
                                                _chi_tieu = "THNHAP_TTHUE_DKIEN";
                                                break;
                                            case "028":
                                                _chi_tieu = "TNCN";
                                                break;
                                            default: continue;
                                        }
                                        _query = @"UPDATE tb_tk
                                                  SET " + _chi_tieu + @" = " + _dr_details["thuetky"].ToString().Trim() + @"
                                                WHERE tin = '" + _tin + "'";
                                        _connOra_tk10.exeUpdate(_query);
                                    }
                                    // Xóa nội dung chi tiết tờ khai 10/KK-TNCN
                                    _dt_details.Clear();
                                }
                                catch (Exception ex)
                                {
                                    AddToListView(0, p_tax_name + "\\Tờ khai 10/KK-TNCN\\Cập nhật chỉ tiêu: " + ex.Message);
                                }
                                #endregion

                                #region Cập nhật phân bổ tờ khai 10/KK-TNCN
                                try
                                {
                                    // Phân bổ quý 1
                                    _query = @"SELECT a.madtnt, allt(str(sum(a.thuepn), 20, 0)) as PB,
                                                  '12Q1' as KYTT,
                                                  CToD('01/01/2012') as HT,
                                                  a.HanNop2 as HN
                                             FROM p102012 a
                                            WHERE a.kylbo2 in('01/2012',
                                                              '02/2012',
                                                              '03/2012')
                                              AND a.madtnt = '" + _tin + @"'
                                         GROUP BY a.madtnt, HN";
                                    _dt_details = _connFoxPro.exeQuery(_query);

                                    // Phân bổ quý 2
                                    _query = @"SELECT a.madtnt, allt(str(sum(a.thuepn), 20, 0)) as PB,
                                                  '12Q2' as KYTT,
                                                  CToD('01/01/2012') as HT,
                                                  a.HanNop2 as HN
                                             FROM p102012 a
                                            WHERE a.kylbo2 in('04/2012',
                                                              '05/2012',
                                                              '06/2012')
                                              AND a.madtnt = '" + _tin + @"'
                                         GROUP BY a.madtnt, HN";
                                    _dt_details.Merge(_connFoxPro.exeQuery(_query));

                                    // Phân bổ quý 3
                                    _query = @"SELECT a.madtnt, allt(str(sum(a.thuepn), 20, 0)) as PB,
                                                  '12Q3' as KYTT,
                                                  CToD('01/01/2012') as HT,
                                                  a.HanNop2 as HN
                                             FROM p102012 a
                                            WHERE a.kylbo2 in('07/2012',
                                                              '08/2012',
                                                              '09/2012')
                                              AND a.madtnt = '" + _tin + @"'
                                         GROUP BY a.madtnt, HN";
                                    _dt_details.Merge(_connFoxPro.exeQuery(_query));

                                    // Phân bổ quý 4
                                    _query = @"SELECT a.madtnt, allt(str(sum(a.thuepn), 20, 0)) as PB,
                                                  '12Q4' as KYTT,
                                                  CToD('01/01/2012') as HT,
                                                  a.HanNop2 as HN
                                             FROM p102012 a
                                            WHERE a.kylbo2 in('10/2012',
                                                              '11/2012',
                                                              '12/2012')
                                              AND a.madtnt = '" + _tin + @"'
                                         GROUP BY a.madtnt, HN";
                                    _dt_details.Merge(_connFoxPro.exeQuery(_query));
                                    foreach (DataRow _dr_details in _dt_details.Rows)
                                    {
                                        // Xác định kỳ phân bổ
                                        string _kytt = _dr_details["KYTT"].ToString().Trim();
                                        switch (_kytt)
                                        {
                                            case "12Q1":
                                                _query = @"UPDATE tb_tk a
                                                          SET a.PB01 = " + _dr_details["PB"].ToString().Trim() + @",
                                                              a.KYTT01 = '" + _dr_details["KYTT"].ToString().Trim() + @"',
                                                              a.HT01 = '" + ((DateTime)_dr_details["HT"]).ToString("dd/MM/yyyy").Trim() + @"',
                                                              a.HN01 = '" + ((DateTime)_dr_details["HN"]).ToString("dd/MM/yyyy").Trim() + @"'
                                                        WHERE a.tin = '" + _tin + "'";
                                                _connOra_tk10.exeUpdate(_query);
                                                break;
                                            case "12Q2":
                                                _query = @"UPDATE tb_tk a
                                                          SET a.PB02 = " + _dr_details["PB"].ToString().Trim() + @",
                                                              a.KYTT02 = '" + _dr_details["KYTT"].ToString().Trim() + @"',
                                                              a.HT02 = '" + ((DateTime)_dr_details["HT"]).ToString("dd/MM/yyyy").Trim() + @"',
                                                              a.HN02 = '" + ((DateTime)_dr_details["HN"]).ToString("dd/MM/yyyy").Trim() + @"'
                                                        WHERE a.tin = '" + _tin + "'";
                                                _connOra_tk10.exeUpdate(_query);
                                                break;
                                            case "12Q3":
                                                _query = @"UPDATE tb_tk a
                                                          SET a.PB03 = " + _dr_details["PB"].ToString().Trim() + @",
                                                              a.KYTT03 = '" + _dr_details["KYTT"].ToString().Trim() + @"',
                                                              a.HT03 = '" + ((DateTime)_dr_details["HT"]).ToString("dd/MM/yyyy").Trim() + @"',
                                                              a.HN03 = '" + ((DateTime)_dr_details["HN"]).ToString("dd/MM/yyyy").Trim() + @"'
                                                        WHERE a.tin = '" + _tin + "'";
                                                _connOra_tk10.exeUpdate(_query);
                                                break;
                                            case "12Q4":
                                                _query = @"UPDATE tb_tk a
                                                          SET a.PB04 = " + _dr_details["PB"].ToString().Trim() + @",
                                                              a.KYTT04 = '" + _dr_details["KYTT"].ToString().Trim() + @"',
                                                              a.HT04 = '" + ((DateTime)_dr_details["HT"]).ToString("dd/MM/yyyy").Trim() + @"',
                                                              a.HN04 = '" + ((DateTime)_dr_details["HN"]).ToString("dd/MM/yyyy").Trim() + @"'
                                                        WHERE a.tin = '" + _tin + "'";
                                                _connOra_tk10.exeUpdate(_query);
                                                break;
                                            default: continue;
                                        }
                                    }
                                    _dt_details.Clear();
                                }
                                catch (Exception ex)
                                {
                                    AddToListView(0, p_tax_name + "\\Tờ khai 10/KK-TNCN\\Cập nhật phân bổ: " + ex.Message);
                                }
                                #endregion

                                #region Cập nhật trường rv_so_tien
                                try
                                {
                                    // Biến lưu trữ kỳ chốt dữ liệu
                                    string _ky_tk10_den = p_ky_tk10_den.Month.ToString().PadLeft(2, '0')
                                        + "/" + p_ky_tk10_den.Year.ToString();
                                    _query = @"SELECT allt(str(sum(a.thuepn), 20, 0)) as rv_so_tien
                                             FROM p102012 a
                                            WHERE a.kylbo2 <= '" + _ky_tk10_den + "'";
                                    _dt_details = _connFoxPro.exeQuery(_query);
                                    foreach (DataRow _dr_details in _dt_details.Rows)
                                    {
                                        _query = @"UPDATE tb_tk a
                                                  SET a.rv_so_tien = " + _dr_details["rv_so_tien"].ToString() + @"
                                                WHERE a.tin = '" + _tin + "'";
                                        _connOra_tk10.exeUpdate(_query);
                                    }
                                }
                                catch (Exception e)
                                {
                                    AddToListView(0, p_tax_name + "\\Tờ khai 10/KK-TNCN\\Cập nhật trường reverse: " + e.Message);
                                }
                                #endregion
                            }
                            catch (Exception ex)
                            {
                                AddToListView(0, p_tax_name + "\\Tờ khai 10/KK-TNCN: " + ex.Message);
                                continue;
                            }
                        }
                        _dt.Clear();
                        _dt = null;
                        _connFoxPro.close();
                    }
                    catch (Exception ex)
                    {
                        AddToListView(0, p_tax_name + "\\Tờ khai 10/KK-TNCN\\Thông tin chính: " + ex.Message);
                        continue;
                    }
                }
                AddToListView(2, "Đã thêm " + _rowsnum + " bản ghi vào bảng TB_TK của " + p_tax_name);
                _connOra_tk10.close();
                _listFile.Clear();
                _listFile = null;
                AddToListView(2, "Hoàn thành việc tải dữ liệu chi tiết tờ khai 10/KK-TNCN của " + p_tax_name);
            }
            catch (IOException e)
            {
                AddToListView(0, p_tax_name + "\\Tờ khai 10/KK-TNCN\\Lỗi đăng nhập: " + e.Message);
            }
            catch (Exception e)
            {
                AddToListView(0, p_tax_name + "\\Tờ khai 10/KK-TNCN: " + e.Message);
            }
        }
Beispiel #4
0
        // Dữ liệu số dư phát sinh đầu kỳ
        private void Prc_doc_file_sdps(string p_short_name, string p_tax_name, string p_tax_code, ref DateTime p_ky_ps_tu, ref DateTime p_ky_ps_den, string p_path, DirectoryInfo p_dir_source)
        {
            // Đọc file SDPSYYYY.DBF
            string _search_pattern = "SDPS*.DBF";
            // Đối tượng lưu trữ danh sách file dữ liệu số dư phát sinh đầu kỳ
            ArrayList _listFile_sdps = new ArrayList();
            // Lấy danh sách các file dữ liệu số dư phát sinh đầu kỳ
            _listFile_sdps.AddRange(p_dir_source.GetFiles(_search_pattern));
            CLS_DBASE.ORA _connOra_sdps = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ);
            AddToListView(2, "Tiến hành việc tải dữ liệu số dư phát sinh đầu kỳ của " + p_tax_name);
            // Biến lưu số bản ghi đã được thêm vào bảng TB_PS
            int _rowsnum = 0;
            foreach (FileInfo _file in _listFile_sdps)
            {
                try
                {
                    string _query = @"SELECT a.madtnt as tin,
                                         a.matkhai as ma_tkhai,
                                         a.matm as ma_tmuc,
                                         a.ngnop as ngay_nop,
                                         a.hannop as han_nop,
                                         a.thuetky as so_tien,
                                         a.kylbo, a.kykkhai
                                    FROM {0} a
                                   WHERE a.matkhai IN ('02T/KK-TNCN',
                                                       '02Q/KK-TNCN',
                                                       '03T/KK-TNCN',
                                                       '03Q/KK-TNCN',
                                                       '07/KK-TNCN',
                                                       '08/KK-TNCN',
                                                       '08A/KK-TNCN',
                                                       '10/KK-TNCN',
                                                       '10A/KK-TNCN')
                                     AND a.mamuc = '1000'
                                     AND a.thuetky > 0";
                    /*
                     02T/KK-TNCN Tháng
                     02Q/KK-TNCN Quý
                     03T/KK-TNCN Tháng
                     03Q/KK-TNCN Quý
                     07/KK-TNCN  Tháng
                     08/KK-TNCN  Quý
                     08A/KK-TNCN Quý
                     10/KK-TNCN  Tháng
                     10A/KK-TNCN Tháng
                     */

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

                    CLS_DBASE.FOX _connFoxPro = new CLS_DBASE.FOX(p_path);

                    // Đối tượng lưu trữ các bản ghi
                    DataTable _dt = _connFoxPro.exeQuery(_query);
                    int _stt = 0; // Biến đếm số bản ghi
                    foreach (DataRow _dr in _dt.Rows)
                    {
                        #region Kiểm tra kỳ phát sinh và kỳ lập bộ nằm trong kỳ chốt dữ liệu

                        // Biến lưu trữ mã tờ khai
                        string _ma_tkhai = _dr["ma_tkhai"].ToString().Trim();
                        // Biến lưu trữ kỳ lập bộ
                        string _kylbo = _dr["kylbo"].ToString().Replace("/", "").Trim();
                        // Biến lưu trữ kỳ kê khai
                        string _kykkhai = _dr["kykkhai"].ToString().Replace("/", "").Trim();

                        // Kỳ lập bộ
                        DateTime _ky_lbo;
                        DateTime _ky_psinh_tu; // Ngày bắt đầu kỳ phát sinh
                        DateTime _ky_psinh_den; // Ngày kết thúc kỳ phát sinh

                        // Xác định kỳ lập bộ
                        try
                        {
                            _ky_lbo = new DateTime(Int32.Parse(_kylbo.Substring(2, 4)), // Năm
                                                   Int32.Parse(_kylbo.Substring(0, 2)), // Tháng
                                                   1);                                  // Ngày
                        }
                        catch (FormatException)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu số dư phát sinh đầu kỳ: Kỳ lập bộ sai định dạng");
                            continue;
                        }
                        catch (Exception e)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu số dư phát sinh đầu kỳ: " + e.Message);
                            continue;
                        }

                        // Tờ khai tháng
                        if (_ma_tkhai.Equals("02T/KK-TNCN")
                            || _ma_tkhai.Equals("03T/KK-TNCN")
                            || _ma_tkhai.Equals("07/KK-TNCN")
                            || _ma_tkhai.Equals("10/KK-TNCN")
                            || _ma_tkhai.Equals("10A/KK-TNCN"))
                        {
                            try
                            {
                                _ky_psinh_tu =
                                    new DateTime(Int32.Parse(_kykkhai.Substring(2, 4)), // Năm
                                                 Int32.Parse(_kykkhai.Substring(0, 2)), // Tháng
                                                 1);                                    // Ngày
                                // Ngày kết thúc kỳ phát sinh
                                _ky_psinh_den =
                                    new DateTime(Int32.Parse(_kykkhai.Substring(2, 4)), // Năm
                                                 Int32.Parse(_kykkhai.Substring(0, 2)), // Tháng
                                                 1);                                    // Ngày
                                _ky_psinh_den = _ky_psinh_den.AddMonths(1).AddDays(-1);
                            }
                            catch (FormatException)
                            {
                                AddToListView(0, p_tax_name + "\\Dữ liệu số dư phát sinh đầu kỳ: Kỳ kê khai sai định dạng");
                                continue;
                            }
                            catch (Exception e)
                            {
                                AddToListView(0, p_tax_name + "\\Dữ liệu số dư phát sinh đầu kỳ: " + e.Message);
                                continue;
                            }
                        }

                        // Tờ khai quý
                        else
                        {
                            int _quy_ky_kkhai = 1; // Biến lưu trữ quý của kỳ kê khai
                            int _nam_ky_kkhai = 2010; // Biến lưu trữ năm của kỳ kê khai
                            try
                            {
                                _quy_ky_kkhai = Int32.Parse(_kykkhai.Trim().Substring(0, 1));
                                _nam_ky_kkhai = Int32.Parse(_kykkhai.Trim().Substring(1, 4));
                            }
                            catch (FormatException)
                            {
                                AddToListView(0, p_tax_name + "\\Dữ liệu số dư phát sinh đầu kỳ: Kỳ kê khai sai định dạng");
                                continue;
                            }
                            catch (Exception e)
                            {
                                AddToListView(0, p_tax_name + "\\Dữ liệu số dư phát sinh đầu kỳ: " + e.Message);
                                continue;
                            }

                            if (_quy_ky_kkhai == 1)
                            {
                                _ky_psinh_tu = new DateTime(_nam_ky_kkhai, 1, 1);
                                _ky_psinh_den = new DateTime(_nam_ky_kkhai, 3, 31);

                            }
                            else if (_quy_ky_kkhai == 2)
                            {
                                _ky_psinh_tu = new DateTime(_nam_ky_kkhai, 4, 1);
                                _ky_psinh_den = new DateTime(_nam_ky_kkhai, 6, 30);
                            }
                            else if (_quy_ky_kkhai == 3)
                            {
                                _ky_psinh_tu = new DateTime(_nam_ky_kkhai, 7, 1);
                                _ky_psinh_den = new DateTime(_nam_ky_kkhai, 9, 30);
                            }
                            else if (_quy_ky_kkhai == 4)
                            {
                                _ky_psinh_tu = new DateTime(_nam_ky_kkhai, 10, 1);
                                _ky_psinh_den = new DateTime(_nam_ky_kkhai, 12, 31);
                            }
                            else
                            {
                                throw new InvalidDataException("Tháng của kỳ phát sinh không hợp lệ");
                            }
                        }

                        if (_kylbo.CompareTo(p_ky_ps_den) > 0
                            || _kylbo.CompareTo(p_ky_ps_tu) < 0
                            || _ky_psinh_tu.CompareTo(p_ky_ps_den) > 0
                            || _ky_psinh_tu.CompareTo(p_ky_ps_tu) < 0)
                            continue;

                        #endregion

                        _stt++; // Bản ghi số mấy

                        _query = @"INSERT INTO tb_ps
                                           (short_name, stt, loai, ma_cqt, tin,
                                            ma_tkhai, ma_chuong, ma_khoan, ma_tmuc,
                                            tkhoan, ky_psinh_tu, ky_psinh_den,
                                            so_tien, han_nop, ngay_htoan, ngay_nop,
                                            tax_model, status, id)
                                    VALUES ('{0}', {1}, '{2}', '{3}', '{4}',
                                            '{5}', '{6}', '{7}', '{8}', '{9}',
                                            '{10}', '{11}', '{12}', '{13}', '{14}',
                                            '{15}', '{16}', '{17}', {18})";

                        _query = _query.Replace("{0}", p_short_name);
                        _query = _query.Replace("{1}", _stt.ToString());
                        _query = _query.Replace("{2}", "TK");
                        _query = _query.Replace("{3}", p_tax_code);
                        _query = _query.Replace("{4}", _dr["tin"].ToString().Trim());
                        _query = _query.Replace("{5}", _ma_tkhai);
                        _query = _query.Replace("{6}", "757");
                        _query = _query.Replace("{7}", "000");
                        _query = _query.Replace("{8}", _dr["ma_tmuc"].ToString().Trim());
                        _query = _query.Replace("{9}", "TKNS");
                        _query = _query.Replace("{10}", "");
                        _query = _query.Replace("{11}", "");
                        _query = _query.Replace("{12}", _dr["so_tien"].ToString().Trim());
                        _query = _query.Replace("{13}", ((DateTime)_dr["han_nop"]).ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{14}", ((DateTime)_dr["ngay_nop"]).ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{15}", ((DateTime)_dr["ngay_nop"]).ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{16}", "VAT_APP");
                        _query = _query.Replace("{17}", "");
                        _query = _query.Replace("{18}", "seq_id_csv.nextval");

                        if (_connOra_sdps.exeUpdate(_query) != 0)
                            _rowsnum++;
                    }
                    _dt.Clear();
                    _dt = null;
                    _connFoxPro.close();
                }
                catch (Exception e)
                {
                    AddToListView(0, p_tax_name + "\\Dữ liệu số dư phát sinh: " + e.Message);
                    continue;
                }
            }
            AddToListView(2, "Đã thêm " + _rowsnum + "bản ghi dữ liệu số dư phát sinh đầu kỳ vào bảng TB_PS của " + p_tax_name);
            _listFile_sdps.Clear();
            _listFile_sdps = null;
            _connOra_sdps.close();
            AddToListView(2, "Hoàn thành việc tải dữ liệu số dư phát sinh đầu kỳ của " + p_tax_name);
        }
Beispiel #5
0
        // Dữ liệu phát sinh tháng
        private void Prc_doc_file_ps_thang(string p_short_name, string p_tax_name, string p_tax_code, ref DateTime p_ky_ps_tu, ref DateTime p_ky_ps_den, string _path, DirectoryInfo p_dir_source)
        {
            // Đọc file TZMMYYYY.DBF
            string _search_pattern = "TZ*.DBF";
            // Đối tượng lưu trữ danh sách các file dữ liệu phát sinh tháng
            ArrayList _listFile_tz = new ArrayList();
            // Lấy danh sách các file dữ liệu phát sinh tháng
            _listFile_tz.AddRange(p_dir_source.GetFiles(_search_pattern));
            CLS_DBASE.ORA _connOra_tz = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ);
            AddToListView(2, "Tiến hành tải dữ liệu phát sinh tháng của " + p_tax_name);
            // Biến lưu số bản ghi dữ liệu phát sinh tháng
            // đã đọc vào bảng TB_PS
            int _rowsnum = 0;
            foreach (FileInfo _file in _listFile_tz)
            {
                try
                {
                    string _query = @"SELECT a.madtnt as tin, a.matkhai as ma_tkhai,
                                             a.ngnop as ngay_nop, a.matm as ma_tmuc,
                                             a.hannop2 as han_nop, a.thuetky as so_tien,
                                             ('01/'+a.KyKKhai) as ky_psinh_tu,
                                             a.KyKKhai
                                        FROM {0} a,DTNT2.DBF b
                                       WHERE a.madtnt = b.madtnt
                                         AND a.MaMuc = '1000'
                                         AND a.MaTKhai IN ('02T/KK-TNCN',
                                                           '03T/KK-TNCN',
                                                           '07/KK-TNCN')
                                         AND a.ThueTKy2 <> 1
                                         AND a.ThueTKy > 0";

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

                    CLS_DBASE.FOX _connFoxPro = new CLS_DBASE.FOX(_path);

                    // Chứa dữ liệu
                    DataTable _dt = _connFoxPro.exeQuery(_query);
                    int _stt = 0; // Biến đếm số bản ghi
                    foreach (DataRow _dr in _dt.Rows)
                    {
                        string _ky_kkhai = _dr["KyKKhai"].ToString().Replace("/", "");
                        // Xác định kỳ phát sinh của đối tượng nộp thuế
                        DateTime _ky_psinh_tu;
                        DateTime _ky_psinh_den;

                        try
                        {
                            _ky_psinh_tu =
                                new DateTime(Int32.Parse(_ky_kkhai.Substring(2, 4)), Int32.Parse(_ky_kkhai.Substring(0, 2)), 1);
                            _ky_psinh_den =
                                new DateTime(Int32.Parse(_ky_kkhai.Substring(2, 4)), Int32.Parse(_ky_kkhai.Substring(0, 2)), 1);
                            _ky_psinh_den = _ky_psinh_den.AddMonths(1).AddDays(-1);
                        }
                        catch (FormatException)
                        {
                            AddToListView(0, p_tax_name + "\\Phát sinh tháng: Kỳ kê khai sai định dạng");
                            continue;
                        }
                        catch (Exception e)
                        {
                            AddToListView(0, p_tax_name + "\\Phát sinh tháng: " + e.Message);
                            continue;
                        }

                        // Kiểm tra kỳ phát sinh nằm trong kỳ chốt dữ liệu
                        if (_ky_psinh_tu.CompareTo(p_ky_ps_tu) < 0 || _ky_psinh_tu.CompareTo(p_ky_ps_den) > 0
                          || _ky_psinh_den.CompareTo(p_ky_ps_tu) < 0 || _ky_psinh_den.CompareTo(p_ky_ps_den) > 0)
                            continue;

                        _query = @"INSERT INTO tb_ps
                                               (short_name, stt, loai, ma_cqt, tin,
                                                ma_tkhai, ma_chuong, ma_khoan, ma_tmuc,
                                                tkhoan, ky_psinh_tu, ky_psinh_den,
                                                so_tien, han_nop, ngay_htoan, ngay_nop,
                                                tax_model, status, id)
                                        VALUES ('{0}', {1}, '{2}', '{3}', '{4}',
                                                '{5}', '{6}', '{7}', '{8}', '{9}',
                                                '{10}', '{11}', '{12}', '{13}', '{14}',
                                                '{15}', '{16}', '{17}', {18})";

                        _stt++; // Bản ghi số mấy

                        _query = _query.Replace("{0}", p_short_name);
                        _query = _query.Replace("{1}", _stt.ToString());
                        _query = _query.Replace("{2}", "TK");
                        _query = _query.Replace("{3}", p_tax_code);
                        _query = _query.Replace("{4}", _dr["tin"].ToString().Trim());
                        _query = _query.Replace("{5}", _dr["ma_tkhai"].ToString().Trim());
                        _query = _query.Replace("{6}", "757");
                        _query = _query.Replace("{7}", "000");
                        _query = _query.Replace("{8}", _dr["ma_tmuc"].ToString().Trim());
                        _query = _query.Replace("{9}", "TKNS");
                        _query = _query.Replace("{10}", _dr["ky_psinh_tu"].ToString().Trim());
                        _query = _query.Replace("{11}", _ky_psinh_den.ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{12}", _dr["so_tien"].ToString().Trim());
                        _query = _query.Replace("{13}", ((DateTime)_dr["han_nop"]).ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{14}", "");
                        _query = _query.Replace("{15}", ((DateTime)_dr["ngay_nop"]).ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{16}", "VAT_APP");
                        _query = _query.Replace("{17}", "");
                        _query = _query.Replace("{18}", "seq_id_csv.nextval");

                        if (_connOra_tz.exeUpdate(_query) != 0)
                            _rowsnum++;
                    }
                    _dt.Clear();
                    _dt = null;
                    _connFoxPro.close();
                }
                catch (Exception e)
                {
                    AddToListView(0, p_tax_name + "\\Phát sinh tháng: " + e.Message);
                    continue;
                }
            }
            AddToListView(2, "Đã thêm " + _rowsnum + " bản ghi dữ liệu phát sinh tháng vào bảng TB_PS của " + p_tax_name);
            _connOra_tz.close();
            _listFile_tz.Clear();
            _listFile_tz = null;
            AddToListView(2, "Hoàn thành tải dữ liệu phát sinh tháng cho " + p_tax_name);
        }
Beispiel #6
0
        //Dữ liệu phát sinh quý
        private void Prc_doc_file_ps_quy(string p_short_name, string p_tax_name, string p_tax_code, ref DateTime p_ky_ps_tu, ref DateTime p_ky_ps_den, string p_path, DirectoryInfo p_dir_source)
        {
            // Đọc file CNTKYYYY.DBF
            string _search_pattern = "CNTK*.DBF";
            // Đối tượng lưu danh sách các file dữ liệu phát sinh quý
            ArrayList _listFile_cntk = new ArrayList();
            // Lấy danh sách các file dữ liệu phát sinh quý
            _listFile_cntk.AddRange(p_dir_source.GetFiles(_search_pattern));
            CLS_DBASE.ORA _connOra_cntk = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ);
            AddToListView(2, "Tiến hành tải dữ liệu phát sinh quý của " + p_tax_name);
            // Biến lưu số bản ghi dữ liệu phát sinh tháng
            // đã đọc vào bảng TB_PS
            int _rowsnum = 0;
            foreach (FileInfo _file in _listFile_cntk)
            {
                try
                {
                    string _query = @"SELECT a.madtnt as tin,
                                             a.matkhai as ma_tkhai,
                                             a.matm as ma_tmuc,
                                             a.ngnop as ngay_nop,
                                             a.hannop2 as han_nop,
                                             a.thuetky as so_tien,
                                             a.KyKkhai, a.KyLbo
                                        FROM {0} a
                                       WHERE a.matkhai IN ('02Q/KK-TNCN',
                                                           '03Q/KK-TNCN',
                                                           '08/KK-TNCN',
                                                           '08A/KK-TNCN')
                                         AND a.thuetky2 <> 1
                                         AND a.thuetky > 0";

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

                    CLS_DBASE.FOX _connFoxPro = new CLS_DBASE.FOX(p_path);

                    DataTable _dt = _connFoxPro.exeQuery(_query);
                    int _stt = 0; // Biến đếm số bản ghi
                    foreach (DataRow _dr in _dt.Rows)
                    {
                        #region Kiểm tra kỳ lập bộ
                        string _temp = "";
                        _temp = _dr["kylbo"].ToString().Trim();
                        _temp = _temp.Replace("/", "");
                        try
                        {
                            // Kỳ lập bộ
                            DateTime _kylbo =
                                new DateTime(Int32.Parse(_temp.Substring(2, 4)), // Năm
                                             Int32.Parse(_temp.Substring(0, 2)), // Tháng
                                             1);                                 // Ngày

                            if (_kylbo.CompareTo(p_ky_ps_den) > 0
                                || _kylbo.CompareTo(p_ky_ps_tu) < 0)
                                continue;
                        }
                        catch (FormatException)
                        {
                            AddToListView(0, p_tax_name + "\\Phát sinh quý: Kỳ lập bộ sai định dạng ngày tháng");
                        }
                        catch (Exception ex)
                        {
                            AddToListView(0, p_tax_name + "\\Phát sinh quý: " + ex.Message);
                        }
                        #endregion

                        string _ky_kkhai = _dr["KyKKhai"].ToString().Trim().Replace("/", "");
                        string _ma_tkhai = _dr["ma_tkhai"].ToString().Trim();
                        string _ma_tmuc = _dr["ma_tmuc"].ToString().Trim();

                        #region Xác định mã tờ khai
                        // Xác định mã tờ khai
                        //if (_ma_tkhai.Equals("08/KK-TNCN") && _ma_tmuc.Equals("1014"))
                        //    _ma_tkhai = "08TN/KK-TNCN";
                        //else if (_ma_tkhai.Equals("08A/KK-TNCN") && _ma_tmuc.Equals("1014"))
                        //    _ma_tkhai = "08ATN/KK-TNCN";
                        #endregion

                        #region Xác định kỳ phát sinh
                        int _quy_ky_kkhai = 1; // Biến lưu trữ quý của kỳ kê khai
                        int _nam_ky_kkhai = 2010; // Biến lưu trữ năm của kỳ kê khai
                        try
                        {
                            _quy_ky_kkhai = Int32.Parse(_ky_kkhai.Trim().Substring(0, 1));
                            _nam_ky_kkhai = Int32.Parse(_ky_kkhai.Trim().Substring(1, 4));
                        }
                        catch (FormatException)
                        {
                            AddToListView(0, p_tax_name + "\\Phát sinh quý: Kỳ kê khai sai định dạng");
                            continue;
                        }
                        catch (Exception e)
                        {
                            AddToListView(0, p_tax_name + "\\Phát sinh quý: " + e.Message);
                            continue;
                        }

                        #region Xác định kỳ phát sinh dựa vào quý của kỳ kê khai
                        DateTime _ky_psinh_tu; // Ngày bắt đầu kỳ phát sinh
                        DateTime _ky_psinh_den; // Ngày kết thúc kỳ phát sinh

                        if (_quy_ky_kkhai == 1)
                        {
                            _ky_psinh_tu = new DateTime(_nam_ky_kkhai, 1, 1);
                            _ky_psinh_den = new DateTime(_nam_ky_kkhai, 3, 31);

                        }
                        else if (_quy_ky_kkhai == 2)
                        {
                            _ky_psinh_tu = new DateTime(_nam_ky_kkhai, 4, 1);
                            _ky_psinh_den = new DateTime(_nam_ky_kkhai, 6, 30);
                        }
                        else if (_quy_ky_kkhai == 3)
                        {
                            _ky_psinh_tu = new DateTime(_nam_ky_kkhai, 7, 1);
                            _ky_psinh_den = new DateTime(_nam_ky_kkhai, 9, 30);
                        }
                        else if (_quy_ky_kkhai == 4)
                        {
                            _ky_psinh_tu = new DateTime(_nam_ky_kkhai, 10, 1);
                            _ky_psinh_den = new DateTime(_nam_ky_kkhai, 12, 31);
                        }
                        else
                        {
                            throw new InvalidDataException("Tháng của kỳ phát sinh không hợp lệ");
                        }

                        if (_ky_psinh_tu.CompareTo(p_ky_ps_tu) < 0
                            || _ky_psinh_tu.CompareTo(p_ky_ps_den) > 0)
                            continue;
                        #endregion
                        #endregion

                        _query = @"INSERT INTO tb_ps
                                               (short_name, stt, loai, ma_cqt, tin,
                                                ma_tkhai, ma_chuong, ma_khoan, ma_tmuc,
                                                tkhoan, ky_psinh_tu, ky_psinh_den,
                                                so_tien, han_nop, ngay_htoan, ngay_nop,
                                                tax_model, status, id)
                                        VALUES ('{0}', {1}, '{2}', '{3}', '{4}',
                                                '{5}', '{6}', '{7}', '{8}', '{9}',
                                                '{10}', '{11}', '{12}', '{13}', '{14}',
                                                '{15}', '{16}', '{17}', {18})";

                        _stt++; // Bản ghi số mấy

                        _query = _query.Replace("{0}", p_short_name);
                        _query = _query.Replace("{1}", _stt.ToString());
                        _query = _query.Replace("{2}", "TK");
                        _query = _query.Replace("{3}", p_tax_code);
                        _query = _query.Replace("{4}", _dr["tin"].ToString().Trim());
                        _query = _query.Replace("{5}", _ma_tkhai);
                        _query = _query.Replace("{6}", "757");
                        _query = _query.Replace("{7}", "000");
                        _query = _query.Replace("{8}", _ma_tmuc);
                        _query = _query.Replace("{9}", "TKNS");
                        _query = _query.Replace("{10}", _ky_psinh_tu.ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{11}", _ky_psinh_den.ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{12}", _dr["so_tien"].ToString().Trim());
                        _query = _query.Replace("{13}", ((DateTime)_dr["han_nop"]).ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{14}", ((DateTime)_dr["ngay_nop"]).ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{15}", ((DateTime)_dr["ngay_nop"]).ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{16}", "VAT_APP");
                        _query = _query.Replace("{17}", "");
                        _query = _query.Replace("{18}", "seq_id_csv.nextval");

                        if (_connOra_cntk.exeUpdate(_query) != 0)
                            _rowsnum++;
                    }
                    _dt.Clear();
                    _dt = null;
                    _connFoxPro.close();
                }
                catch (Exception e)
                {
                    AddToListView(0, p_tax_name + "\\Phát sinh quý: " + e.Message);
                    continue;
                }
            }
            AddToListView(2, "Đã thêm " + _rowsnum + " bản ghi dữ liệu phát sinh quý vào bảng TB_PS của " + p_tax_name);
            _listFile_cntk.Clear();
            _listFile_cntk = null;
            _connOra_cntk.close();
            AddToListView(2, "Hoàn thành tải dữ liệu phát sinh quý của " + p_tax_name);
        }
Beispiel #7
0
        // Dữ liệu tờ khai 10A/KK-TNCN
        private void Prc_doc_file_p10a(string p_short_name, string p_tax_name, string p_tax_code, ref DateTime p_ky_ps_tu, ref DateTime p_ky_ps_den, string p_path, DirectoryInfo p_dir_source)
        {
            // Đọc file P10AYYYY.DBF
            string _search_pattern = "P10A*.DBF";
            // Đối tượng lưu trữ danh sách file dữ liệu tờ khai 10A/KK-TNCN
            ArrayList _listFile_p10a = new ArrayList();
            // Lấy danh sách các file dữ liệu tờ khai 10A/KK-TNCN
            _listFile_p10a.AddRange(p_dir_source.GetFiles(_search_pattern));
            CLS_DBASE.ORA _connOra_p10a = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ);
            AddToListView(2, "Tiến hành việc tải dữ liệu tờ khai 10A/KK-TNCN của " + p_tax_name);
            // Biến lưu trữ số bản ghi đã được thêm vào bảng TB_PS
            int _rowsnum = 0;
            foreach (FileInfo _file in _listFile_p10a)
            {
                try
                {
                    string _query = @"SELECT a.kykkhai2,
                                         a.kylbo,
                                         a.madtnt as tin,
                                         a.matkhai as ma_tkhai,
                                         a.matm as ma_tmuc,
                                         a.ngnop as ngay_nop,
                                         a.hannop2 as han_nop,
                                         a.thuepn as so_tien
                                    FROM {0} a
                                   WHERE a.matkhai = '10/KK-TNCN'
                                     AND a.thuetky2 <> 1
                                     AND a.ThuePN > 0
                                     AND a.mamuc = '1000'";

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

                    CLS_DBASE.FOX _connFoxPro = new CLS_DBASE.FOX(p_path);

                    // Đối tượng lưu trữ các bản ghi
                    DataTable _dt = _connFoxPro.exeQuery(_query);
                    int _stt = 0; // Biến đếm số bản ghi
                    foreach (DataRow _dr in _dt.Rows)
                    {
                        #region Kiểm tra kỳ phát sinh và kỳ lập bộ nằm trong kỳ chốt dữ liệu

                        // Biến lưu trữ kỳ lập bộ lấy từ file dữ liệu
                        string _temp = _dr["kylbo"].ToString().Replace("/", "").Trim();
                        // Kỳ lập bộ
                        DateTime _kylbo;
                        try
                        {
                            _kylbo =
                               new DateTime(Int32.Parse(_temp.Substring(2, 4)), // Năm
                                            Int32.Parse(_temp.Substring(0, 2)), // Tháng
                                            1);                                 // Ngày
                        }
                        catch (FormatException)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu tờ khai 10A/KK-TNCN: Kỳ lập bộ sai định dạng");
                            continue;
                        }
                        catch (Exception e)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu tờ khai 10A/KK-TNCN: " + e.Message);
                            continue;
                        }

                        // Biến lưu trữ kỳ kê khai lấy từ file dữ liệu
                        string _ky_kkhai = _dr["KyKKhai2"].ToString().Replace("/", "").Trim();
                        // Xác định kỳ phát sinh của đối tượng nộp thuế
                        // Ngày bắt đầu kỳ phát sinh
                        DateTime _ky_psinh_tu;
                        // Ngày kết thúc kỳ phát sinh
                        DateTime _ky_psinh_den;

                        try
                        {
                            _ky_psinh_tu = new DateTime(Int32.Parse(_ky_kkhai.Substring(2, 4)), Int32.Parse(_ky_kkhai.Substring(0, 2)), 1);
                            _ky_psinh_den = new DateTime(Int32.Parse(_ky_kkhai.Substring(2, 4)), Int32.Parse(_ky_kkhai.Substring(0, 2)), 1);
                            _ky_psinh_den = _ky_psinh_den.AddMonths(1).AddDays(-1);
                        }
                        catch (FormatException)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu tờ khai 10A/KK-TNCN: Kỳ kê khai sai định dạng");
                            continue;
                        }
                        catch (Exception e)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu tờ khai 10A/KK-TNCN: " + e.Message);
                            continue;
                        }

                        if (_kylbo.CompareTo(p_ky_ps_den) > 0
                            || _kylbo.CompareTo(p_ky_ps_tu) < 0
                            || _ky_psinh_tu.CompareTo(p_ky_ps_tu) < 0
                            || _ky_psinh_tu.CompareTo(p_ky_ps_den) > 0)
                            continue;
                        #endregion

                        _stt++; // Bản ghi số mấy
                        _query = @"INSERT INTO tb_ps
                                           (short_name, stt, loai, ma_cqt, tin,
                                            ma_tkhai, ma_chuong, ma_khoan, ma_tmuc,
                                            tkhoan, ky_psinh_tu, ky_psinh_den,
                                            so_tien, han_nop, ngay_htoan, ngay_nop,
                                            tax_model, status, id)
                                    VALUES ('{0}', {1}, '{2}', '{3}', '{4}',
                                            '{5}', '{6}', '{7}', '{8}', '{9}',
                                            '{10}', '{11}', '{12}', '{13}', '{14}',
                                            '{15}', '{16}', '{17}', {18})";

                        _query = _query.Replace("{0}", p_short_name);
                        _query = _query.Replace("{1}", _stt.ToString());
                        _query = _query.Replace("{2}", "TK");
                        _query = _query.Replace("{3}", p_tax_code);
                        _query = _query.Replace("{4}", _dr["tin"].ToString().Trim());
                        _query = _query.Replace("{5}", "10A/KK-TNCN");
                        _query = _query.Replace("{6}", "757");
                        _query = _query.Replace("{7}", "000");
                        _query = _query.Replace("{8}", _dr["ma_tmuc"].ToString().Trim());
                        _query = _query.Replace("{9}", "TKNS");
                        _query = _query.Replace("{10}", _ky_psinh_tu.ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{11}", _ky_psinh_den.ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{12}", _dr["so_tien"].ToString().Trim());
                        _query = _query.Replace("{13}", ((DateTime)_dr["han_nop"]).ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{14}", ((DateTime)_dr["ngay_nop"]).ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{15}", ((DateTime)_dr["ngay_nop"]).ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{16}", "VAT_APP");
                        _query = _query.Replace("{17}", "");
                        _query = _query.Replace("{18}", "seq_id_csv.nextval");

                        if (_connOra_p10a.exeUpdate(_query) != 0)
                            _rowsnum++;
                    }
                    _dt.Clear();
                    _dt = null;
                    _connFoxPro.close();
                }
                catch (Exception e)
                {
                    AddToListView(0, p_tax_name + "\\Dữ liệu tờ khai 10A/KK-TNCN: " + e.Message);
                    continue;
                }
            }
            AddToListView(2, "Đã thêm " + _rowsnum + " bản ghi dữ liệu tờ khai 10A/KK-TNCN của " + p_tax_name + " vào bảng TB_PS");
            _listFile_p10a.Clear();
            _listFile_p10a = null;
            _connOra_p10a.close();
            AddToListView(2, "Hoàn thành việc tải dữ liệu tờ khai 10A/KK-TNCN của " + p_tax_name);
        }
Beispiel #8
0
        // Dữ liệu nợ
        private void Prc_doc_file_no(string p_short_name, string p_tax_name, string p_tax_code, ref DateTime p_ky_no_den, string p_path, DirectoryInfo p_dir_source)
        {
            // File NOYYYY.DBF
            string _search_pattern = "NO*.DBF";
            // Đối tượng lưu trữ các file dữ liệu
            ArrayList _listFile_no = new ArrayList();
            // Lấy danh sách các file dữ liệu
            _listFile_no.AddRange(p_dir_source.GetFiles(_search_pattern));
            CLS_DBASE.ORA _connOra_no = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ);
            AddToListView(2, "Tiến hành thực hiện tải dữ liệu nợ của " + p_tax_name);
            // Biến lưu số bản ghi đã được thêm vào bảng TB_NO
            int _rowsnum = 0;
            foreach (FileInfo _file in _listFile_no)
            {
                try
                {
                    string _query = @"SELECT a.madtnt as tin,
                                             a.matm as tmt_ma_tmuc,
                                             a.matk as ma_tkhoan,
                                             a.KyKKhai,
                                             a.hannop as han_nop,
                                             sum(iif(a.LoaiDC = '1',a.NoDKy + a.ThueDC,a.ThueDC)) as no_cuoi_ky,
                                             a.KyLBo
                                        FROM {0} a
                                       WHERE (a.MaMuc = '1000'
                                              OR
                                             (a.mamuc <> '1000'
                                              AND
                                              a.matm = '4268'))
                                         AND (a.LoaiQD = '0')
                                         AND iif(a.LoaiDC = '1', a.NoDKy + a.ThueDC, a.ThueDC) <> 0
                                    GROUP BY tin, tmt_ma_tmuc, ma_tkhoan, KyKKhai, han_nop, KyLbo";

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

                    CLS_DBASE.FOX _connFoxPro = new CLS_DBASE.FOX(p_path);

                    // Chứa dữ liệu
                    DataTable _dt = _connFoxPro.exeQuery(_query);
                    int _stt = 0; // Biến đếm số bản ghi
                    MessageBox.Show(_dt.Rows.Count.ToString());
                    foreach (DataRow _dr in _dt.Rows)
                    {
                        #region Kiểm tra kỳ kê khai và kỳ lập bộ
                        try
                        {
                            // Biến lưu trữ kỳ lập bộ lấy từ file dữ liệu
                            string _ky_lbo = _dr["KyLBo"].ToString().Replace("/", "").Trim();
                            // Kỳ lập bộ
                            DateTime _kylbo =
                                new DateTime(Int32.Parse(_ky_lbo.Substring(2, 4)), // Năm
                                             Int32.Parse(_ky_lbo.Substring(0, 2)), // Tháng
                                             1);                                   // Ngày

                            if ((_kylbo.AddMonths(1).AddDays(-1)).CompareTo(p_ky_no_den.AddMonths(1)) != 0)
                                continue;
                        }
                        catch (FormatException)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu nợ: Kỳ lập bộ sai định dạng");
                            continue;
                        }
                        catch (Exception e)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu nợ: " + e.Message);
                            continue;
                        }

                        #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 < 6)
                            _ky_kkhai = "0" + _ky_kkhai;

                        // Nếu kỳ kê khai trước tháng 1/2005 thì chuyển thành 1/2005
                        try
                        {
                            if (Int32.Parse(_ky_kkhai.Substring(2, 4)) < 2005)
                                _ky_kkhai = "012005";
                        }
                        catch (FormatException)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu nợ: Kỳ kê khai sai định dạng");
                            continue;
                        }
                        catch (Exception e)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu nợ: " + e.Message);
                            continue;
                        }

                        // 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;
                        try
                        {
                            _kykk_tu_ngay = new DateTime(Int32.Parse(_ky_kkhai.Substring(2, 4)), Int32.Parse(_ky_kkhai.Substring(0, 2)), 1);
                            _kykk_den_ngay =
                                new DateTime(Int32.Parse(_ky_kkhai.Substring(2, 4)), Int32.Parse(_ky_kkhai.Substring(0, 2)), 1);
                            _kykk_den_ngay = _kykk_den_ngay.AddMonths(1).AddDays(-1);
                        }
                        catch (FormatException)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu nợ: Kỳ kê khai sai định dạng");
                            continue;
                        }
                        catch (Exception e)
                        {
                            AddToListView(0, p_tax_name + "\\Dữ liệu nợ: " + e.Message);
                            continue;
                        }
                        #endregion

                        #endregion

                        _query = @"INSERT INTO tb_no
                                               (short_name, stt, loai, ma_cqt,
                                                tin, ma_chuong, ma_khoan, tmt_ma_tmuc,
                                                tkhoan, ngay_hach_toan, kykk_tu_ngay,
                                                kykk_den_ngay, han_nop, dkt_ma,
                                                no_cuoi_ky, tax_model, status, id)
                                        VALUES ('{0}', {1}, '{2}', '{3}', '{4}',
                                                '{5}', '{6}', '{7}', '{8}', '{9}',
                                                '{10}', '{11}', '{12}', '{13}', '{14}',
                                                '{15}', '{16}', {17})";

                        _stt++; // Bản ghi số mấy

                        _query = _query.Replace("{0}", p_short_name);
                        _query = _query.Replace("{1}", _stt.ToString());
                        _query = _query.Replace("{2}", "CD");
                        _query = _query.Replace("{3}", p_tax_code);
                        _query = _query.Replace("{4}", _dr["tin"].ToString().Trim());
                        _query = _query.Replace("{5}", "757");
                        _query = _query.Replace("{6}", "000");
                        _query = _query.Replace("{7}", _dr["tmt_ma_tmuc"].ToString().Trim());
                        _query = _query.Replace("{8}", _dr["ma_tkhoan"].ToString().Trim());
                        _query = _query.Replace("{9}", p_ky_no_den.ToString("dd/MM/yyyy"));
                        _query = _query.Replace("{10}", _kykk_tu_ngay.ToString("dd/MM/yyyy"));
                        _query = _query.Replace("{11}", _kykk_den_ngay.ToString("dd/MM/yyyy"));
                        _query = _query.Replace("{12}", ((DateTime)_dr["han_nop"]).ToString("dd/MM/yyyy"));
                        _query = _query.Replace("{13}", "");
                        _query = _query.Replace("{14}", _dr["no_cuoi_ky"].ToString().Trim());
                        _query = _query.Replace("{15}", "VAT_APP");
                        _query = _query.Replace("{16}", "");
                        _query = _query.Replace("{17}", "seq_id_csv.nextval");

                        if (_connOra_no.exeUpdate(_query) != 0)
                            _rowsnum++;

                    }
                    _connFoxPro.close();
                    _dt.Clear();
                    _dt = null;
                }
                catch (Exception e)
                {
                    AddToListView(0, p_tax_name + "\\Dữ liệu nợ: " + e.Message);
                }
            }
            AddToListView(2, "Đã thêm " + _rowsnum + " bản ghi vào bảng TB_NO của " + p_tax_name);
            _connOra_no.close();
            _listFile_no.Clear();
            _listFile_no = null;
            AddToListView(2, "Hoàn thành việc tải dữ liệu nợ của " + p_tax_name);
        }