// 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; } }
// 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; } }
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; } }
// 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; } }
// 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; } }
public static int Fnc_copy_file_dtnt_ftp(string p_forder, DirectoryInfo p_dir_destination, string p_short_name, Forms.Frm_QLCD p_frm_qlcd, string p_server, string p_username, string p_password, string p_filename) { using (CLS_DBASE.ORA _ora = new CLS_DBASE.ORA(GlobalVar.gl_connTKTQ)) { // Biến lưu trữ trên hàm hoặc thủ tục string v_pck = "FNC_COPY_FILE_DTNT"; // Biến xác định ghi logs khi thực hiện thành công string logs = ""; // Biến lưu câu lệnh sql string _query = ""; // Biến lưu trữ số file đã copy về máy int _so_file = 1; _ora.TransStart(); try { #region Copy files //Create a WebClient. WebClient request = new WebClient(); //Declare Ftp parameters /* string FtpServer = "ftp://10.15.117.98/aiun/BPH_DBVAT_707/DTNT/"; string FtpUserName = "******"; string FtpPassword = "******";*/ //Setup our credentials request.Credentials = new NetworkCredential(p_username, p_password); try { //Download the data into a Byte array byte[] fileData = request.DownloadData(p_server + p_forder + "/" + p_filename); //Create a FileStream that we'll write the // byte array to. FileStream file = File.Create(p_dir_destination + "\\" + p_filename); //Write the full byte array to the file. file.Write(fileData, 0, fileData.Length); file.Close(); // _so_file++; /* } catch (FormatException e) { MessageBox.Show(e.Message); } }*/ } catch (FormatException e) { p_frm_qlcd.AddToListView(0, " + " + p_short_name + ": " + e.Message); logs = "E"; return -1; } // MessageBox.Show("Download complete"); #endregion } catch (Exception e) { p_frm_qlcd.AddToListView(0, " + " + p_short_name + ": " + e.Message); // Ghi log _query = null; _query += "call PCK_TRACE_LOG.prc_ins_log_vs('" + p_short_name + "', '" + v_pck + "', 'N', '"; _query += e.Message.ToString().Replace("'", "\"") + "')"; _ora.TransExecute(_query); _ora.TransRollBack(); return -1; } if (logs != "E") { // Ghi log _query = null; _query = "call PCK_TRACE_LOG.prc_ins_log_vs('" + p_short_name + "', '" + v_pck + "', 'Y', null)"; _ora.TransExecute(_query); _ora.TransCommit(); } return _so_file; } }
//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; } }
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; } }
// 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; } }