Ejemplo n.º 1
0
        //TienTM2 : Kiem tra dieu kien khoa so
        public static string Prc_kiem_tra_dieu_kien_khoa_so(string p_short_name,
                                                            string p_tax_name,
                                                            string p_tax_code,
                                                            string p_path,
                                                            DirectoryInfo p_dir_source,
                                                            Forms.Frm_QLCD p_frm_qlcd,
                                                            ref DateTime p_ky_chot
                                                            )
        {
            using (CLS_DBASE.ORA _connOra_cndm = 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 = "Prc_kiem_tra_dieu_kien_khoa_so";
                string lcKy_Chot;

                string _search_pattern = "KHOASO.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));
                string khoaso = "N";
                foreach (FileInfo _file in _listFile_no)
                {
                    lcKy_Chot = p_ky_chot.ToString("MM/yyyy");
                    try
                    {
                        _query = @"Select kylbo from khoaso where not delete() and kylbo = '" + lcKy_Chot + "'";

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

                        // Chứa dữ liệu
                        DataTable _dt = _connFoxPro.exeQuery(_query);
                        if (_dt.Rows.Count > 0)
                        {
                            khoaso = "Y";
                            break;
                        }
                    }
                    catch (Exception e)
                    {
                        p_frm_qlcd.AddToListView(0, "   + " + p_short_name + "/ " + v_pck + ": " + e.Message);
                    }
                }
                return(khoaso);
            }
        }
Ejemplo n.º 2
0
        // Hàm đọc dữ liệu con khau tru 01/GTGT
        public static int Fnc_doc_file_ckt_01_old(string p_short_name,
                                                  string p_tax_name,
                                                  string p_tax_code,
                                                  DateTime p_ky_chot,
                                                  string p_path,
                                                  DirectoryInfo p_dir_source,
                                                  Forms.Frm_QLCD p_frm_qlcd
                                                  )
        {
            string flages = "YES";

            //using (CLS_DBASE.ORA _connOra_no = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ))
            using (CLS_DBASE.ORA _connOra_no = 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_CKT_01";

                // Biến lưu số bản ghi đã được bổ sung vào bảng TB_NO
                int    _rowsnum   = 0;
                string _File_Nghi = "Nghi" + p_ky_chot.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 = "";

                #region Docfile ckt_01/GTGT

                // File
                string _search_pattern = "ST" + p_ky_chot.ToString("MMyyyy") + ".DBF";
                // Đối tượng lưu trữ các file dữ liệu
                ArrayList _listFile = new ArrayList();
                // Lấy danh sách các file dữ liệu
                _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,
                                              max(c.machuong) as machuong,  
                                              max(c.makhoan) as makhoan,                                     
                                              max(a.KyKKhai) as KyKKhai,
                                              max(a.HanNop) as HanNop,                                              
                                              a.MaTM as MaTMuc,
                                              sum(a.KTTHTRUOC + a.sodcqt)*(-1) as SoTien                                              
                                       FROM {0} a 
                                       INNER JOIN
                                            DTNT2.DBF as c
                                            ON a.madtnt = c.madtnt
                                       WHERE  (KTTHTRUOC + sodcqt) < 0 
                                              and Allt(a.madtnt) not in (select Allt(MaDTNT) from {3} where empty(denngay))
                                       GROUP BY a.madtnt, 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);
                    //                            int countf = 0;

                    foreach (DataRow _dr in _dt.Rows)
                    {
                        #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 = p_ky_chot.ToString("MMyyyy");
                        }

                        //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 e)
                        {
                            p_frm_qlcd.AddToListView(0, "   + " + p_short_name + "/ " + v_pck + ": " + e.Message);
                            _error_message += e.Message + "(" + _file.Name + ");";
                            continue;
                        }
                        catch (Exception e)
                        {
                            p_frm_qlcd.AddToListView(0, "   + " + p_short_name + "/ " + v_pck + ": " + e.Message);
                            _error_message += e.Message + "(" + _file.Name + ");";
                            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 e)
                        {
                            p_frm_qlcd.AddToListView(0, "   + " + p_short_name + "/ " + v_pck + ": " + e.Message);
                            _error_message += e.Message + "(" + _file.Name + ");";
                            continue;
                        }
                        catch (Exception e)
                        {
                            p_frm_qlcd.AddToListView(0, "   + " + p_short_name + "/ " + v_pck + ": " + e.Message);
                            _error_message += e.Message + "(" + _file.Name + ");";
                            continue;
                        }
                        #endregion

                        string matin = _dr["tin"].ToString().Trim();
                        if (matin.Length > 10)
                        {
                            matin = matin.Insert(10, "-");
                        }

                        _query = @"INSERT INTO tb_con_kt
                                               (STT,
                                                TIN,
                                                tax_model,
                                                ma_cqt,
                                                ma_tkhai,
                                                ma_tkhai_tms,
                                                short_name,                                                
                                                ma_chuong,
                                                ma_khoan,
                                                ma_tmuc,
                                                KYKK_TU_NGAY,
                                                KYKK_DEN_NGAY,
                                                han_nop,
                                                ngay_htoan,
                                                so_tien,
                                                tkhoan
                                                )
                                        VALUES ({0}, '{1}', '{2}', '{3}', '{4}','{5}','{6}','{7}',
                                                '{8}','{9}','{10}','{11}','{12}','{13}',{14},'{15}')";

                        _query = _query.Replace("{0}", _rowsnum.ToString());
                        _query = _query.Replace("{1}", matin);
                        _query = _query.Replace("{2}", "VAT-APP");
                        _query = _query.Replace("{3}", p_tax_code);
                        _query = _query.Replace("{4}", "01/GTGT");
                        _query = _query.Replace("{5}", "0026");
                        _query = _query.Replace("{6}", p_short_name);
                        _query = _query.Replace("{7}", _dr["machuong"].ToString().Trim());
                        _query = _query.Replace("{8}", _dr["makhoan"].ToString().Trim());
                        _query = _query.Replace("{9}", _dr["MaTMuc"].ToString().Trim());
                        _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["HanNop"]).ToString("dd/MM/yyyy").Trim());
                        _query = _query.Replace("{13}", p_ky_chot.ToString("dd/MM/yyyy"));
                        _query = _query.Replace("{14}", _dr["SoTien"].ToString().Trim());
                        _query = _query.Replace("{15}", "TK_NGAN_SACH");

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

                    _connFoxPro.close();
                    _dt.Clear();
                    _dt = null;
                }
                _listFile.Clear();
                _listFile = null;
                if (flages != "No")
                {
                    // Ghi log
                    _connOra_no.TransStart();
                    _query = null;

                    // Modify by ManhTV3 on 30.05.2012
                    if (_error_message.Length == 0)
                    {
                        _query = "call PCK_TRACE_LOG.prc_ins_log_vs('" + p_short_name + "', '"
                                 + v_pck + "', 'Y', null)";
                        _connOra_no.TransExecute(_query);
                        _connOra_no.TransCommit();
                    }
                    else
                    {
                        _query = "call PCK_TRACE_LOG.prc_ins_log_vs('" + p_short_name + "', '"
                                 + v_pck + "', 'N', '" + _error_message + "')";
                        _connOra_no.TransExecute(_query);
                        _connOra_no.TransRollBack();
                    }
                }
                #endregion
                return(_rowsnum);
            }
        }
