/// ------------------------------------------------------------ /// <summary> /// 手動消込 </summary> /// <param name="iX"> /// レコードインデックス</param> /// ------------------------------------------------------------ private void manualKeshikomi(int iX, int mDen, string mDate, string mMaker) { // データセット DSLGDataSetTableAdapters.未照合伝票TableAdapter adp = new DSLGDataSetTableAdapters.未照合伝票TableAdapter(); adp.Fill(dts.未照合伝票); DSLGDataSet.修正確認データRow r = (DSLGDataSet.修正確認データRow)dts.修正確認データ.Rows[iX]; // 画像を未照合OKフォルダへ移動する // 画像名を変更します string newImgNm = global.cnfUnmOkImgPath + mDate.Replace("/", "") + mMaker + "_" + r.伝票番号.ToString() + ".tif"; System.IO.File.Move(r.画像名, newImgNm); // 伝票番号テーブルの照合ステータス更新 DSLGDataSet.未照合伝票Row d = dts.未照合伝票.Single(a => a.ID == r.ID); d.伝票番号 = mDen; d.日付 = DateTime.Parse(mDate); d.メーカー名 = mMaker; d.照合ステータス = global.STATUS_UNVERIOK; d.更新年月日 = DateTime.Now; d.画像名 = newImgNm; // データ更新 adp.Update(dts.未照合伝票); }
/// -------------------------------------------------------------------------- /// <summary> /// 未照合OK取消 </summary> /// <param name="sID"> /// ID</param> /// <param name="sImgNm"> /// 画像名</param> /// -------------------------------------------------------------------------- private void unmOkCancel(int sID, string sImgNm) { mAdp.Fill(dts.未照合伝票); DSLGDataSet.未照合伝票Row r = dts.未照合伝票.Single(a => a.ID == sID); // 画像移動 string newImgNm = global.cnfUnmImgPath + System.IO.Path.GetFileName(sImgNm); System.IO.File.Move(sImgNm, newImgNm); // 未照合伝票書き換え int sDen = r.伝票番号; r.メーカー名 = string.Empty; r.画像名 = newImgNm; r.照合ステータス = global.STATUS_UNFIND; r.更新年月日 = DateTime.Now; // データベース更新 mAdp.Update(dts.未照合伝票); // 該当伝票を過去データから削除する clsMakeCsvfile c = new clsMakeCsvfile(this); c.pastDataCancel(sDen); }
/// ------------------------------------------------------------ /// <summary> /// 未照合伝票・過去データ突合</summary> /// /// 対象ステータス:未処理、NG /// ------------------------------------------------------------ public void findPastDataUn() { bool un = true; // データセット DSLGDataSet dts = new DSLGDataSet(); DSLGDataSetTableAdapters.未照合伝票TableAdapter adp = new DSLGDataSetTableAdapters.未照合伝票TableAdapter(); DSLGDataSetTableAdapters.過去データTableAdapter padp = new DSLGDataSetTableAdapters.過去データTableAdapter(); adp.Fill(dts.未照合伝票); padp.Fill(dts.過去データ); // 未照合伝票を順次読む if (dts.未照合伝票.Any(a => a.照合ステータス == global.STATUS_UNVERI || a.照合ステータス == global.STATUS_NG)) { foreach (var t in dts.未照合伝票.Where(a => a.照合ステータス == global.STATUS_UNVERI || a.照合ステータス == global.STATUS_NG).OrderBy(a => a.ID)) { // 有効伝票番号のとき if (t.伝票番号 > 0) { // 過去データを検索 if (dts.過去データ.Any(a => a.伝票番号 == t.伝票番号)) { // 照合ステータス更新 DSLGDataSet.未照合伝票Row d = dts.未照合伝票.Single(a => a.ID == t.ID); d.照合ステータス = global.STATUS_PASTOVERLAP; d.更新年月日 = DateTime.Now; un = false; } } } // 過去データとの重複があったとき if (!un) { // データ更新 adp.Update(dts.未照合伝票); } } // 後片付け adp.Dispose(); padp.Dispose(); }
/// ------------------------------------------------------------------------------- /// <summary> /// NG画像を未照合データを未照合伝票データに登録する </summary> /// <returns> /// 件数</returns> /// ------------------------------------------------------------------------------- public int ngToUnmData() { // データセット DSLGDataSet dts = new DSLGDataSet(); DSLGDataSetTableAdapters.未照合伝票TableAdapter pAdp = new DSLGDataSetTableAdapters.未照合伝票TableAdapter(); pAdp.Fill(dts.未照合伝票); // OCR認識日付取得 DateTime dt = getOcrDate(); string sDt = dt.Year.ToString() + dt.Month.ToString().PadLeft(2, '0') + dt.Day.ToString().PadLeft(2, '0'); // 未照合追加件数 int dNum = 0; // NG画像を抽出 foreach (var file in System.IO.Directory.GetFiles(Properties.Settings.Default.ngPath, "*.tif")) { // 未照合伝票テーブル登録済みの画像はネグる 2015/12/15 if (dts.未照合伝票.Any(a => a.画像名 == file)) { continue; } // 未照合伝票テーブルに追加する DSLGDataSet.未照合伝票Row r = dts.未照合伝票.New未照合伝票Row(); r.伝票番号 = 0; r.画像名 = file; r.日付 = DateTime.Parse(sDt.Substring(0, 4) + "/" + sDt.Substring(4, 2) + "/" + sDt.Substring(6, 2)); r.メーカー名 = ""; r.照合ステータス = global.STATUS_NG; r.更新年月日 = DateTime.Now; dts.未照合伝票.Add未照合伝票Row(r); dNum++; } // データベースを更新 pAdp.Update(dts.未照合伝票); // 後片付け pAdp.Dispose(); // 未照合件数を返す return(dNum); }
/// -------------------------------------------------------------------------- /// <summary> /// 照合済取消 </summary> /// <param name="sID"> /// ID</param> /// <param name="sDen"> /// 伝票番号</param> /// <param name="sDate"> /// 日付</param> /// <param name="sImgNm"> /// 画像名</param> /// -------------------------------------------------------------------------- private void veriCancel(int sID, int sDen, DateTime sDate, string sImgNm) { // 配車データ書き換え adp.Fill(dts.配車); DSLGDataSet.配車Row r = dts.配車.Single(a => a.ID == sID); // 値書き換え r.画像名 = string.Empty; r.照合ステータス = global.flgOff; r.更新年月日 = DateTime.Now; CSV.clsMakeCsvfile c = new clsMakeCsvfile(this); // 未照合画像連番取得 int unNum = c.getUnNumber(sDate) + 1; // 画像移動 //C:\DSLG_OCR\TIF\20150510ABC商事_397377.tif //C:\DSLG_OCR\UNMIMG\20150512UN0024_395767.tif string newImgNm = global.cnfUnmImgPath + sDate.ToShortDateString().Replace("/", "") + global.UNMARK + unNum.ToString().PadLeft(4, '0') + "_" + sDen.ToString() + ".tif"; System.IO.File.Move(sImgNm, newImgNm); // 未処理連番テーブル更新 c.setUnNumber(sDate, unNum); // 未照合伝票に新規登録 mAdp.Fill(dts.未照合伝票); DSLGDataSet.未照合伝票Row m = dts.未照合伝票.New未照合伝票Row(); m.伝票番号 = sDen; m.メーカー名 = string.Empty; m.日付 = sDate; m.画像名 = newImgNm; m.照合ステータス = global.STATUS_UNFIND; dts.未照合伝票.Add未照合伝票Row(m); // データベース更新 adp.Update(dts.配車); mAdp.Update(dts.未照合伝票); // 該当伝票を過去データから削除する c.pastDataCancel(sDen); }
/// --------------------------------------------------------------- /// <summary> /// 伝票番号データ削除 </summary> /// <param name="iX"> /// レコードインデックス</param> /// --------------------------------------------------------------- private void dataDelete(int iX) { // データセット DSLGDataSetTableAdapters.未照合伝票TableAdapter adp = new DSLGDataSetTableAdapters.未照合伝票TableAdapter(); adp.Fill(dts.未照合伝票); DSLGDataSet.修正確認データRow r = (DSLGDataSet.修正確認データRow)dts.修正確認データ.Rows[iX]; // 画像を削除します System.IO.File.Delete(r.画像名); // 伝票番号データを削除します DSLGDataSet.未照合伝票Row d = dts.未照合伝票.Single(a => a.ID == r.ID); d.Delete(); // データ更新 adp.Update(dts.未照合伝票); }
/// ------------------------------------------------------------------------------- /// <summary> /// 未照合データを未照合伝票データに登録し伝票番号データから削除する </summary> /// <returns> /// 件数</returns> /// ------------------------------------------------------------------------------- public int unmDataUpdate() { // データセット DSLGDataSet dts = new DSLGDataSet(); DSLGDataSetTableAdapters.伝票番号TableAdapter adp = new DSLGDataSetTableAdapters.伝票番号TableAdapter(); DSLGDataSetTableAdapters.未照合伝票TableAdapter pAdp = new DSLGDataSetTableAdapters.未照合伝票TableAdapter(); adp.Fill(dts.伝票番号); pAdp.Fill(dts.未照合伝票); // 未照合件数 int dNum = 0; // 未照合データを抽出 foreach (var t in dts.伝票番号.Where(a => a.照合ステータス != global.STATUS_VERIFI && a.照合ステータス != global.STATUS_UNVERI)) { // 未照合伝票テーブルに追加する DSLGDataSet.未照合伝票Row r = dts.未照合伝票.New未照合伝票Row(); r.伝票番号 = t.伝票番号; r.画像名 = t.画像名; r.日付 = t.日付; r.メーカー名 = t.メーカー名; r.照合ステータス = t.照合ステータス; r.更新年月日 = DateTime.Now; dts.未照合伝票.Add未照合伝票Row(r); dNum++; // 伝票番号データ削除 t.Delete(); } // データベースを更新 pAdp.Update(dts.未照合伝票); adp.Update(dts.伝票番号); // 後片付け adp.Dispose(); pAdp.Dispose(); // 未照合件数を返す return(dNum); }
/// ------------------------------------------------------------ /// <summary> /// 未照合伝票・配車データ照合 </summary> /// /// 対象ステータス:未処理、NG /// /// 2016/04/05 再照合条件に日付を追加 /// ------------------------------------------------------------ public void findHaishaDataUn() { // 新画像名 string newImgNm = string.Empty; // データセット DSLGDataSet dts = new DSLGDataSet(); DSLGDataSetTableAdapters.未照合伝票TableAdapter adp = new DSLGDataSetTableAdapters.未照合伝票TableAdapter(); DSLGDataSetTableAdapters.配車TableAdapter adpH = new DSLGDataSetTableAdapters.配車TableAdapter(); adp.Fill(dts.未照合伝票); adpH.Fill(dts.配車); // 未照合伝票を順次読む if (dts.未照合伝票.Any(a => a.照合ステータス == global.STATUS_UNVERI || a.照合ステータス == global.STATUS_NG)) { foreach (var t in dts.未照合伝票.Where(a => a.照合ステータス == global.STATUS_UNVERI || a.照合ステータス == global.STATUS_NG).OrderBy(a => a.ID)) { bool md = false; string hDate = string.Empty; string hMaker = string.Empty; // 有効な伝票番号のとき if (t.伝票番号 > 0) { // 配車データを検索 2016/04/05 再照合条件に日付を追加 foreach (var it in dts.配車.Where(a => a.伝票番号 == t.伝票番号 && a.日付 == t.日付)) { md = true; hDate = it.日付.ToShortDateString(); // 日付 hMaker = it.メーカー名; // メーカー名 } DSLGDataSet.未照合伝票Row d = dts.未照合伝票.Single(a => a.ID == t.ID); if (md) { // 配車データに該当あり // パスを含む新画像名 newImgNm = global.cnfTifPath + hDate.Replace("/", "") + hMaker + "_" + t.伝票番号.ToString() + ".tif"; // 再度読み込んだとき等、登録済みのときは削除する if (System.IO.File.Exists(newImgNm)) { System.IO.File.Delete(newImgNm); } // 画像を処理済フォルダへ移動する System.IO.File.Move(t.画像名, newImgNm); // 伝票番号テーブル情報更新 d.日付 = DateTime.Parse(hDate); d.メーカー名 = hMaker; d.照合ステータス = global.STATUS_VERIFI; d.画像名 = newImgNm; d.更新年月日 = DateTime.Now; } else { // 伝票番号テーブルの照合ステータス更新 d.照合ステータス = global.STATUS_UNFIND; d.更新年月日 = DateTime.Now; } } } // データ更新 adp.Update(dts.未照合伝票); } // 後片付け adp.Dispose(); }