Exemple #1
0
        private decimal get_kurikosi(string in_cd)
        {
            decimal   out_decimal; //戻り値用
            DataTable w_dt = new DataTable();
            //画面の仕入締日から1か月前の締日を求め、1カ月前の締めレコードがあったらその残高を繰越額に、なかったら画面の請求日以前の未入金(未完了)分を繰越額にする
            DateTime  w_datetime;
            DataTable w_dt_simebi = new DataTable();

            tss.try_string_to_date(tb_siire_simebi.Text.ToString());
            w_datetime  = tss.out_datetime.AddMonths(-1);   //1か月前
            w_dt_simebi = tss.OracleSelect("select * from tss_torihikisaki_m where torihikisaki_cd = '" + in_cd + "'");
            if (w_dt_simebi.Rows[0]["siharai_sime_date"].ToString() == "99")
            {
                w_datetime = new DateTime(w_datetime.Year, w_datetime.Month, DateTime.DaysInMonth(w_datetime.Year, w_datetime.Month));   //末日を求める
            }

            w_dt = tss.OracleSelect("select * from tss_kaikake_m where torihikisaki_cd = '" + in_cd + "' and siire_simebi = '" + w_datetime.ToShortDateString() + "'");
            if (w_dt.Rows.Count == 0)
            {
                //1カ月前のレコードが無かった場合
                //画面の締日以前のレコードの入金未完了の金額を求めて繰越額にする
                w_dt = tss.OracleSelect("select sum(siire_kingaku) + sum(syouhizeigaku) - sum(siharaigaku) from tss_kaikake_m where torihikisaki_cd = '" + in_cd + "' and siire_simebi < '" + tb_siire_simebi.Text + "' and siharai_kanryou_flg <> '1'");
                if (w_dt.Rows.Count == 0)
                {
                    out_decimal = 0;
                }
                else
                {
                    out_decimal = tss.try_string_to_decimal(w_dt.Rows[0][0].ToString());
                    //sqlのsum分の場合、必ず1レコードできてしまい、該当データなかった場合の値がnullの為double型に変換できないので、その為の処理
                    if (out_decimal == -999999999)
                    {
                        out_decimal = 0;
                    }
                }
            }
            else
            {
                //1か月前のレコードがあった場合
                out_decimal = tss.try_string_to_decimal(w_dt.Rows[0]["kaikake_zandaka"].ToString());
            }
            return(out_decimal);
        }
 private void dgv_idou_CellValidated(object sender, DataGridViewCellEventArgs e)
 {
     if (e.ColumnIndex == 10)
     {
         if (dgv_idou.Rows[e.RowIndex].Cells[10].Value != null && dgv_idou.Rows[e.RowIndex].Cells[10].Value.ToString() != "")
         {
             dgv_idou.Rows[e.RowIndex].Cells[10].Value = tss.try_string_to_decimal(dgv_idou.Rows[e.RowIndex].Cells[10].Value.ToString()).ToString("#,0.00");
         }
     }
 }
        private void rpt_seikyu_ReportStart(object sender, EventArgs e)
        {
            //w_dt_urikakeに印刷する売掛レコードが入ってくる


            //会社情報をヘッダーに割り当て
            set_kaisya();
            //ヘッダー情報を割り当て
            if (w_dr == null)
            {
                tb_torihikisaki_cd.Text = "";
                tb_hiduke.Text          = "";
                tb_kurikosi.Text        = "";
                tb_uriage.Text          = "";
                tb_syouhizei.Text       = "";
                tb_nyukin.Text          = "";
                tb_zandaka.Text         = "";
                tb_seikyu.Text          = "";
                tb_mm.Text = "";
                tb_torihikisaki_name.Text = "";
                tb_urikake_no.Text        = "";
            }
            else
            {
                tb_torihikisaki_cd.Text = w_dr["torihikisaki_cd"].ToString();
                tb_hiduke.Text          = w_dr["uriage_simebi"].ToString();
                tb_kurikosi.Text        = tss.try_string_to_decimal(w_dr["kurikosigaku"].ToString()).ToString("#,##0");
                tb_uriage.Text          = tss.try_string_to_decimal(w_dr["uriage_kingaku"].ToString()).ToString("#,##0");
                tb_syouhizei.Text       = tss.try_string_to_decimal(w_dr["syouhizeigaku"].ToString()).ToString("#,##0");
                tb_nyukin.Text          = tss.try_string_to_decimal(w_dr["nyukingaku2"].ToString()).ToString("#,##0");
                tb_zandaka.Text         = tss.try_string_to_decimal(w_dr["urikake_zandaka"].ToString()).ToString("#,##0");
                tb_seikyu.Text          = (tss.try_string_to_decimal(w_dr["uriage_kingaku"].ToString()) + tss.try_string_to_decimal(w_dr["syouhizeigaku"].ToString())).ToString("#,##0");
                tb_mm.Text = tss.try_string_to_decimal(w_dr["uriage_simebi"].ToString().Substring(5, 2)).ToString("##");
                tb_torihikisaki_name.Text = tss.get_torihikisaki_name(w_dr["torihikisaki_cd"].ToString()) + "  様";
                tb_urikake_no.Text        = w_dr["urikake_no"].ToString();
                //フッター情報(消費税)を割り当て
                //w_dt_syouhizei = tss.OracleSelect("select * from tss_torihikisaki_m where torihikisaki_cd = '" + w_dr["torihikisaki_cd"].ToString() + "'");
                //if (w_dt_syouhizei.Rows[0]["syouhizei_sansyutu_kbn"].ToString() == "0")
                //{
                //    //請求合計
                //    tb_footer_name.Text = "消費税";
                //    tb_footer_syouhizei.Text = tss.try_string_to_double(w_dr["syouhizeigaku"].ToString()).ToString("#,##0");
                //}
                //if (w_dt_syouhizei.Rows[0]["syouhizei_sansyutu_kbn"].ToString() == "1")
                //{
                //    //明細毎
                //    tb_footer_name.Text = "";
                //    tb_footer_syouhizei.Text = "";
                //}
                //if (w_dt_syouhizei.Rows[0]["syouhizei_sansyutu_kbn"].ToString() == "2")
                //{
                //    //伝票毎
                //    tb_footer_name.Text = "消費税は伝票毎に算出させていただいている為、合計金額のみ記載させていただきます。";
                //    tb_footer_syouhizei.Text = "";
                //}
            }
        }