Ejemplo n.º 3
0
        public static int Fnc_doc_file_ckt_01_ky(string p_short_name,
                                                 string p_tax_name,
                                                 string p_tax_code,
                                                 DateTime p_ky,
                                                 DateTime p_ky_chot,
                                                 string p_path,
                                                 DirectoryInfo p_dir_source,
                                                 Forms.Frm_QLCD p_frm_qlcd
                                                 )
        {
            string flages = "YES";

            //using (CLS_DBASE.ORA _connOra_no = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ))
            using (CLS_DBASE.ORA _connOra_no = 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_CKT_01";
                string _File_Nghi = "Nghi" + p_ky_chot.ToString("yyyy") + ".DBF";

                // Biến lưu số bản ghi đã được bổ sung vào bảng TB_NO
                int _rowsnum = 0;

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

                #region Docfile ckt_01/GTGT

                // File
                string _file_master = "TK" + p_ky.ToString("MMyyyy") + ".DBF";
                string _file_dtl    = "KT" + p_ky.ToString("MMyyyy") + ".DBF";
                if ((p_dir_source.GetFiles(_file_master).Count() > 0) && (p_dir_source.GetFiles(_file_dtl).Count() > 0))
                {
                    _query = @"SELECT a.madtnt as tin,
                                              max(c.machuong) as machuong,                                              
                                              a.KyKKhai as KyKKhai,
                                              max(a.HanNop) as HanNop,                                              
                                              a.MaTM as MaTMuc,
                                              a.matkhai matkhai,
                                              sum(b.thuecl) as SoTien                                              
                                       FROM {0} a                                         
                                       INNER JOIN
                                            {1} as b
                                            ON a.madtnt = b.madtnt 
                                               and a.KyKKhai = b.KyKKhai
                                               and a.NgNop = b.NgNop
                                               and a.matkhai = b.matkhai
                                       INNER JOIN
                                            DTNT2.DBF as c
                                            ON a.madtnt = c.madtnt
                                       WHERE  allt(a.matkhai) in ('01/GTGT','01Q/GTGT') and b.thuecl <> 0 and allt(b.ct_kt)=='024'
                                              and Allt(a.madtnt) not in (select Allt(MaDTNT) from {3} where empty(denngay))
                                       GROUP BY a.madtnt, a.MaTM, a.KyKKhai, a.matkhai
                                             ";

                    _query = _query.Replace("{0}", _file_master);
                    _query = _query.Replace("{1}", _file_dtl);
                    _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);
                    //                            int countf = 0;

                    foreach (DataRow _dr in _dt.Rows)
                    {
                        string _ky_kkhai = _dr["KyKKhai"].ToString().Replace("/", "");
                        #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
                        DateTime _ky_psinh_tu;
                        DateTime _ky_psinh_den;

                        int _quy_ky_kkhai;
                        int _nam_ky_kkhai;
                        if (_dr["matkhai"].ToString().Trim() == @"01/GTGT")
                        {
                            _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);
                        }
                        else
                        {
                            _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)
                            {
                                _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
                            {
                                p_frm_qlcd.AddToListView(0, "   + " + p_short_name
                                                         + "/ " + v_pck + ": "
                                                         + new InvalidDataException("Quý không hợp lệ").Message);
                                continue;
                            }
                        }

                        #endregion

                        string matin = _dr["tin"].ToString().Trim();
                        if (matin.Length > 10)
                        {
                            matin = matin.Insert(10, "-");
                        }

                        _query = @"INSERT INTO tb_vat_con_kt
                                               (STT,
                                                TIN,
                                                tax_model,
                                                ma_cqt,
                                                ma_tkhai,
                                                ma_tkhai_tms,
                                                short_name,                                                
                                                ma_chuong,
                                                ma_khoan,
                                                ma_tmuc,
                                                KYKK_TU_NGAY,
                                                KYKK_DEN_NGAY,
                                                han_nop,
                                                ngay_htoan,
                                                so_tien,
                                                tkhoan
                                                )
                                        VALUES ({0}, '{1}', '{2}', '{3}', '{4}','{5}','{6}','{7}',
                                                '{8}','{9}','{10}','{11}','{12}','{13}',{14},'{15}')";

                        _query = _query.Replace("{0}", _rowsnum.ToString());
                        _query = _query.Replace("{1}", matin);
                        _query = _query.Replace("{2}", "VAT-APP");
                        _query = _query.Replace("{3}", p_tax_code);
                        _query = _query.Replace("{4}", _dr["matkhai"].ToString().Trim());
                        _query = _query.Replace("{5}", "0027");
                        _query = _query.Replace("{6}", p_short_name);
                        _query = _query.Replace("{7}", _dr["machuong"].ToString().Trim());
                        _query = _query.Replace("{8}", "000");
                        _query = _query.Replace("{9}", _dr["MaTMuc"].ToString().Trim());
                        _query = _query.Replace("{10}", _ky_psinh_tu.ToString("dd/MM/yyyy"));
                        _query = _query.Replace("{11}", _ky_psinh_den.ToString("dd/MM/yyyy"));
                        _query = _query.Replace("{12}", ((DateTime)_dr["HanNop"]).ToString("dd/MM/yyyy").Trim());
                        _query = _query.Replace("{13}", p_ky.ToString("dd/MM/yyyy"));
                        _query = _query.Replace("{14}", _dr["SoTien"].ToString().Trim());
                        _query = _query.Replace("{15}", "TK_NGAN_SACH");

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

                    _connFoxPro.close();
                    _dt.Clear();
                    _dt = null;
                }

                #endregion
                return(_rowsnum);
            }
        }
