/// ------------------------------------------------------------ /// <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> /// 過去データを削除する </summary> /// <param name="sDen"> /// 伝票番号</param> /// ---------------------------------------------------------- public void pastDataCancel(int sDen) { // データセット DSLGDataSet dts = new DSLGDataSet(); DSLGDataSetTableAdapters.過去データTableAdapter pAdp = new DSLGDataSetTableAdapters.過去データTableAdapter(); pAdp.Fill(dts.過去データ); // 照合済みデータを抽出 if (dts.過去データ.Any(a => a.伝票番号 == sDen)) { var t = dts.過去データ.Single(a => a.伝票番号 == sDen); t.Delete(); pAdp.Update(dts.過去データ); } // 後片付け pAdp.Dispose(); }
/// ---------------------------------------------------------- /// <summary> /// 指定伝票番号を過去データに登録する </summary> /// ---------------------------------------------------------- public void addPastData(int sDen) { // データセット DSLGDataSet dts = new DSLGDataSet(); DSLGDataSetTableAdapters.過去データTableAdapter pAdp = new DSLGDataSetTableAdapters.過去データTableAdapter(); pAdp.Fill(dts.過去データ); // 過去データに未登録を確認して伝票番号を追加する if (!dts.過去データ.Any(a => a.伝票番号 == sDen)) { DSLGDataSet.過去データRow r = dts.過去データ.New過去データRow(); r.伝票番号 = sDen; r.更新年月日 = DateTime.Now; dts.過去データ.Add過去データRow(r); pAdp.Update(dts.過去データ); } // 後片付け pAdp.Dispose(); }
/// ---------------------------------------------------------- /// <summary> /// 照合済み未照合伝票データを過去データに登録する </summary> /// <returns> /// 照合済み件数</returns> /// ---------------------------------------------------------- public int pastDataUpdateUn() { // データセット 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; // 照合済みデータを抽出 if (dts.未照合伝票.Any(a => a.照合ステータス == global.STATUS_VERIFI)) { foreach (var t in dts.未照合伝票.Where(a => a.照合ステータス == global.STATUS_VERIFI)) { // 過去データに未登録の伝票番号を追加する if (!dts.過去データ.Any(a => a.伝票番号 == t.伝票番号)) { DSLGDataSet.過去データRow r = dts.過去データ.New過去データRow(); r.伝票番号 = t.伝票番号; r.更新年月日 = DateTime.Now; dts.過去データ.Add過去データRow(r); dNum++; } } pAdp.Update(dts.過去データ); } // 後片付け adp.Dispose(); // 照合件数を返す return(dNum); }
/// ------------------------------------------------------------ /// <summary> /// 過去データ突合</summary> /// <returns> /// 件数</returns> /// ------------------------------------------------------------ public int findPastData() { // データセット 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; // OCR認識日付取得 DateTime dt = getOcrDate(); string sDt = dt.Year.ToString() + dt.Month.ToString().PadLeft(2, '0') + dt.Day.ToString().PadLeft(2, '0'); // 未照合画像連番取得 int unNum = getUnNumber(dt); int cNum = unNum; // 未照合伝票を順次読む if (dts.伝票番号.Any(a => a.照合ステータス == global.STATUS_UNVERI)) { foreach (var t in dts.伝票番号.Where(a => a.照合ステータス == global.STATUS_UNVERI).OrderBy(a => a.ID)) { // 過去データを検索 if (dts.過去データ.Any(a => a.伝票番号 == t.伝票番号)) { // 画像を未処理フォルダへ移動する cNum++; string newImgNm = global.cnfUnmImgPath + sDt + global.UNMARK + cNum.ToString().PadLeft(4, '0') + "_" + t.伝票番号.ToString() + ".tif"; System.IO.File.Move(Properties.Settings.Default.imgOutPath + t.画像名, newImgNm); // 伝票番号テーブルの照合ステータス更新 DSLGDataSet.伝票番号Row d = dts.伝票番号.Single(a => a.ID == t.ID); d.日付 = DateTime.Parse(dt.ToShortDateString()); d.照合ステータス = global.STATUS_PASTOVERLAP; d.更新年月日 = DateTime.Now; d.画像名 = newImgNm; dNum++; } } // 過去データとの重複があったとき if (unNum != cNum) { // データ更新 adp.Update(dts.伝票番号); // 未処理連番テーブル更新 setUnNumber(dt, cNum); } } // 後片付け adp.Dispose(); padp.Dispose(); // 件数を返す return(dNum); }