Exemple #4
0
        private void touroku()
        {
            bool    w_bl;
            decimal w_suryo;
            //在庫履歴書込み用の番号取得
            decimal w_rireki_no;
            int     w_sign;
            string  w_bikou;
            string  w_nyusyukko;

            if (rb_nyuuko.Checked == true)
            {
                w_rireki_no = tss.GetSeq("01");
                w_sign      = -1;
                w_nyusyukko = "入庫";
            }
            else
            {
                w_rireki_no = tss.GetSeq("02");
                w_sign      = 1;
                w_nyusyukko = "出庫";
            }
            int w_rireki_gyou;  //在庫履歴書込み用の行番号

            for (int i = 0; i < dgv_m.Rows.Count; i++)
            {
                w_rireki_gyou = i + 1;
                w_suryo       = tss.try_string_to_decimal(dgv_m.Rows[i].Cells[7].Value.ToString()) * w_sign;
                w_bikou       = "製品構成を使用した一括" + w_nyusyukko + " 製品CD:" + tb_seihin_cd.Text.ToString() + " 製品構成NO:" + tb_seihin_kousei_no.Text.ToString() + " 処理数:" + tb_suuryo.Text.ToString() + " 使用数:" + dgv_m.Rows[i].Cells[2].Value.ToString();
                w_bl          = tss.zaiko_proc(dgv_m.Rows[i].Cells[0].Value.ToString(), "01", "999999", "9999999999999999", "9999999999999999", w_suryo, w_rireki_no, w_rireki_gyou, w_bikou, "03", "999999", "9999999999999999", "9999999999999999");
                if (w_bl == false)
                {
                    MessageBox.Show("在庫の更新中にエラーが発生しました。データの整合性が崩れた可能性があります。確認してください。");
                }
            }
            MessageBox.Show("登録しました。");
            gamen_clear();
            tb_seihin_cd.Focus();
        }
        //取引先コードから、取引先マスタのデータを呼出してテキストボックスに入れる。
        private void torihikisaki_disp(string in_torihikisaki_cd)
        {
            DataTable dt_work = new DataTable();

            dt_work = tss.OracleSelect("select * from TSS_TORIHIKISAKI_M where torihikisaki_cd = '" + tb_torihikisaki_cd.Text + "'");
            if (dt_work.Rows.Count != 0)
            {
                tb_torihikisaki_name.Text           = dt_work.Rows[0]["torihikisaki_name"].ToString();
                tb_torihikisaki_seisiki_name.Text   = dt_work.Rows[0]["torihikisaki_seisiki_name"].ToString();
                tb_torihikisaki_ryakusiki_moji.Text = dt_work.Rows[0]["torihikisaki_ryakusiki_moji"].ToString();
                tb_yubin_no.Text               = dt_work.Rows[0]["yubin_no"].ToString();
                tb_jusyo1.Text                 = dt_work.Rows[0]["jusyo1"].ToString();
                tb_jusyo2.Text                 = dt_work.Rows[0]["jusyo2"].ToString();
                tb_tel_no.Text                 = dt_work.Rows[0]["tel_no"].ToString();
                tb_fax_no.Text                 = dt_work.Rows[0]["fax_no"].ToString();
                tb_daihyousya_name.Text        = dt_work.Rows[0]["daihyousya_name"].ToString();
                tb_url.Text                    = dt_work.Rows[0]["url"].ToString();
                tb_eigyou_start_time.Text      = dt_work.Rows[0]["eigyou_start_time"].ToString();
                tb_eigyou_end_time.Text        = dt_work.Rows[0]["eigyou_end_time"].ToString();
                tb_seikyu_sime_date.Text       = dt_work.Rows[0]["seikyu_sime_date"].ToString();
                tb_kaisyu_tuki.Text            = dt_work.Rows[0]["kaisyu_tuki"].ToString();
                tb_kaisyu_hi.Text              = dt_work.Rows[0]["kaisyu_hi"].ToString();
                tb_siharai_sime_date.Text      = dt_work.Rows[0]["siharai_sime_date"].ToString();
                tb_siharai_tuki.Text           = dt_work.Rows[0]["siharai_tuki"].ToString();
                tb_siharai_hi.Text             = dt_work.Rows[0]["siharai_hi"].ToString();
                tb_kessan_start_mmdd.Text      = dt_work.Rows[0]["kessan_start_mmdd"].ToString();
                tb_kessan_end_mmdd.Text        = dt_work.Rows[0]["kessan_end_mmdd"].ToString();
                tb_syouhizei_sansyutu_kbn.Text = dt_work.Rows[0]["syouhizei_sansyutu_kbn"].ToString();
                tb_hasu_kbn.Text               = dt_work.Rows[0]["hasu_kbn"].ToString();
                tb_hasu_syori_tani.Text        = dt_work.Rows[0]["hasu_syori_tani"].ToString();
                tb_jisyaden_kbn.Text           = dt_work.Rows[0]["jisyaden_kbn"].ToString();
                tb_misyori_nyukingaku.Text     = tss.try_string_to_decimal(dt_work.Rows[0]["misyori_nyukingaku"].ToString()).ToString("#,##0");

                tb_create_user_cd.Text  = dt_work.Rows[0]["create_user_cd"].ToString();
                tb_create_datetime.Text = dt_work.Rows[0]["create_datetime"].ToString();
                tb_update_user_cd.Text  = dt_work.Rows[0]["update_user_cd"].ToString();
                tb_update_datetime.Text = dt_work.Rows[0]["update_datetime"].ToString();
            }

            //マスターに既存レコードがなければnullをテキストボックスに入れる。
            else
            {
                //tb_torihikisaki_cd.Text = null;
                tb_torihikisaki_name.Text           = null;
                tb_torihikisaki_seisiki_name.Text   = null;
                tb_torihikisaki_ryakusiki_moji.Text = null;
                tb_yubin_no.Text               = null;
                tb_jusyo1.Text                 = null;
                tb_jusyo2.Text                 = null;
                tb_tel_no.Text                 = null;
                tb_fax_no.Text                 = null;
                tb_daihyousya_name.Text        = null;
                tb_url.Text                    = null;
                tb_eigyou_start_time.Text      = null;
                tb_eigyou_end_time.Text        = null;
                tb_seikyu_sime_date.Text       = null;
                tb_kaisyu_tuki.Text            = null;
                tb_kaisyu_hi.Text              = null;
                tb_siharai_sime_date.Text      = null;
                tb_siharai_tuki.Text           = null;
                tb_siharai_hi.Text             = null;
                tb_kessan_start_mmdd.Text      = null;
                tb_kessan_end_mmdd.Text        = null;
                tb_syouhizei_sansyutu_kbn.Text = null;
                tb_hasu_kbn.Text               = null;
                tb_hasu_syori_tani.Text        = null;
                tb_jisyaden_kbn.Text           = null;
                tb_misyori_nyukingaku.Text     = null;

                tb_create_user_cd.Text  = null;
                tb_create_datetime.Text = null;
                tb_update_user_cd.Text  = null;
                tb_update_datetime.Text = null;
            }
        }