Ejemplo n.º 4
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();
            }
        }
Ejemplo n.º 5
0
        // Hàm đọc dữ liệu nợ
        public static int Fnc_doc_file_no(string p_short_name,
                                          string p_tax_name,
                                          string p_tax_code,
                                          ref DateTime p_ky_chot,
                                          string p_path,
                                          DirectoryInfo p_dir_source,
                                          Forms.Frm_QLCD p_frm_qlcd,
                                          ref string flages)
        {
            //using (CLS_DBASE.ORA _connOra_no = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ))
            using (CLS_DBASE.ORA _connOra_no = 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_NO";
                string _ky_chot_1 = p_ky_chot.AddMonths(1).ToString("MM/yyyy").Trim();
                string _File_Nghi = "Nghi" + p_ky_chot.ToString("yyyy") + ".DBF";

                // Biến lưu số bản ghi đã được bổ sung vào bảng TB_NO
                int _rowsnum = 0;

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

                #region Docfileno

                // File NOYYYY.DBF
                string _search_pattern = "NOC" + p_ky_chot.AddMonths(1).ToString("yyyy") + ".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));

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

                    _query = @"SELECT a.madtnt as tin,
                                             a.matm as tmt_ma_tmuc,
                                             a.matk as ma_tkhoan,
                                             a.KyKKhai,
                                             DTOC(a.hannop,1) as han_nop,
                                             a.SoQD as SoQD,
                                             DTOC(a.NgayQD,1) as NgayQD,
                                             a.KyLBo,
                                             MAX(a.KyLSo) as KyLSo,
                                             MAX(c.MaChuong) as machuong,
                                             sum(iif(a.lqddc = '0',a.NoDKy,0)) as no_cuoi_ky
                                             FROM {0} a 
                                                        INNER JOIN
                                                        DTNT2.DBF as c
                                                        ON a.madtnt = c.madtnt
                                             WHERE a.MaMuc <> '1000' 
                                             AND a.matm <> '4268'
                                             AND a.MaTK <> 'TKTG'
                                             AND iif(a.lqddc = '0',a.NoDKy,0) <> 0                                             
                                             AND a.KyLBo = '{1}'                                             
                                             GROUP BY tin, tmt_ma_tmuc, ma_tkhoan, KyKKhai, han_nop, KyLbo, SoQD, NgayQD";

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

                    string ThangTrKhai = p_ky_chot.AddMonths(1).ToString().Trim().Substring(3, 2);
                    string NamTrKhai   = p_ky_chot.AddMonths(1).ToString().Trim().Substring(6, 4);
                    _query = _query.Replace("{1}", _ky_chot_1);

                    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 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 < 4)
                        {
                            _ky_kkhai = _dr["KyLSo"].ToString().Replace("/", "").Trim();
                        }
                        if (_ky_kkhai.Length < 4)
                        {
                            _ky_kkhai = _dr["KyLBo"].ToString().Replace("/", "").Trim();
                        }
                        if (_ky_kkhai.Length == 4)
                        {
                            _ky_kkhai = "01" + _ky_kkhai;
                        }
                        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 e)
                        {
                            p_frm_qlcd.AddToListView(0, "   + " + p_short_name + "/ " + v_pck + ": " + e.Message);
                            _error_message += e.Message + "(" + _file.Name + ");";
                            continue;
                        }
                        catch (Exception e)
                        {
                            p_frm_qlcd.AddToListView(0, "   + " + p_short_name + "/ " + v_pck + ": " + e.Message);
                            _error_message += e.Message + "(" + _file.Name + ");";
                            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 e)
                        {
                            p_frm_qlcd.AddToListView(0, "   + " + p_short_name + "/ " + v_pck + ": " + e.Message);
                            _error_message += e.Message + "(" + _file.Name + ");";
                            continue;
                        }
                        catch (Exception e)
                        {
                            p_frm_qlcd.AddToListView(0, "   + " + p_short_name + "/ " + v_pck + ": " + e.Message);
                            _error_message += e.Message + "(" + _file.Name + ");";
                            continue;
                        }
                        #endregion

                        string _KyLSo = _dr["KyLSo"].ToString().Trim();
                        if (_KyLSo.Length != 7)
                        {
                            _KyLSo = p_ky_chot.ToString("MM/yyyy");
                        }

                        int _nam_LSo = Int32.Parse(_KyLSo.Substring(3, 4));

                        //Lấy tài khoản
                        string _matk = _dr["ma_tkhoan"].ToString().Trim();
                        if (_matk == "TKGT" || _matk == "TKNS" || _matk == "TKCH")
                        {
                            _matk = "TK_NGAN_SACH";
                        }
                        if (_matk == "TGTC")
                        {
                            _matk = "TK_STC";
                        }
                        if (_matk == "TKTH")
                        {
                            _matk = "TK_TH_HOAN";
                        }

                        //Lấy ngày quyết định
                        string _cNgayQD = _dr["NgayQD"].ToString().Trim();
                        if (_cNgayQD.Length != 8)
                        {
                            _cNgayQD = "";
                        }
                        else
                        {
                            _cNgayQD = _cNgayQD.Substring(6, 2) +
                                       @"/" + _cNgayQD.Substring(4, 2) +
                                       @"/" + _cNgayQD.Substring(0, 4);
                        }

                        //Lấy han nop
                        string   _cHanNop = _dr["HanNop"].ToString().Trim();
                        DateTime _dHanNop;
                        if (_cHanNop.Length != 8)
                        {
                            _dHanNop = p_ky_chot;
                        }
                        else
                        {
                            _dHanNop = new DateTime(Int32.Parse(_cHanNop.Substring(6, 2)),
                                                    Int32.Parse(_cHanNop.Substring(4, 2)),
                                                    Int32.Parse(_cHanNop.Substring(0, 4)));
                        }

                        int    _SoTien     = Int32.Parse(_dr["no_cuoi_ky"].ToString().Trim());
                        string _Ngay_TPhat = "";
                        if ((_dHanNop > p_ky_chot) && (_SoTien > 0))
                        {
                            _Ngay_TPhat = p_ky_chot.ToString("dd/MM/yyyy");
                        }

                        DateTime _ngay_htoan;
                        DateTime _ngay_dau_nam = new DateTime(p_ky_chot.Year, 1, 1);
                        if (_nam_LSo < p_ky_chot.Year)
                        {
                            _ngay_htoan = _ngay_dau_nam.AddDays(-1);
                        }
                        else
                        {
                            _ngay_htoan = p_ky_chot;
                        }

                        _query = @"INSERT INTO tb_no
                                               (short_name, stt, loai, ma_cqt,
                                                tin, ma_chuong, ma_khoan, tmt_ma_tmuc,
                                                tkhoan, ngay_htoan, kykk_tu_ngay,
                                                kykk_den_ngay, han_nop,
                                                so_tien, tax_model, status, id, So_QD, Ngay_QD, tphat_den_ngay)
                                        VALUES ('{0}', {1}, '{2}', '{3}', '{4}',
                                                '{5}', '{6}', '{7}', '{8}', '{9}',
                                                '{10}', '{11}', '{12}', '{14}',
                                                '{15}', '{16}', {17}, '{18}', '{19}', '{20}')";

                        _query = _query.Replace("{0}", p_short_name);
                        _query = _query.Replace("{1}", (_rowsnum + 1).ToString());
                        _query = _query.Replace("{2}", "CD");
                        _query = _query.Replace("{3}", p_tax_code);

                        string matin = _dr["tin"].ToString().Trim();
                        if (matin.Length > 10)
                        {
                            matin = matin.Insert(10, "-");
                        }

                        _query = _query.Replace("{4}", matin);
                        _query = _query.Replace("{5}", _dr["machuong"].ToString().Trim());
                        _query = _query.Replace("{6}", "000");
                        _query = _query.Replace("{7}", _dr["tmt_ma_tmuc"].ToString().Trim());
                        _query = _query.Replace("{8}", _matk);
                        _query = _query.Replace("{9}", _ngay_htoan.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}", (_dHanNop.ToString("dd/MM/yyyy")));
                        _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");
                        _query = _query.Replace("{18}", _dr["SoQD"].ToString().Trim());
                        _query = _query.Replace("{19}", _cNgayQD);
                        _query = _query.Replace("{19}", _Ngay_TPhat);

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

                    _connFoxPro.close();
                    _dt.Clear();
                    _dt = null;

                    if (_rowsnum == 0)
                    {
                        string e = "Chưa có nợ của kỳ lập bộ tháng chốt dữ liệu";
                        //MessageBox.Show("Chưa có nợ của kỳ lập bộ tháng chốt dữ liệu");
                        flages = "No";
                        p_frm_qlcd.AddToListView(0, "   + " + p_short_name + ": " + e);

                        break;
                    }
                }
                _listFile_no.Clear();
                _listFile_no = null;


                #endregion
                return(_rowsnum);
            }
        }
