Beispiel #1
0
        /// ------------------------------------------------------------
        /// <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.未照合伝票);
        }
Beispiel #2
0
        /// --------------------------------------------------------------------------
        /// <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);
        }
Beispiel #3
0
        /// ------------------------------------------------------------
        /// <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();
        }
Beispiel #4
0
        /// -------------------------------------------------------------------------------
        /// <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);
        }
Beispiel #5
0
        /// --------------------------------------------------------------------------
        /// <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);
        }
Beispiel #6
0
        /// ---------------------------------------------------------------
        /// <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.未照合伝票);
        }
Beispiel #7
0
        /// -------------------------------------------------------------------------------
        /// <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);
        }
Beispiel #8
0
        /// ------------------------------------------------------------
        /// <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();
        }