Exemple #6
0
        private void zaiko_kousin()
        {
            string w_seq             = tss.GetSeq("01").ToString("0000000000");
            int    w_gyou            = 0; //部品入出庫マスタのseq用
            string w_kbn             = "";
            string w_torihikisaki_cd = "";
            string w_juchu_cd1       = "";
            string w_juchu_cd2       = "";

            for (int i = 0; i < dgv_m.Rows.Count; i++)
            {
                w_gyou++;
                w_kbn             = "";
                w_torihikisaki_cd = "";
                w_juchu_cd1       = "";
                w_juchu_cd2       = "";
                //部品在庫マスタの更新
                if (dgv_m.Rows[i].Cells[5].Value.ToString().TrimEnd() == "" || dgv_m.Rows[i].Cells[5].Value.ToString() == "0000000")
                {
                    //フリー在庫
                    w_kbn             = "01";
                    w_torihikisaki_cd = "999999";
                    w_juchu_cd1       = "9999999999999999";
                    w_juchu_cd2       = "9999999999999999";
                    //レコード有無確認
                    DataTable w_dt = new DataTable();
                    w_dt = tss.OracleSelect("select * from tss_buhin_zaiko_m where buhin_cd = '" + dgv_m.Rows[i].Cells[14].Value.ToString().TrimEnd() + "' and zaiko_kbn = '01'");
                    if (w_dt.Rows.Count == 0)
                    {
                        MessageBox.Show("フリー在庫のレコードがありません。処理を中止します。(" + dgv_m.Rows[i].Cells[14].Value.ToString().TrimEnd() + ")");
                        return;
                    }
                    //フリー在庫に読み込んだ入庫数を加えて書き込む
                    decimal w_dou1 = tss.try_string_to_decimal(w_dt.Rows[0]["zaiko_su"].ToString());
                    decimal w_dou2 = tss.try_string_to_decimal(dgv_m.Rows[i].Cells[11].Value.ToString().TrimEnd());
                    decimal w_dou3 = w_dou1 + w_dou2;
                    tss.OracleUpdate("UPDATE TSS_BUHIN_ZAIKO_M SET ZAIKO_SU = '" + w_dou3.ToString() + "',UPDATE_DATETIME = SYSDATE,UPDATE_USER_CD = '" + tss.user_cd + "' WHERE buhin_cd = '" + dgv_m.Rows[i].Cells[14].Value.ToString().TrimEnd() + "' and zaiko_kbn = '01'");
                }
                else
                {
                    //ロット在庫
                    //※ロット在庫の受注番号はロット番号+"9999999999999999"
                    w_kbn             = "02";
                    w_torihikisaki_cd = tss.GetDainichi_cd();
                    w_juchu_cd1       = tss.try_string_to_decimal(dgv_m.Rows[i].Cells[5].Value.ToString().TrimEnd()).ToString("0");
                    w_juchu_cd2       = "9999999999999999";
                    //レコード有無確認
                    DataTable w_dt = new DataTable();
                    w_dt = tss.OracleSelect("select * from tss_buhin_zaiko_m where buhin_cd = '" + dgv_m.Rows[i].Cells[14].Value.ToString().TrimEnd() + "' and zaiko_kbn = '02' and torihikisaki_cd = '" + w_torihikisaki_cd + "' and juchu_cd1 = '" + w_juchu_cd1 + "' and juchu_cd2 = '" + w_juchu_cd2 + "'");
                    if (w_dt.Rows.Count == 0)
                    {
                        //新規
                        bool w_bl;
                        w_bl = tss.OracleInsert("insert into tss_buhin_zaiko_m (buhin_cd, zaiko_kbn,torihikisaki_cd, juchu_cd1, juchu_cd2, zaiko_su,create_user_cd,create_datetime) values ('"
                                                + dgv_m.Rows[i].Cells[14].Value.ToString().TrimEnd() + "','02','"
                                                + w_torihikisaki_cd + "','"
                                                + w_juchu_cd1 + "','"
                                                + w_juchu_cd2 + "','"
                                                + tss.try_string_to_decimal(dgv_m.Rows[i].Cells[11].Value.ToString().TrimEnd()).ToString() + "','"
                                                + tss.user_cd + "',SYSDATE)");
                        if (w_bl == false)
                        {
                            tss.ErrorLogWrite(tss.user_cd, "部品入出庫BCRのtss_buhin_zaiko_mへのInsert", "書き込みエラー");
                        }
                    }
                    else
                    {
                        //既存
                        decimal w_dou1 = tss.try_string_to_decimal(w_dt.Rows[0]["zaiko_su"].ToString());
                        decimal w_dou2 = tss.try_string_to_decimal(dgv_m.Rows[i].Cells[11].Value.ToString().TrimEnd());
                        decimal w_dou3 = w_dou1 + w_dou2;
                        tss.OracleUpdate("UPDATE TSS_BUHIN_ZAIKO_M SET ZAIKO_SU = '" + w_dou3.ToString() + "',UPDATE_DATETIME = SYSDATE,UPDATE_USER_CD = '" + tss.user_cd + "' WHERE buhin_cd = '" + dgv_m.Rows[i].Cells[14].Value.ToString().TrimEnd() + "' and zaiko_kbn = '02' and torihikisaki_cd = '" + w_torihikisaki_cd + "' and juchu_cd1 = '" + w_juchu_cd1 + "' and juchu_cd2 = '" + w_juchu_cd2 + "'");
                    }
                }
                //部品入出庫マスタの更新
                bool w_bl_rireki;
                w_bl_rireki = tss.OracleInsert("INSERT INTO tss_buhin_nyusyukko_m (buhin_syori_kbn,buhin_syori_no,seq,buhin_syori_date,buhin_cd,zaiko_kbn,torihikisaki_cd,juchu_cd1,juchu_cd2,suryou,denpyou_no,barcode,syori_kbn,bikou,create_user_cd,create_datetime) VALUES ('"
                                               + "01" + "','"
                                               + w_seq + "','"
                                               + w_gyou.ToString() + "',"
                                               + "to_date('" + tb_syori_date.Text.ToString() + "','YYYY/MM/DD HH24:MI:SS'),'"
                                               + dgv_m.Rows[i].Cells[14].Value.ToString().TrimEnd() + "','"
                                               + w_kbn + "','"
                                               + w_torihikisaki_cd + "','"
                                               + w_juchu_cd1 + "','"
                                               + w_juchu_cd2 + "','"
                                               + tss.try_string_to_decimal(dgv_m.Rows[i].Cells[11].Value.ToString().TrimEnd()).ToString() + "','"
                                               + dgv_m.Rows[i].Cells[3].Value.ToString().TrimEnd() + "','"
                                               + tss.StringMidByte(dgv_m.Rows[i].Cells[18].Value.ToString(), 0, 254) + "','"
                                               + "01" + "','"
                                               + "" + "','"
                                               + tss.user_cd + "',SYSDATE)");
                if (w_bl_rireki == false)
                {
                    tss.ErrorLogWrite(tss.user_cd, "部品入庫BCRのtss_buhin_nyusyukko_mへのInsert", "行:" + i.ToString() + " 移動区分:01 移動番号:" + w_seq + " seq:" + w_gyou.ToString() + "buhin_cd:" + dgv_m.Rows[i].Cells[14].Value.ToString().TrimEnd());
                }
            }
            MessageBox.Show("登録しました。(入出庫移動番号:" + w_seq + ")");
            dgv_m.Rows.Clear();
            tb_syori_date.Text = DateTime.Now.ToShortDateString();
            lbl_message.Text   = "処理日を入力してください。";
            tb_syori_date.Focus();
            lbl_message.ForeColor = Color.Black;
        }
        private void btn_syuukei_Click(object sender, EventArgs e)
        {
            if (tss.User_Kengen_Check(2, 5) == false)
            {
                MessageBox.Show("権限がありません");
                return;
            }

            tss.GetUser();
            //集計
            if (chk_seikyu_simebi() == false)
            {
                MessageBox.Show("請求締日に異常があります。");
                return;
            }
            if (chk_torihikisaki_cd_hani() == false)
            {
                MessageBox.Show("取引先コードの範囲指定が正しくありません。");
                return;
            }
            //売上マスタから、該当する締日のレコードを抽出し、取引先コードのリスト作成する
            DataTable w_dt_torihikisaki = new DataTable();

            w_dt_torihikisaki = tss.OracleSelect("select torihikisaki_cd from tss_uriage_m where TO_CHAR(uriage_simebi,'YYYY/MM/DD') = '" + tb_seikyu_simebi.Text + "' and torihikisaki_cd >= '" + tb_torihikisaki_cd1.Text.ToString() + "' and torihikisaki_cd <= '" + tb_torihikisaki_cd2.Text.ToString() + "' group by torihikisaki_cd");

            DataTable w_dt_torihikisaki2 = new DataTable();

            //対象締日に売り上げがなかった場合
            //画面の請求締日から1か月前の締日を求め、1カ月前の締めレコードがあったら対象にする
            DataTable w_dt = new DataTable();
            DateTime  w_datetime;
            DataTable w_dt_simebi = new DataTable();

            string date; //締日

            //入力された締日が、末日かどうかのチェック
            tss.try_string_to_date(tb_seikyu_simebi.Text.ToString());
            w_datetime = tss.out_datetime;
            DateTime w_datetime2  = new DateTime(w_datetime.Year, w_datetime.Month, DateTime.DaysInMonth(w_datetime.Year, w_datetime.Month));;  //末日を入れる変数

            if (w_datetime == w_datetime2)
            {
                //末尾なら99
                date = "99";
            }
            else
            {
                //末尾でないなら、入力された日付の日
                date = (tb_seikyu_simebi.Text.ToString()).Substring(8);
            }


            //当月の売り上げはないが、締日のdayを取出し、請求締日条件に一致する取引先で、売掛残高があるリストを抽出
            //取引先マスタの入金未完了の金額を求めて繰越額にする
            w_dt_torihikisaki2 = tss.OracleSelect("select torihikisaki_cd from tss_torihikisaki_m where torihikisaki_cd >= '" + tb_torihikisaki_cd1.Text.ToString() + "' and torihikisaki_cd <= '" + tb_torihikisaki_cd2.Text.ToString() + "' and misyori_nyukingaku != 0  and seikyu_sime_date = '" + date + "'");


            //tss.try_string_to_date(tb_seikyu_simebi.Text.ToString());
            //w_datetime = tss.out_datetime.AddMonths(-1);    //1か月前


            //w_dt_simebi = tss.OracleSelect("select * from tss_torihikisaki_m where torihikisaki_cd >= '" + tb_torihikisaki_cd1.Text.ToString() + "' and torihikisaki_cd <= '" + tb_torihikisaki_cd2.Text.ToString() + "'");

            //if (w_dt_simebi.Rows[0]["seikyu_sime_date"].ToString() == "99")
            //{
            //    w_datetime = new DateTime(w_datetime.Year, w_datetime.Month, DateTime.DaysInMonth(w_datetime.Year, w_datetime.Month));   //末日を求める
            //}


            //当月の売り上げはないが、1カ月前の締めレコードがあるリスト
            //w_dt_torihikisaki2 = tss.OracleSelect("select torihikisaki_cd from tss_urikake_m where torihikisaki_cd >= '" + tb_torihikisaki_cd1.Text.ToString() + "' and torihikisaki_cd <= '" + tb_torihikisaki_cd2.Text.ToString() + "' and uriage_simebi = '" + w_datetime.ToShortDateString() + "'");

            //売上があった取引先リストと結合
            w_dt_torihikisaki.Merge(w_dt_torihikisaki2);
             
            if (w_dt_torihikisaki.Rows.Count == 0)
            {
                MessageBox.Show("指定した条件に当てはまるデータがありません");
                return;
            }


            //取引先コード毎に集計を行い、売掛レコードを作成する
            DataTable w_dt_urikake = new DataTable();   //売掛マスタの既存レコード確認用
            string    w_urikake_no;                     //売掛マスタの既存レコードの請求番号退避用
            DataTable w_dt_uriage = new DataTable();    //顧客毎の売上マスタ用

            foreach (DataRow dr in w_dt_torihikisaki.Rows)
            {
                //初期値リセット
                w_kurikosi  = 0;
                w_uriage    = 0;
                w_syouhizei = 0;
                w_nyukin    = 0;
                w_zandaka   = 0;
                w_seikyu    = 0;

                //既に集計済みの場合は、その請求番号を退避させる(再利用する為)
                w_dt_urikake = tss.OracleSelect("select * from tss_urikake_m where torihikisaki_cd = '" + dr["torihikisaki_cd"].ToString() + "' and uriage_simebi = '" + tb_seikyu_simebi.Text + "'");
                if (w_dt_urikake.Rows.Count > 0)
                {
                    w_urikake_no = w_dt_urikake.Rows[0]["urikake_no"].ToString();
                }
                else
                {
                    w_urikake_no = "";
                }
                //繰越金額
                w_kurikosi = get_kurikosi(dr["torihikisaki_cd"].ToString());
                //売上金額と消費税額
                w_uriage = get_uriage(dr["torihikisaki_cd"].ToString());
                //入金額
                w_nyukin = get_nyukin(dr["torihikisaki_cd"].ToString());
                //残高
                w_zandaka = w_kurikosi + w_uriage + w_syouhizei - w_nyukin;
                //請求額
                w_seikyu = w_uriage + w_syouhizei;

                //レコード書き込み
                if (w_urikake_no != "")
                {
                    //既存のレコードを更新
                    //既存データの更新の場合、過去売上が訂正され売上額+消費税<>入金額になっている場合があるので、再度入金完了フラグを立て直す
                    decimal w_chk_nyukingaku;        //入金額
                    decimal w_chk_nyukingaku_sa;     //入金額-売上-消費税
                    string  w_nyukin_kanryou_flg;
                    w_chk_nyukingaku    = tss.try_string_to_decimal(w_dt_urikake.Rows[0]["nyukingaku"].ToString());
                    w_chk_nyukingaku_sa = w_chk_nyukingaku - w_uriage - w_syouhizei;
                    if (w_chk_nyukingaku_sa == 0)
                    {
                        //入金完了
                        w_nyukin_kanryou_flg = "1";
                    }
                    else
                    {
                        if (w_chk_nyukingaku_sa < 0)
                        {
                            //売上+消費税 > 入金額
                            w_nyukin_kanryou_flg = "0";
                        }
                        else
                        {
                            //売上+消費税 < 入金額
                            //入金額を売上+消費税と同額にし、入金済みにして、残った入金額は取引先マスタへスプール
                            w_nyukin_kanryou_flg = "1";
                            w_chk_nyukingaku     = w_uriage + w_syouhizei;
                            tss.OracleUpdate("update tss_torihikisaki_m set MISYORI_NYUKINGAKU = MISYORI_NYUKINGAKU + " + w_chk_nyukingaku.ToString() + " ,update_user_cd = '" + tss.user_cd + "',update_datetime = sysdate where torihikisaki_cd = '" + dr["torihikisaki_cd"].ToString() + "'");
                        }
                    }
                    tss.OracleUpdate("update tss_urikake_m set kurikosigaku = '" + w_kurikosi.ToString() + "',uriage_kingaku = '" + w_uriage.ToString() + "',syouhizeigaku = '" + w_syouhizei.ToString() + "',nyukingaku = '" + w_chk_nyukingaku.ToString() + "',nyukin_kanryou_flg = '" + w_nyukin_kanryou_flg + "',nyukingaku2 = '" + w_nyukin + "',urikake_zandaka = '" + w_zandaka.ToString() + "',update_user_cd = '" + tss.user_cd + "',update_datetime = sysdate where urikake_no = '" + w_urikake_no + "'");
                }
                else
                {
                    //新規
                    decimal w_no;
                    w_no         = tss.GetSeq("08");
                    w_urikake_no = w_no.ToString("0000000000");
                    tss.OracleInsert("insert into tss_urikake_m (torihikisaki_cd,uriage_simebi,kurikosigaku,uriage_kingaku,syouhizeigaku,nyukingaku,nyukin_kanryou_flg,nyukingaku2,urikake_zandaka,urikake_no,create_user_cd,create_datetime) values ('" + dr["torihikisaki_cd"].ToString() + "','" + tb_seikyu_simebi.Text + "','" + w_kurikosi.ToString() + "','" + w_uriage.ToString() + "','" + w_syouhizei.ToString() + "','0','0','" + w_nyukin.ToString() + "','" + w_zandaka.ToString() + "','" + w_urikake_no + "','" + tss.user_cd + "',sysdate)");
                }
                //売上マスタの請求番号(urikake_no)を更新
                tss.OracleUpdate("update tss_uriage_m set urikake_no = '" + w_urikake_no + "',update_user_cd = '" + tss.user_cd + "',update_datetime = sysdate where TO_CHAR(uriage_simebi,'YYYY/MM/DD') = '" + tb_seikyu_simebi.Text + "' and torihikisaki_cd = '" + dr["torihikisaki_cd"].ToString() + "'");

                //最後に取引先マスタにスプールされた未処理入金額の消し込みを行う
                //入金処理の他に、なぜここでもやるのか?
                //この締め処理で、売上額の増減、新規レコードなどが作成される可能性があるので、全ての処理後に未処理入金額を処理する。
                //そうしないと、未処理入金額を自動で処理するタイミングが他にない
                tss.urikake_kesikomi(dr["torihikisaki_cd"].ToString());



                DialogResult result = MessageBox.Show("取引先:" + dr["torihikisaki_cd"].ToString() + " 請求番号:" + w_urikake_no.ToString() + " の請求書を発行しますか?", "確認", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                    //請求書印刷
                    frm_seikyu_preview frm_skm = new frm_seikyu_preview();
                    frm_skm.in_urikake_no = w_urikake_no.ToString();
                    //frm_skm.in_torihikisaki_cd1 = tb_torihikisaki_cd1.Text;
                    //frm_skm.in_torihikisaki_cd2 = tb_torihikisaki_cd2.Text;
                    //frm_skm.in_simebi = tb_seikyu_simebi.Text;
                    frm_skm.ShowDialog(this);
                    frm_skm.Dispose();
                }
            }

            MessageBox.Show("請求締め処理が完了しました。");



            gamen_clear();
        }