Ejemplo n.º 6
0
        public static void Prc_doc_danh_muc(string p_short_name,
                                            string p_tax_name,
                                            string p_tax_code,
                                            string p_path,
                                            DirectoryInfo p_dir_source,
                                            Forms.Frm_QLCD p_frm_qlcd)
        {
            string _query = "";

            //Biến lưu trữ tên của hàm hoặc thủ tục

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



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

            using (CLS_DBASE.ORA _connOra_cndm = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQVATW))
            {
                #region Xoá dữ liệu danh mục cũ
                _query = @"Delete tb_vat_dtnt Where short_name= '" + p_short_name + "'";
                _connOra_cndm.exeUpdate(_query);
                #endregion

                #region Đọc dữ liệu mã danh mục

                _query = @"SELECT madtnt as madtnt, mabpql as mabpql, macaptren as macaptren,'"
                         + p_short_name + "' as short_name,left(allt(tengoi),75) as tendtnt from Dtnt2";

                DataTable _dt = _connFoxPro.exeQuery(_query);
                foreach (DataRow _dr in _dt.Rows)
                {
                    _query = @"INSERT INTO tb_vat_dtnt (madtnt, mabpql, macaptren, short_name, tendtnt)
                                          VALUES ('" + _dr["madtnt"].ToString().Trim() +
                             @"', '" + _dr["mabpql"].ToString().Trim() +
                             @"', '" + _dr["macaptren"].ToString().Trim() +
                             @"', '" + p_short_name +
                             @"', '" + _dr["tendtnt"].ToString().Trim() + @"')";
                    _connOra_cndm.exeUpdate(_query);
                }
                //CLS_DBASE.WriteToServer(GlobalVar.gl_connTKTQ1, "tb_vat_dtnt", _dt);

                _dt.Clear();
                _dt = null;
                _connFoxPro.close();

                #endregion

                #region Cập nhật MaDTNT 13 số

                _query = @"UPDATE tb_vat_dtnt
                                    SET madtnt = SUBSTR(trim(madtnt),1,10) || '-' || SUBSTR(trim(madtnt),11,3)
                                    WHERE length(trim(madtnt))>10
                                    AND short_name= '" + p_short_name + "'";
                _connOra_cndm.exeUpdate(_query);

                #endregion

                #region Đọc dữ liệu tên phòng ban, cán bộ

                _query = @"SELECT mabpql, tengoi, macaptren from dmbpql";

                _dt = _connFoxPro.exeQuery(_query);
                string name;
                string code;
                string macaptren;

                foreach (DataRow _dr in _dt.Rows)
                {
                    macaptren = _dr["macaptren"].ToString().Trim();
                    if (macaptren == "")
                    {
                        name = "TENCAPTRENQUANLY";
                        code = "MACAPTREN";
                    }
                    else
                    {
                        name = "TENBOPHANQUANLY";
                        code = "MABPQL";
                    }
                    _query = @"UPDATE tb_vat_dtnt
                                          SET " + name + @" = '" + _dr["tengoi"].ToString().Trim() + @"'
                                        WHERE trim(" + code + ") = '" + _dr["mabpql"].ToString().Trim() + @"'
                                          AND short_name= '" + p_short_name + "'";
                    _connOra_cndm.exeUpdate(_query);
                }
                _dt.Clear();
                _dt = null;
                _connFoxPro.close();

                #endregion
            }
        }
