/// -------------------------------------------------------------------------- /// <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> /// <returns> /// 照合済み件数</returns> /// ----------------------------------------------------------------- public int haishaDataUpdateUn() { // データセット DSLGDataSet dts = new DSLGDataSet(); DSLGDataSetTableAdapters.未照合伝票TableAdapter adp = new DSLGDataSetTableAdapters.未照合伝票TableAdapter(); DSLGDataSetTableAdapters.配車TableAdapter hAdp = new DSLGDataSetTableAdapters.配車TableAdapter(); adp.Fill(dts.未照合伝票); hAdp.Fill(dts.配車); // 照合件数 int dNum = 0; // 照合済みデータを抽出 foreach (var t in dts.未照合伝票.Where(a => a.照合ステータス == global.STATUS_VERIFI)) { // 配車データの照合結果を更新する if (dts.配車.Any(a => a.伝票番号 == t.伝票番号)) { DSLGDataSet.配車Row r = dts.配車.Single(a => a.伝票番号 == t.伝票番号 && a.日付 == t.日付); r.画像名 = t.画像名; r.照合ステータス = t.照合ステータス; r.更新年月日 = DateTime.Now; dNum++; // 未照合伝票データを削除 t.Delete(); } } // データベースを更新 hAdp.Update(dts.配車); adp.Update(dts.未照合伝票); // 後片付け adp.Dispose(); hAdp.Dispose(); // 照合件数を返す return(dNum); }
///------------------------------------------------------------------- /// <summary> /// 配車データ(CSV)を配車テーブルにインポートする </summary> ///------------------------------------------------------------------- public bool importHaishaCsv() { // 配車テーブル読み込み DSLGDataSet dts = new DSLGDataSet(); DSLGDataSetTableAdapters.配車TableAdapter adpHt = new DSLGDataSetTableAdapters.配車TableAdapter(); adpHt.Fill(dts.配車); // 配車データパス string cFile = global.cnfHaishaPath; // 日付 DateTime dt = DateTime.Today; if (System.IO.File.Exists(cFile)) { foreach (var t in System.IO.File.ReadAllLines(cFile, Encoding.Default)) { // カンマごとに分割し配列にセット string[] hCsv = t.Split(','); // ダブルコーテーションを除去 hCsv[0] = hCsv[0].Replace(@"""", string.Empty); // 日付 hCsv[1] = hCsv[1].Replace(@"""", string.Empty); // メーカー名 hCsv[2] = hCsv[2].Replace(@"""", string.Empty); // 伝票番号 string cDt = string.Empty; // CSVデータの内容をチェック if (!csvCheck(hCsv, out cDt)) { continue; // エラーのとき読み飛ばし } // 配車データに追加登録 if (DateTime.TryParse(cDt, out dt)) { if (!dts.配車.Any(a => a.日付 == dt && a.メーカー名 == hCsv[1] && a.伝票番号 == Utility.StrtoInt(hCsv[2]))) { // 配車テーブルに追加登録 DSLGDataSet.配車Row hr = dts.配車.New配車Row(); hr.日付 = dt; hr.メーカー名 = hCsv[1]; hr.伝票番号 = Utility.StrtoInt(hCsv[2]); hr.照合ステータス = global.flgOff; hr.画像名 = ""; hr.更新年月日 = DateTime.Now; dts.配車.Add配車Row(hr); } } } // データベース更新 adpHt.Update(dts.配車); return(true); } else { // 配車CSVが存在しないとき string msg = "配車データ:" + cFile + "が存在しません。" + Environment.NewLine + Environment.NewLine + "データを選択後、再実行してください。"; MessageBox.Show(msg, "配車データ未登録", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(false); } }