public void Begin(string sKind0) { string[] sArr; using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.ReturnArr(out sArr); } string sFPathN = sArr[0]; string sFPathP = sArr[1]; string sFPathY = sArr[2]; string sPaPartition = sArr[3]; //Console.WriteLine(sFPathN); //抓 B0401D*.* 的所有檔案 foreach (string OkFName in System.IO.Directory.GetFileSystemEntries(sFPathN, sKind0 + "*.*")) { Console.WriteLine("檔案名稱1:" + OkFName); string sPgSN = DateTime.Now.ToString("yyyyMMddHHmmssfff"); try { System.IO.File.Move(OkFName, OkFName.Replace(sFPathN, sFPathP)); string OkFNameP = OkFName.Replace(sFPathN, sFPathP); string line = ""; int counter = 0; using (System.IO.StreamReader txtFile = new System.IO.StreamReader(OkFNameP, System.Text.Encoding.Default)) { Console.WriteLine("檔案名稱2:" + OkFNameP); using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { //開始匯入 query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", "", 1); } while ((line = txtFile.ReadLine()) != null) { if (line.Trim() != "") { //Console.WriteLine(line); string[] CutS = { sPaPartition }; string[] charA = line.Split(CutS, StringSplitOptions.None); //字串尾要分號//共13個分號 if (charA.Length == 13) { Console.WriteLine("折讓證明單號碼:" + charA[0].ToString()); //for (int i = 0; i < charA.Length-1; i++) //{ // Console.WriteLine("Index : {0}, 字串 : {1}", (i + 1), charA[i]); //} using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { try { if (query.Kind1SelectTbl3("B0401DSN", "MAllowanceNumber='" + charA[0].ToString() + "' And DAllowanceSequenceNumber='" + charA[10].ToString() + "'", "B0401D") == 0) { if (charA[1].ToString().Trim() != "" && charA[2].ToString().Trim() != "") { System.Collections.Hashtable data = new System.Collections.Hashtable(); data["MAllowanceNumber"] = charA[0].ToString().Trim(); data["DOriginalInvoiceDate"] = charA[1].ToString().Trim(); data["DOriginalInvoiceNumber"] = charA[2].ToString().Trim(); data["DOriginalSequenceNumber"] = charA[3].ToString().Trim(); data["DOriginalDescription"] = charA[4].ToString().Trim(); data["DQuantity"] = charA[5].ToString().Trim(); data["DUnit"] = charA[6].ToString().Trim(); data["DUnitPrice"] = charA[7].ToString().Trim(); data["DAmount"] = charA[8].ToString().Trim(); data["DTax"] = charA[9].ToString().Trim(); data["DAllowanceSequenceNumber"] = charA[10].ToString().Trim(); data["DTaxType"] = charA[11].ToString().Trim(); data["TxFileNmae"] = OkFName.ToString().Trim(); query.InsertDataNonKey("B0401D", data); data = null; } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[MAllowanceNumber:" + charA[0].ToString().Trim() + "][DAllowanceSequenceNumber:" + charA[10].ToString().Trim() + "]", (counter + 1).ToString(), 17); query.GoToSTemp("B0401D", " MAllowanceNumber='" + charA[0].ToString() + "' "); query.GoToSTemp("B0401H", " MAllowanceNumber='" + charA[0].ToString() + "' "); } } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[MAllowanceNumber:" + charA[0].ToString().Trim() + "][DAllowanceSequenceNumber:" + charA[10].ToString().Trim() + "]", (counter + 1).ToString(), 16); query.GoToSTemp("B0401D", " MAllowanceNumber='" + charA[0].ToString() + "' "); query.GoToSTemp("B0401H", " MAllowanceNumber='" + charA[0].ToString() + "' "); } } catch (Exception ex) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, ex.ToString(), (counter + 1).ToString(), 11); query.GoToSTemp("B0401D", " MAllowanceNumber='" + charA[0].ToString() + "' "); query.GoToSTemp("B0401H", " MAllowanceNumber='" + charA[0].ToString() + "' "); } } } else { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", (counter + 1).ToString(), 12); } } Console.WriteLine("間隔數:" + charA.Length.ToString()); counter++; } } using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { //結束匯入 query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", "", 2); } } Console.WriteLine("筆數:" + counter.ToString()); System.IO.File.Move(OkFNameP, OkFNameP.Replace(sFPathP, sFPathY).Replace(".txt", "_" + sPgSN + ".txt")); } catch (Exception ex) { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "此檔案已存於:" + sFPathP + " [" + ex + "]", "", 13); } } //try //{ // //檔案已存在的FileMove // Console.WriteLine(OkFName); // Console.WriteLine(OkFName.Replace(sFPathN, sFPathY)); // System.IO.File.Move(OkFName, OkFName.Replace(sFPathN, sFPathY) + sPgSN); // //Exception未處理,檔案已存在時,無法建立該檔案。 //} //catch (Exception ex) //{ // Console.WriteLine("檔案已存在!!"); // using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) // { // query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, ex.ToString(), "", 13); // } //} } //} //catch (Exception ex) //{ // using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) // { // // query.GoException(sPgSN, ex.ToString(), "[" + GetType().Assembly.Location + "] [" + System.Reflection.MethodInfo.GetCurrentMethod().ToString() + "]"); // query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, "", ex.ToString(), "", 14); // } //} }
public void Begin(string sKind0) { //try //{ string[] sArr; using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.ReturnArr(out sArr); } string sFPathN = sArr[0]; string sFPathP = sArr[1]; string sFPathY = sArr[2]; string sPaPartition = sArr[3]; //Console.WriteLine(sFPathN); //抓 D0501*.* 的所有檔案 foreach (string OkFName in System.IO.Directory.GetFileSystemEntries(sFPathN, sKind0 + "*.*")) { Console.WriteLine("檔案名稱1:" + OkFName); string sPgSN = DateTime.Now.ToString("yyyyMMddHHmmssfff"); try { System.IO.File.Move(OkFName, OkFName.Replace(sFPathN, sFPathP)); string OkFNameP = OkFName.Replace(sFPathN, sFPathP); string line = ""; int counter = 0; using (System.IO.StreamReader txtFile = new System.IO.StreamReader(OkFNameP, System.Text.Encoding.Default)) { Console.WriteLine("檔案名稱2:" + OkFNameP); using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { //開始匯入 query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", "", 1); } while ((line = txtFile.ReadLine()) != null) { if (line.Trim() != "") { //Console.WriteLine(line); string[] CutS = { sPaPartition }; string[] charA = line.Split(CutS, StringSplitOptions.None); //字串尾要分號//共9個分號 if (charA.Length == 9) { Console.WriteLine("作廢折讓證明單號碼:" + charA[0].ToString()); //for (int i = 0; i < charA.Length-1; i++) //{ // Console.WriteLine("Index : {0}, 字串 : {1}", (i + 1), charA[i]); //} using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { try { if (query.Kind1SelectTbl3("D0501SN", "CancelAllowanceNumber='" + charA[0].ToString() + "'", "D0501") == 0) { System.Collections.Hashtable data = new System.Collections.Hashtable(); data["CancelAllowanceNumber"] = charA[0].ToString().Trim(); data["AllowanceDate"] = charA[1].ToString().Trim(); data["BuyerId"] = charA[2].ToString().Trim(); data["SellerId"] = charA[3].ToString().Trim(); data["CancelDate"] = charA[4].ToString().Trim(); data["CancelTime"] = charA[5].ToString().Trim(); data["CancelReason"] = charA[6].ToString().Trim(); data["Remark"] = charA[7].ToString().Trim(); data["TxFileNmae"] = OkFName.ToString().Trim(); query.InsertDataNonKey("D0501", data); data = null; } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[折讓證明單號碼:" + charA[0].ToString() + "][此折讓證明單已存在!!", (counter + 1).ToString(), 11); } } catch (Exception ex) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[折讓證明單號碼:" + charA[0].ToString() + "][字串有例外錯誤!!]" + ex.ToString(), (counter + 1).ToString(), 11); } } } else { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", (counter + 1).ToString(), 12); } } Console.WriteLine("間隔數:" + charA.Length.ToString()); counter++; } } using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { //結束匯入 query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", "", 2); } } Console.WriteLine("筆數:" + counter.ToString()); System.IO.File.Move(OkFNameP, OkFNameP.Replace(sFPathP, sFPathY).Replace(".txt", "_" + sPgSN + ".txt")); } catch (Exception ex) { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "此檔案已存於:" + sFPathP + " [" + ex + "]", "", 13); } } } }
public void Begin(string sKind0, string identityKey) { Dictionary <string, List <string> > pdfNumList = new Dictionary <string, List <string> >(); //try //{ string[] sArr; using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.ReturnArr(out sArr); } string sFPathN = sArr[0]; string sFPathP = sArr[1]; string sFPathY = sArr[2]; string sPaPartition = sArr[3]; //Console.WriteLine(sFPathN); string sKind0UpperCase = sKind0.ToUpper(); //抓 B0401H*.* 的所有檔案 foreach (string OkFName in System.IO.Directory.GetFileSystemEntries(sFPathN, sKind0 + "*.*")) { Console.WriteLine("檔案名稱1:" + OkFName); string sPgSN = DateTime.Now.ToString("yyyyMMddHHmmssfff"); try { System.IO.File.Move(OkFName, OkFName.Replace(sFPathN, sFPathP)); string OkFNameP = OkFName.Replace(sFPathN, sFPathP); string line = ""; int counter = 0; using (System.IO.StreamReader txtFile = new System.IO.StreamReader(OkFNameP, System.Text.Encoding.Default)) { Console.WriteLine("檔案名稱2:" + OkFNameP); using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { //開始匯入 query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", "", 1); } while ((line = txtFile.ReadLine()) != null) { if (line.Trim() != "") { //Console.WriteLine(line); string[] CutS = { sPaPartition }; string[] charA = line.Split(CutS, StringSplitOptions.None); //字串尾要分號//共24個分號 if (charA.Length == 24) { Console.WriteLine("折讓證明單號碼:" + charA[0].ToString()); //for (int i = 0; i < charA.Length-1; i++) //{ // Console.WriteLine("Index : {0}, 字串 : {1}", (i + 1), charA[i]); //} using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { try { if (query.Kind1SelectTbl3("D0401SN", "MAllowanceNumber='" + charA[0].ToString() + "'", "D0401H") == 0) { System.Collections.Hashtable data = new System.Collections.Hashtable(); data["MAllowanceNumber"] = charA[0].ToString().Trim(); data["MAllowanceDate"] = charA[1].ToString().Trim(); data["MSIdentifier"] = charA[2].ToString().Trim(); data["MSName"] = charA[3].ToString().Trim(); data["MSAddress"] = charA[4].ToString().Trim(); data["MSPersonInCharge"] = charA[5].ToString().Trim(); data["MSTelephoneNumber"] = charA[6].ToString().Trim(); data["MSFacsimileNumber"] = charA[7].ToString().Trim(); data["MSEmailAddress"] = charA[8].ToString().Trim(); data["MSCustomerNumber"] = charA[9].ToString().Trim(); data["MSRoleRemark"] = charA[10].ToString().Trim(); data["MBIdentifier"] = charA[11].ToString().Trim(); data["MBName"] = charA[12].ToString().Trim(); data["MBAddress"] = charA[13].ToString().Trim(); data["MBPersonInCharge"] = charA[14].ToString().Trim(); data["MBTelephoneNumber"] = charA[15].ToString().Trim(); data["MBFacsimileNumber"] = charA[16].ToString().Trim(); data["MBEmailAddress"] = charA[17].ToString().Trim(); data["MBCustomerNumber"] = charA[18].ToString().Trim(); data["MBRoleRemark"] = charA[19].ToString().Trim(); data["MAllowanceType"] = charA[20].ToString().Trim(); data["ATaxAmount"] = charA[21].ToString().Trim(); data["ATotalAmount"] = charA[22].ToString().Trim(); data["TxFileNmae"] = OkFName.ToString().Trim(); query.InsertDataNonKey("D0401H", data); data = null; if (!pdfNumList.ContainsKey(sKind0UpperCase)) { pdfNumList[sKind0UpperCase] = new List <string>(); } pdfNumList[sKind0UpperCase].Add(charA[0].ToString().Trim()); } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[折讓證明單號碼:" + charA[0].ToString() + "][此折讓證明單號碼已存在!!", (counter + 1).ToString(), 11); } } catch (Exception ex) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, ex.ToString(), (counter + 1).ToString(), 11); } } } else { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", (counter + 1).ToString(), 12); } } Console.WriteLine("間隔數:" + charA.Length.ToString()); counter++; } } using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { //結束匯入 query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", "", 2); } } Console.WriteLine("筆數:" + counter.ToString()); System.IO.File.Move(OkFNameP, OkFNameP.Replace(sFPathP, sFPathY).Replace(".txt", "_" + sPgSN + ".txt")); } catch (Exception ex) { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "此檔案已存於:" + sFPathP + " [" + ex + "]", "", 13); } } //try //{ // //檔案已存在的FileMove // Console.WriteLine(OkFName); // Console.WriteLine(OkFName.Replace(sFPathN, sFPathY)); // System.IO.File.Move(OkFName, OkFName.Replace(sFPathN, sFPathY) + sPgSN); // //Exception未處理,檔案已存在時,無法建立該檔案。 //} //catch (Exception ex) //{ // Console.WriteLine("檔案已存在!!"); // using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) // { // query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, ex.ToString(), "", 13); // } //} } using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { foreach (var inv in pdfNumList) { foreach (var item in inv.Value) { Hashtable hashTable = new Hashtable(); hashTable["PRINT_METHOD"] = inv.Key; hashTable["PRINT_EINV_NUM"] = item; //hashTable["MAKE_FILE_DATE"] = DateTime.UtcNow; hashTable["WRITE_DATE"] = DateTime.UtcNow; hashTable["IDEN_KEY"] = identityKey; string insertMsg = query.InsertDataNonKey("PRINT_TEMP", hashTable); } } } //} //catch (Exception ex) //{ // using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) // { // // query.GoException(sPgSN, ex.ToString(), "[" + GetType().Assembly.Location + "] [" + System.Reflection.MethodInfo.GetCurrentMethod().ToString() + "]"); // query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, "", ex.ToString(), "", 14); // } //} }
public void Begin(string sKind0, string identityKey) { Dictionary <string, List <string> > pdfNumList = new Dictionary <string, List <string> >(); string[] sArr; using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.ReturnArr(out sArr); } string sFPathN = sArr[0]; string sFPathP = sArr[1]; string sFPathY = sArr[2]; string sPaPartition = sArr[3]; //Console.WriteLine(sFPathN); string sKind0UpperCase = sKind0.ToUpper(); //抓 A0401H*.* 的所有檔案 foreach (string OkFName in System.IO.Directory.GetFileSystemEntries(sFPathN, sKind0 + "*.*")) { Console.WriteLine("檔案名稱1:" + OkFName); string sPgSN = DateTime.Now.ToString("yyyyMMddHHmmssfff"); //try //{ System.IO.File.Move(OkFName, OkFName.Replace(sFPathN, sFPathP)); string OkFNameP = OkFName.Replace(sFPathN, sFPathP); string line = ""; int counter = 0; using (System.IO.StreamReader txtFile = new System.IO.StreamReader(OkFNameP, System.Text.Encoding.Default)) { Console.WriteLine("檔案名稱2:" + OkFNameP); using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { //Log_開始匯入 query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", "", 1); } while ((line = txtFile.ReadLine()) != null) { if (line.Trim() != "") { //Console.WriteLine(line); //string[] charA = line.Split(';'); //string[] CutS = { ";" }; string[] CutS = { sPaPartition }; string[] charA = line.Split(CutS, StringSplitOptions.None); //字串尾要分號//共48個分號 if (charA.Length == 48) { Console.WriteLine("發票號碼:" + charA[0].ToString()); //for (int i = 0; i < charA.Length-1; i++) //{ // Console.WriteLine("Index : {0}, 字串 : {1}", (i + 1), charA[i]); //} using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { //try //{ if (query.Kind1SelectTbl3("A0401SN", "MInvoiceNumber='" + charA[0].ToString() + "'", "A0401H") == 0) { if (charA[12].ToString().Trim() != "0000000000") { if (charA[13].ToString().Trim() != "0000") { int n; if (int.TryParse(charA[36].ToString().Trim(), out n)) { if (int.TryParse(charA[37].ToString().Trim(), out n)) { if (int.TryParse(charA[38].ToString().Trim(), out n)) { if (int.TryParse(charA[41].ToString().Trim(), out n)) { if (int.TryParse(charA[42].ToString().Trim(), out n)) { if (int.TryParse(charA[43].ToString().Trim(), out n)) { System.Collections.Hashtable data = new System.Collections.Hashtable(); //if (charA[12].ToString().Trim() == "0000000000") //{ data["ACKind"] = "C0401H"; } //else //{ data["ACKind"] = "A0401H"; } //data["ACKind"] = sKind0.ToUpper().Substring(0, 6); data["MInvoiceNumber"] = charA[0].ToString().Trim(); data["MInvoiceDate"] = charA[1].ToString().Trim(); data["MInvoiceTime"] = charA[2].ToString().Trim(); data["MSIdentifier"] = charA[3].ToString().Trim(); data["MSName"] = charA[4].ToString().Trim(); data["MSAddress"] = charA[5].ToString().Trim(); data["MSPersonInCharge"] = charA[6].ToString().Trim(); data["MSTelephoneNumber"] = charA[7].ToString().Trim(); data["MSFacsimileNumber"] = charA[8].ToString().Trim(); data["MSEmailAddress"] = charA[9].ToString().Trim(); data["MSCustomerNumber"] = charA[10].ToString().Trim(); data["MSRoleRemark"] = charA[11].ToString().Trim(); data["MBIdentifier"] = charA[12].ToString().Trim(); data["MBName"] = charA[13].ToString().Trim(); data["MBAddress"] = charA[14].ToString().Trim(); data["MBPersonInCharge"] = charA[15].ToString().Trim(); data["MBTelephoneNumber"] = charA[16].ToString().Trim(); data["MBFacsimileNumber"] = charA[17].ToString().Trim(); data["MBEmailAddress"] = charA[18].ToString().Trim(); data["MBCustomerNumber"] = charA[19].ToString().Trim(); data["MBRoleRemark"] = charA[20].ToString().Trim(); data["MCheckNumber"] = charA[21].ToString().Trim(); data["MBuyerRemark"] = charA[22].ToString().Trim(); data["MMainRemark"] = charA[23].ToString().Trim(); data["MCustomsClearanceMark"] = charA[24].ToString().Trim(); data["MCategory"] = charA[25].ToString().Trim(); data["MRelateNumber"] = charA[26].ToString().Trim(); data["MInvoiceType"] = charA[27].ToString().Trim(); data["MGroupMark"] = charA[28].ToString().Trim(); data["MDonateMark"] = charA[29].ToString().Trim(); data["MCarrierType"] = charA[30].ToString().Trim(); data["MCarrierId1"] = charA[31].ToString().Trim(); data["MCarrierId2"] = charA[32].ToString().Trim(); data["MPrintMark"] = charA[33].ToString().Trim(); data["MNPOBAN"] = charA[34].ToString().Trim(); data["MRandomNumber"] = charA[35].ToString().Trim(); data["ASalesAmount"] = charA[36].ToString().Trim(); data["AFreeTaxSalesAmount"] = charA[37].ToString().Trim(); data["AZeroTaxSalesAmount"] = charA[38].ToString().Trim(); data["ATaxType"] = charA[39].ToString().Trim(); data["ATaxRate"] = charA[40].ToString().Trim(); data["ATaxAmount"] = charA[41].ToString().Trim(); data["ATotalAmount"] = charA[42].ToString().Trim(); data["ADiscountAmount"] = charA[43].ToString().Trim(); data["AOriginalCurrencyAmount"] = charA[44].ToString().Trim(); data["AExchangeRate"] = charA[45].ToString().Trim(); data["ACurrency"] = charA[46].ToString().Trim(); data["TxFileNmae"] = OkFName.ToString().Trim(); query.InsertDataNonKey("A0401H", data); data = null; if (!pdfNumList.ContainsKey(sKind0UpperCase)) { pdfNumList[sKind0UpperCase] = new List <string>(); } pdfNumList[sKind0UpperCase].Add(charA[0].ToString()); } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[發票號碼:" + charA[0].ToString() + "][ADiscountAmount要>=0且不能有小數]", (counter + 1).ToString(), 11); } } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[發票號碼:" + charA[0].ToString() + "][ATotalAmount要>=0且不能有小數]", (counter + 1).ToString(), 11); } } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[發票號碼:" + charA[0].ToString() + "][ATaxAmount要>=0且不能有小數]", (counter + 1).ToString(), 11); } } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[發票號碼:" + charA[0].ToString() + "][AZeroTaxSalesAmount要>=0且不能有小數]", (counter + 1).ToString(), 11); } } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[發票號碼:" + charA[0].ToString() + "][AFreeTaxSalesAmount要>=0且不能有小數]", (counter + 1).ToString(), 11); } } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[發票號碼:" + charA[0].ToString() + "][ASalesAmount要>=0且不能有小數]", (counter + 1).ToString(), 11); } } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[發票號碼:" + charA[0].ToString() + "][買方營業人名稱須<>0000]", (counter + 1).ToString(), 11); } } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[發票號碼:" + charA[0].ToString() + "][買方營業人統一編號須<>0000000000]", (counter + 1).ToString(), 11); } } else { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[發票號碼:" + charA[0].ToString() + "][此發票號碼已存在!!", (counter + 1).ToString(), 11); } //} //catch (Exception ex) //{ // query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "[發票號碼:" + charA[0].ToString() + "][字串有例外錯誤!!]" + ex.ToString(), (counter + 1).ToString(), 11); //} } } else { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", (counter + 1).ToString(), 12); } } Console.WriteLine("間隔數:" + charA.Length.ToString()); counter++; } } //結束匯入 using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "", "", 2); } } Console.WriteLine("筆數:" + counter.ToString()); System.IO.File.Move(OkFNameP, OkFNameP.Replace(sFPathP, sFPathY).Replace(".txt", "_" + sPgSN + ".txt")); //} //catch (Exception ex) //{ // using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) // { // query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, OkFName, "此檔案已存於:" + sFPathP + " [" + ex + "]", "", 13); // } //} } using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { foreach (var inv in pdfNumList) { foreach (var item in inv.Value) { Hashtable hashTable = new Hashtable(); hashTable["PRINT_METHOD"] = inv.Key; hashTable["PRINT_EINV_NUM"] = item; //hashTable["MAKE_FILE_DATE"] = DateTime.UtcNow; hashTable["WRITE_DATE"] = DateTime.UtcNow; hashTable["IDEN_KEY"] = identityKey; string insertMsg = query.InsertDataNonKey("PRINT_TEMP", hashTable); } } } //Console.ReadLine(); }
//public void Begin(bool isAllIn = false) //{ // MoveFiles GoMoveFiles = new MoveFiles(); // string identityKey = GoMoveFiles.GetIdentityKey(); // string sPgSN = DateTime.Now.ToString("yyyyMMddHHmmssfff"); // //程序一: 移動檔案 D:\ImInputERP To D:\eInvoiceFile\ImInputTXT // GoMoveFiles.Begin("0", @"D:\ImInputERP\", @"D:\eInvoiceFile\ImInputTXT\", true); // //程序二: //存證B2B匯入 // ImA0401H a0401h = new ImA0401H(); // a0401h.Begin("a0401h", identityKey); // ImA0401D a0401d = new ImA0401D(); // a0401d.Begin("a0401d"); // ImA0501 a0501 = new ImA0501(); // a0501.Begin("a0501"); // ImA0601 a0601 = new ImA0601(); // a0601.Begin("a0601"); // ImB0401H b0401h = new ImB0401H(); // b0401h.Begin("b0401h", identityKey); // ImB0401D b0401d = new ImB0401D(); // b0401d.Begin("b0401d"); // ImB0501 b0501 = new ImB0501(); // b0501.Begin("b0501"); // //程序三 : //存證B2C匯入 // ImC0401H c0401h = new ImC0401H(); // c0401h.Begin("c0401h", identityKey); // ImC0401D c0401d = new ImC0401D(); // c0401d.Begin("c0401d"); // ImC0501 c0501 = new ImC0501(); // c0501.Begin("c0501"); // ImC0701 c0701 = new ImC0701(); // c0701.Begin("c0701"); // ImD0401H d0401h = new ImD0401H(); // d0401h.Begin("d0401h", identityKey); // ImD0401D d0401d = new ImD0401D(); // d0401d.Begin("d0401d"); // ImD0501 d0501 = new ImD0501(); // d0501.Begin("d0501"); // //程序3-5 // try // { // using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) // { // DataView dvResult1 = query.Kind1SelectTbl2("STempKind,STempNo", "STemp", "", "", "STemp"); // if (dvResult1 != null) // { // for (int i = 0; i < dvResult1.Count; i++) // { // query.DeleteData(Convert.ToString(dvResult1.Table.Rows[i][0]), Convert.ToString(dvResult1.Table.Rows[i][1])); // } // query.DeleteData("STemp", ""); // } // } // } // catch (Exception ex) // { // using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) // { // query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, "[程序3-5]被中斷", ex.ToString(), "", 61); // } // } // //程序四 : //產生發票PDF // try // { // MPDF nMPDF = new MPDF(); // if (isAllIn) // nMPDF.Begin("ALL"); // else // nMPDF.BeginByNumberList(identityKey); // } // catch (Exception ex) // { // using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) // { // query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, "[程序四]被中斷", ex.ToString(), "", 61); // } // } // //程序五 : //產生折讓單PDF // try // { // MPDFaw nMPDFaw = new MPDFaw(); // if (isAllIn) // nMPDFaw.Begin("ALL"); // else // nMPDFaw.BeginByNumberList(identityKey); // } // catch (Exception ex) // { // using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) // { // query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, "[程序五]被中斷", ex.ToString(), "", 61); // } // } //} public void Begin(string parameter) { //var isContinue = ReadyForAdmission(); //if (!isContinue) // return; Dictionary <string, List <string> > pdfEinvoiceNumList = new Dictionary <string, List <string> >(); string sPgSN = DateTime.Now.ToString("yyyyMMddHHmmssfff"); MoveFiles GoMoveFiles = new MoveFiles(); //1-取得識別碼 string identityKey = GoMoveFiles.GetIdentityKey(); try { //2-設定要處理的發票類別 List <string> getEinvoiceTypes = new List <string>() { "A0401", "A0501", "A0601", "B0401", "B0501", "C0401", "D0501", "D0401", "C0501", "C0701" }; //3-將檔案移動至暫存資料夾,並取得暫存資料夾完整路徑 string virtualTempDir = GoMoveFiles.MoveToTempDatabase(getEinvoiceTypes, parameter, true); //if (string.IsNullOrEmpty(virtualTempDir)) //{ // return; //} //4-寫入暫存資料庫 GoMoveFiles.WriteDataHandler(virtualTempDir, "A0401H", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "A0401D", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "B0401H", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "B0401D", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "C0401H", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "C0401D", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "D0401H", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "D0401D", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "A0501", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "A0601", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "B0501", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "C0501", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "C0701", identityKey); GoMoveFiles.WriteDataHandler(virtualTempDir, "D0501", identityKey); //5-從暫存寫入正式資料庫 ImA0401H a0401h = new ImA0401H(); a0401h.Begin2(virtualTempDir, "A0401H", ErrorInfo, identityKey); ImA0401D a0401d = new ImA0401D(); a0401d.Begin2(virtualTempDir, "A0401D", ErrorInfo, identityKey); ImB0401H b0401h = new ImB0401H(); b0401h.Begin2(virtualTempDir, "B0401H", ErrorInfo, identityKey); ImB0401D b0401d = new ImB0401D(); b0401d.Begin2(virtualTempDir, "B0401D", ErrorInfo, identityKey); ImC0401H c0401h = new ImC0401H(); c0401h.Begin2(virtualTempDir, "C0401H", ErrorInfo, identityKey); ImC0401D c0401d = new ImC0401D(); c0401d.Begin2(virtualTempDir, "C0401D", ErrorInfo, identityKey); ImD0401H d0401h = new ImD0401H(); d0401h.Begin2(virtualTempDir, "D0401H", ErrorInfo, identityKey); ImD0401D d0401d = new ImD0401D(); d0401d.Begin2(virtualTempDir, "D0401D", ErrorInfo, identityKey); ImA0501 a0501 = new ImA0501(); a0501.Begin2(virtualTempDir, "A0501", ErrorInfo, identityKey); ImA0601 a0601 = new ImA0601(); a0601.Begin2(virtualTempDir, "A0601", ErrorInfo, identityKey); ImB0501 b0501 = new ImB0501(); b0501.Begin2(virtualTempDir, "B0501", ErrorInfo, identityKey); ImC0501 c0501 = new ImC0501(); c0501.Begin2(virtualTempDir, "C0501", ErrorInfo, identityKey); ImC0701 c0701 = new ImC0701(); c0701.Begin2(virtualTempDir, "C0701", ErrorInfo, identityKey); ImD0501 d0501 = new ImD0501(); d0501.Begin2(virtualTempDir, "D0501", ErrorInfo, identityKey); //6-錯誤發送通知 if (ErrorInfo.ErrorBuffer.Count > 0) { SendErrorEmail(ErrorInfo); } //7-沒有給目錄就跑原來的Allin //if (string.IsNullOrEmpty(dirID)) // GoMoveFiles.Begin("0", @"D:\ImInputERP\", @"D:\eInvoiceFile\ImInputTXT\"); //else // GoMoveFiles.Begin("0", @"D:\ImInputERP\" + dirID, @"D:\eInvoiceFile\ImInputTXT\"); } catch (Exception ex) { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, "[程序 Allin]被中斷", ex.ToString(), "", 61); } } //程序3-5 try { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { DataView dvResult1 = query.Kind1SelectTbl2("STempKind,STempNo", "STemp", "", "", "STemp"); if (dvResult1 != null) { for (int i = 0; i < dvResult1.Count; i++) { query.DeleteData(Convert.ToString(dvResult1.Table.Rows[i][0]), Convert.ToString(dvResult1.Table.Rows[i][1])); } query.DeleteData("STemp", ""); } } } catch (Exception ex) { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, "[程序3-5]被中斷", ex.ToString(), "", 61); } } //程序四 : //產生發票PDF try { MPDF nMPDF = new MPDF(); if (parameter.Equals("ALL")) { nMPDF.Begin(); } else { nMPDF.BeginByNumberList(identityKey); } } catch (Exception ex) { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, "[程序四]被中斷", ex.ToString(), "", 61); } } //程序五 : //產生折讓單PDF try { MPDFaw nMPDFaw = new MPDFaw(); if (parameter.Equals("ALL")) { nMPDFaw.Begin(); } else { nMPDFaw.BeginByNumberList(identityKey); } } catch (Exception ex) { using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { query.GoLogsAll(sPgSN, System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, "[程序五]被中斷", ex.ToString(), "", 61); } Console.WriteLine("發生未知錯誤:" + ex.Message); } }
public void Begin(string sKind, string sSource, string sToWhere, bool isTest = false) { string sPgSN = DateTime.Now.ToString("yyyyMMddHHmmssfff"); if (sKind == "0") { sKind = "*.*"; } else { sKind = sKind.ToUpper() + "*.*"; } foreach (string sourceFile in Directory.GetFileSystemEntries(sSource, sKind)) { var extension = Path.GetExtension(sourceFile); //ExXml為生成Xml的目錄,判斷來源非Xml目錄 再進行Test以及目錄判斷 if (isTest) { if (sSource.IndexOf("ExXml") == -1) { if (sourceFile.ToUpper().IndexOf("TEST") >= 0 || string.IsNullOrEmpty(extension)) { if (sourceFile.ToUpper().IndexOf("TESTTEST") == -1) { continue; } } } } else { if (sSource.IndexOf("ExXml") == -1) { if (sourceFile.ToUpper().IndexOf("TEST") >= 0 || string.IsNullOrEmpty(extension)) { continue; } } } string processName = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; string dirName = Path.GetDirectoryName(sToWhere).Replace(":", "_").Replace(@"\", "_"); string fileFullName = Path.GetFileName(sourceFile); string errorFileIdentify = DateTime.Now.ToString("yyyyMMddHHmm") + "_" + new Random().Next(5000, 20000).ToString() + "_" + dirName + "_hasfile_" + fileFullName; string errorDir = @"D:\eInvoiceFile\ImErrorTXT\"; string errorFileName = string.Concat(errorDir, errorFileIdentify); bool moveHasFile = false; string fileNewStage = sourceFile.Replace(sSource, sToWhere); using (NSysDB.NTSQL.SQL1 query = new NSysDB.NTSQL.SQL1()) { try { if (File.Exists(fileNewStage)) { File.Move(sourceFile, errorFileName); moveHasFile = true; throw new Exception(sToWhere + "=>檔案已存在:" + fileFullName + ",錯誤檔案識別名稱:" + errorFileIdentify); } File.Move(sourceFile, fileNewStage); query.GoLogsAll(sPgSN, processName, sourceFile, "", "", 99); } catch (Exception ex) { if (!moveHasFile) { File.Move(sourceFile, errorFileName); } query.GoLogsAll(sPgSN, processName, sourceFile, ex.ToString(), "", 15); } } } }