Ejemplo n.º 7
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;
            }
        }
Ejemplo n.º 8
0
        // Dữ liệu quyết định ấn định, bãi bỏ quyết định
        public static int Fnc_doc_file_qdad(string p_short_name,
                                            string p_tax_name,
                                            string p_tax_code,
                                            DateTime p_ky_chot,
                                            DateTime p_ky_ps_tu,
                                            DateTime p_ky_ps_den,
                                            string p_path,
                                            DirectoryInfo p_dir_source,
                                            Forms.Frm_QLCD p_frm_qlcd)
        {
            using (CLS_DBASE.ORA _connOra_qdad = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ))
            {
                DateTime _ky_ps_tu  = p_ky_ps_tu;
                DateTime _ky_ps_den = p_ky_ps_den;

                string _query = "";

                // Biến lưu trữ tên của hàm hoặc thủ tục
                string v_pck      = "FNC_DOC_FILE_QDAD";
                string _File_Nghi = "Nghi" + p_ky_chot.ToString("yyyy") + ".DBF";

                // Biến lưu trữ số bản ghi
                int _rowsnum = 0;

                // Đọc file QDADYYYY.DBF
                string _search_pattern = "QDAD*.DBF";

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


                // Đối tượng lưu trữ danh sách file dữ liệu quyết định ấn định, bãi bỏ quyết định
                ArrayList _listFile_qdad = new ArrayList();
                // Lấy danh sách các file dữ liệu quyết định ấn định, bãi bỏ quyết định
                _listFile_qdad.AddRange(p_dir_source.GetFiles(_search_pattern));

                foreach (FileInfo _file in _listFile_qdad)
                {
                    _query = @"SELECT a.madtnt,
                                         a.matkhai as ma_tkhai,
                                         a.matm as ma_tmuc,
                                         a.kylbo,a.kykkhai,
                                         iif(Subs(DToC(a.NgayQD), 4, 7) == a.KyLBo, 
                                         a.NgayQD, 
                                         ('01/'+a.KyLBo)) as ngay_nop,
                                         a.hannop as han_nop,
                                         iif(a.Loai=1,a.thuecl,-1*a.thuecl) as so_tien ,
                                         b.mabpql, b.macaptren, b.machuong   
                                    FROM {0} a ,dtnt2 b
                                   WHERE a.maad IN ('02','03') 
                                     AND a.thuecl > 0 
                                     AND a.matkhai IN ('01/TAIN',
                                                       '01/BVMT',
                                                       '01/PHLP',
                                                       '01/KHAC',
                                                       '01A/TNDN',
                                                       '01B/TNDN')
                                     AND a.madtnt = b.madtnt
                                     and Allt(a.madtnt) not in (select Allt(MaDTNT) from {3} where empty(denngay))
                                  ";

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

                    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);

                    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ộ

                        _ky_lbo = new DateTime(Int32.Parse(_kylbo.Substring(2, 4)),     // Năm
                                               Int32.Parse(_kylbo.Substring(0, 2)),     // Tháng
                                               1);                                      // Ngày


                        // Tờ khai tháng
                        if (_ma_tkhai.Equals("01/TAIN") ||
                            _ma_tkhai.Equals("01/BVMT") ||
                            _ma_tkhai.Equals("01/KHAC"))
                        {
                            _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);
                        }

                        // 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

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

                            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
                            {
                                p_frm_qlcd.AddToListView(0, "   + " + p_short_name
                                                         + "/ " + v_pck + ": "
                                                         + new InvalidDataException("Tháng của kỳ phát sinh không hợp lệ").Message);
                                _error_message += "Tháng của kỳ phát sinh không hợp lệ(" + _file.Name + ");";
                                continue;
                            }
                        }

                        if (_ky_lbo.CompareTo(_ky_ps_den) > 0 ||
                            _ky_lbo.CompareTo(_ky_ps_tu) < 0 ||
                            _ky_psinh_tu.CompareTo(_ky_ps_tu) < 0 ||
                            _ky_psinh_tu.CompareTo(_ky_ps_den) > 0)
                        {
                            continue;
                        }

                        #endregion

                        _query = @"INSERT INTO tb_ps
                                           (short_name, stt, loai, ma_cqt, tin,
                                            ma_tkhai, ma_chuong, ma_khoan, ma_tmuc,
                                            tkhoan, kykk_tu_ngay, kykk_den_ngay,
                                            so_tien, han_nop, ngay_htoan,
                                            tax_model, status, id)
                                    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}", (_rowsnum + 1).ToString());
                        _query = _query.Replace("{2}", "TK");
                        _query = _query.Replace("{3}", p_tax_code);

                        string matin = _dr["madtnt"].ToString().Trim();
                        if (matin.Length > 10)
                        {
                            matin = matin.Insert(10, "-");
                        }

                        _query = _query.Replace("{4}", matin);
                        _query = _query.Replace("{5}", _ma_tkhai);
                        _query = _query.Replace("{6}", _dr["machuong"].ToString().Trim());
                        _query = _query.Replace("{7}", "000");
                        _query = _query.Replace("{8}", _dr["ma_tmuc"].ToString().Trim());
                        _query = _query.Replace("{9}", "TK_NGAN_SACH");
                        _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}", "VAT-APP");
                        _query = _query.Replace("{16}", "");
                        _query = _query.Replace("{17}", "seq_id_csv.nextval");

                        if (_connOra_qdad.exeUpdate(_query) != 0)
                        {
                            _rowsnum++;
                        }
                    }
                    _dt.Clear();
                    _dt = null;
                    _connFoxPro.close();
                }
                _listFile_qdad.Clear();
                _listFile_qdad = null;

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

                return(_rowsnum);
            }
        }
Ejemplo n.º 9
0
        // Hàm đọc dữ liệu phát sinh tháng
        public static int Fnc_doc_file_ps_thang(string p_short_name,
                                                string p_tax_name,
                                                string p_tax_code,
                                                DateTime p_ky_chot,
                                                DateTime p_ky_ps_tu,
                                                DateTime p_ky_ps_den,
                                                string _path,
                                                DirectoryInfo p_dir_source,
                                                Forms.Frm_QLCD p_frm_qlcd)
        {
            using (CLS_DBASE.ORA _connOra = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ))
            {
                DateTime _ky_ps_tu  = p_ky_ps_tu;
                DateTime _ky_ps_den = p_ky_ps_den;

                string _query = "";

                // Biến lưu trữ tên hàm hoặc thủ tục
                string v_pck      = "FNC_DOC_FILE_PS_THANG";
                string _File_Nghi = "Nghi" + p_ky_chot.ToString("yyyy") + ".DBF";

                // Biến lưu số bản ghi dữ liệu đã đọc
                int _rowsnum = 0;

                // Đọc file TZMMYYYY.DBF
                string _search_pattern = "TK*.DBF";

                // Đối tượng lưu trữ danh sách các file dữ liệu phát sinh tháng
                ArrayList _listFile = new ArrayList();
                // Lấy danh sách các file dữ liệu phát sinh tháng
                _listFile.AddRange(p_dir_source.GetFiles(_search_pattern));
                #region Doc file
                foreach (FileInfo _file in _listFile)
                {
                    if (_file.Name.Length != 12)
                    {
                        continue;
                    }
                    int ky;
                    int nam;
                    try
                    {
                        ky  = int.Parse(_file.Name.ToString().Trim().Substring(2, 2));
                        nam = int.Parse(_file.Name.ToString().Trim().Substring(4, 4));
                    }
                    catch (FormatException e)
                    {
                        ky  = 1;
                        nam = 1;
                    }

                    DateTime _d_file = new DateTime(nam, ky, 1);
                    if ((_d_file < _ky_ps_tu) || (_d_file < new DateTime(2011, 08, 01)))
                    {
                        continue;
                    }

                    _query = @"SELECT a.madtnt as tin, a.matkhai as ma_tkhai,                                         
                                         a.ngnop as ngay_nop, a.matm as ma_tmuc, 
                                         a.hannop as han_nop, thuecl as so_tien,                                          
                                         a.KyKKhai, 
                                         b.mabpql, b.macaptren, b.MaChuong
                                    FROM {0} a,DTNT2.DBF b 
                                   WHERE a.madtnt = b.madtnt                                      
                                         AND a.MaTKhai IN ('01/TAIN',
                                                       '01/BVMT',
                                                       '01/PHLP',
                                                       '01/KHAC',
                                                       '04/TNDN',
                                                       '04Q/TNDN')                                      
                                         AND thuecl <> 0
                                         and Allt(a.madtnt) not in (select Allt(MaDTNT) from {3} where empty(denngay))";

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

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

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

                    foreach (DataRow _dr in _dt.Rows)
                    {
                        string _ky_kkhai = _dr["KyKKhai"].ToString().Replace("/", "");
                        #region Xác định kỳ phát sinh của đối tượng nộp thuế
                        DateTime _ky_psinh_tu;
                        DateTime _ky_psinh_den;
                        int      _quy_ky_kkhai;
                        int      _nam_ky_kkhai;

                        if (_dr["KyKKhai"].ToString().Trim() != @"04Q/TNDN")
                        {
                            _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);
                        }
                        else
                        {
                            _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)
                            {
                                _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
                            {
                                p_frm_qlcd.AddToListView(0, "   + " + p_short_name
                                                         + "/ " + v_pck + ": "
                                                         + new InvalidDataException("Quý không hợp lệ").Message);
                                continue;
                            }
                        }


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

                        string matin = _dr["tin"].ToString().Trim();
                        if (matin.Length > 10)
                        {
                            matin = matin.Insert(10, "-");
                        }

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

                        _query = _query.Replace("{0}", p_short_name);
                        _query = _query.Replace("{1}", (_rowsnum + 1).ToString());
                        _query = _query.Replace("{2}", "TK");
                        _query = _query.Replace("{3}", p_tax_code);
                        _query = _query.Replace("{4}", matin);
                        _query = _query.Replace("{5}", _dr["ma_tkhai"].ToString().Trim());
                        _query = _query.Replace("{6}", _dr["machuong"].ToString().Trim());
                        _query = _query.Replace("{7}", "000");
                        _query = _query.Replace("{8}", _dr["ma_tmuc"].ToString().Trim());
                        _query = _query.Replace("{9}", "TK_NGAN_SACH");
                        _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}", p_ky_chot.ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{15}", "VAT-APP");
                        _query = _query.Replace("{16}", "");
                        _query = _query.Replace("{17}", "seq_id_csv.nextval");
                        _query = _query.Replace("{18}", _dr["mabpql"].ToString().Trim());
                        _query = _query.Replace("{19}", _dr["macaptren"].ToString().Trim());
                        if (_connOra.exeUpdate(_query) != 0)
                        {
                            _rowsnum++;
                        }
                    }
                    _dt.Clear();
                    _dt = null;
                    _connFoxPro.close();
                }
                _listFile.Clear();
                _listFile = null;
                #endregion
                return(_rowsnum);
            }
        }
Ejemplo n.º 10
0
        // Hàm đọc dữ liệu phát sinh trên TK TNDN CNBDS
        public static int Fnc_doc_file_ps_cnbds(string p_short_name,
                                                string p_tax_name,
                                                string p_tax_code,
                                                DateTime p_ky_chot,
                                                DateTime p_ky_ps_tu,
                                                DateTime p_ky_ps_den,
                                                string p_path,
                                                DirectoryInfo p_dir_source,
                                                Forms.Frm_QLCD p_frm_qlcd)
        {
            using (CLS_DBASE.ORA _connOra_cntk = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ))
            {
                DateTime _ky_ps_tu  = p_ky_ps_tu;
                DateTime _ky_ps_den = p_ky_ps_den;

                string _query = "";

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

                // Biến lưu số bản ghi dữ liệu phát sinh
                int    _rowsnum   = 0;
                string _File_Nghi = "Nghi" + p_ky_chot.ToString("yyyy") + ".DBF";

                // Đọc file TKDNYYYY.DBF
                string _search_pattern = "SMD*.DBF";

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

                // Đối tượng lưu danh sách các file dữ liệu phát sinh quý
                ArrayList _listFile = new ArrayList();
                // Lấy danh sách các file dữ liệu phát sinh quý
                _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.matkhai as ma_tkhai,
                                          a.matm as ma_tmuc,
                                          a.ngnop as ngay_nop,
                                          a.hannop as han_nop,
                                          a.thuecl as so_tien,
                                          a.qui as KyKkhai,
                                          a.KyLbo,
                                          b.mabpql, b.macaptren, b.machuong
                                       FROM {0} a, DTNT2.DBF b
                                       WHERE a.matkhai IN ('02/TNDN')                                        
                                       AND a.thuecl <> 0		                                       
                                       AND a.madtnt = b.madtnt
                                       and Allt(a.madtnt) not in (select Allt(MaDTNT) from {3} where empty(denngay))";

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

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

                    DataTable _dt = _connFoxPro.exeQuery(_query);

                    foreach (DataRow _dr in _dt.Rows)
                    {
                        #region Kiểm tra kỳ lập bộ
                        string _temp = "";
                        _temp = _dr["kylbo"].ToString().Trim();
                        _temp = _temp.Replace("/", "");

                        // 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(_ky_ps_den) > 0 ||
                            _kylbo.CompareTo(_ky_ps_tu) < 0)
                        {
                            continue;
                        }

                        #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 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

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


                        DateTime _ky_kk_tu;  // Ngày bắt đầu kỳ kk
                        DateTime _ky_kk_den; // Ngày kết thúc kỳ kk

                        if (_quy_ky_kkhai == 1)
                        {
                            _ky_kk_tu  = new DateTime(_nam_ky_kkhai, 1, 1);
                            _ky_kk_den = new DateTime(_nam_ky_kkhai, 3, 31);
                        }
                        else if (_quy_ky_kkhai == 2)
                        {
                            _ky_kk_tu  = new DateTime(_nam_ky_kkhai, 4, 1);
                            _ky_kk_den = new DateTime(_nam_ky_kkhai, 6, 30);
                        }
                        else if (_quy_ky_kkhai == 3)
                        {
                            _ky_kk_tu  = new DateTime(_nam_ky_kkhai, 7, 1);
                            _ky_kk_den = new DateTime(_nam_ky_kkhai, 9, 30);
                        }
                        else if (_quy_ky_kkhai == 4)
                        {
                            _ky_kk_tu  = new DateTime(_nam_ky_kkhai, 10, 1);
                            _ky_kk_den = new DateTime(_nam_ky_kkhai, 12, 31);
                        }
                        else
                        {
                            p_frm_qlcd.AddToListView(0, "   + " + p_short_name
                                                     + "/ " + v_pck + ": "
                                                     + new InvalidDataException("Tháng của kỳ phát sinh không hợp lệ").Message);
                            continue;
                        }

                        if (_ky_kk_tu.CompareTo(_ky_ps_tu) < 0 ||
                            _ky_kk_den.CompareTo(_ky_ps_den) > 0)
                        {
                            continue;
                        }
                        #endregion

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

                        _query = _query.Replace("{0}", p_short_name);
                        _query = _query.Replace("{1}", (_rowsnum + 1).ToString());
                        _query = _query.Replace("{2}", "TK");
                        _query = _query.Replace("{3}", p_tax_code);

                        string matin = _dr["tin"].ToString().Trim();
                        if (matin.Length > 10)
                        {
                            matin = matin.Insert(10, "-");
                        }

                        _query = _query.Replace("{4}", matin);
                        _query = _query.Replace("{5}", _ma_tkhai);
                        _query = _query.Replace("{6}", _dr["machuong"].ToString().Trim());
                        _query = _query.Replace("{7}", "000");
                        _query = _query.Replace("{8}", _ma_tmuc);
                        _query = _query.Replace("{9}", "TK_NGAN_SACH");
                        _query = _query.Replace("{10}", _ky_kk_tu.ToString("dd/MM/yyyy").ToString().Trim());
                        _query = _query.Replace("{11}", _ky_kk_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").Trim());
                        _query = _query.Replace("{14}", p_ky_chot.ToString("dd/MM/yyyy").Trim());
                        _query = _query.Replace("{15}", "VAT-APP");
                        _query = _query.Replace("{16}", "");
                        _query = _query.Replace("{17}", "seq_id_csv.nextval");
                        _query = _query.Replace("{18}", _dr["mabpql"].ToString().Trim());
                        _query = _query.Replace("{19}", _dr["macaptren"].ToString().Trim());

                        if (_connOra_cntk.exeUpdate(_query) != 0)
                        {
                            _rowsnum++;
                        }
                    }
                    _dt.Clear();
                    _dt = null;
                    _connFoxPro.close();
                }
                _listFile.Clear();
                _listFile = null;

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

                return(_rowsnum);
            }
        }
Ejemplo n.º 11
0
        // Hàm đọc dữ liệu nợ
        public static int Fnc_doc_file_dkntk(string p_short_name,
                                             string p_tax_name,
                                             string p_tax_code,
                                             ref DateTime p_ky_chot,
                                             string p_path,
                                             DirectoryInfo p_dir_source,
                                             Forms.Frm_QLCD p_frm_qlcd
                                             )
        {
            string flages = "YES";

            //using (CLS_DBASE.ORA _connOra_no = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ))
            using (CLS_DBASE.ORA _connOra_no = 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_DKNTK";
                string   _ky_chot      = p_ky_chot.ToString("MM/yyyy");
                DateTime _ngay_dau_nam = new DateTime(p_ky_chot.Year, 1, 1);

                string _File_Nghi = "Nghi" + p_ky_chot.ToString("yyyy") + ".DBF";
                // Biến lưu số bản ghi đã được bổ sung vào bảng TB_NO
                int _rowsnum = 0;

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

                #region Docfile dkntk

                // File
                string _search_pattern = "DTNT_LT2.DBF";
                // Đối tượng lưu trữ các file dữ liệu
                ArrayList _listFile = new ArrayList();
                // Lấy danh sách các file dữ liệu
                _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.tuky as ky_bat_dau,
                                              a.denky as ky_ket_thuc,
                                              a.matkhai as ma_tkhai,
                                              '{2}' AS short_name                                          
                                       FROM {0} a 
                                       INNER JOIN
                                            DTNT2.DBF as c
                                            ON a.madtnt = c.madtnt
                                       WHERE  CTOD('01/' + '{1}') >= CTOD('01/' + a.TuKy)
                                              and (CTOD('01/' + '{1}') <= CTOD('01/' + a.DenKy)
                                                    or empty(a.DenKy) or trim(a.DenKy)='/') 
                                              and Allt(matkhai) in (select Allt(matkhai) from dmtokhai.dbf)
                                              and Allt(a.madtnt) not in (select Allt(MaDTNT) from {3} where empty(denngay))
                                             ";

                    _query = _query.Replace("{0}", _file.Name);
                    _query = _query.Replace("{1}", _ky_chot);
                    _query = _query.Replace("{2}", p_short_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);
                    //CLS_DBASE.WriteToServer(GlobalVar.gl_connTKTQ1, "TB_VAT_DKNTK", _dt);

                    foreach (DataRow _dr in _dt.Rows)
                    {
                        string matin = _dr["tin"].ToString().Trim();
                        //if (matin.Length > 10)
                        //{
                        //    matin = matin.Insert(10, "-");
                        //}

                        _query = @"INSERT INTO TB_VAT_DKNTK
                                               (TIN,
                                                ky_bat_dau,
                                                ky_ket_thuc,
                                                ma_tkhai,                                                
                                                short_name
                                                )
                                        VALUES ('{0}', '{1}', '{2}', '{3}', '{4}')";

                        _query = _query.Replace("{0}", _dr["TIN"].ToString().Trim());
                        _query = _query.Replace("{1}", _dr["ky_bat_dau"].ToString().Trim());
                        _query = _query.Replace("{2}", _dr["ky_ket_thuc"].ToString().Trim());
                        _query = _query.Replace("{3}", _dr["ma_tkhai"].ToString().Trim());
                        _query = _query.Replace("{4}", _dr["short_name"].ToString().Trim());

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

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


                #endregion
                return(_rowsnum);
            }
        }
Ejemplo n.º 12
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;
            }
        }