예제 #1
0
        private decimal get_nyukin(string in_cd)
        {
            decimal   out_decimal; //戻り値用
            DataTable w_dt = new DataTable();
            //画面の請求締日から、1か月前の締日の翌日を求める
            //20161202 取引先マスタの請求締日が99だったら同月の初日を、99で無ければ前月+1日を求めるように修正
            DataTable w_dt_torihikisaki = new DataTable();

            w_dt_torihikisaki = tss.OracleSelect("select * from tss_torihikisaki_m where torihikisaki_cd = '" + in_cd + "'");
            if (w_dt_torihikisaki.Rows.Count <= 0)
            {
                MessageBox.Show("取引先マスタの読込でエラーが発生しました。\n処理を中止します。");
                this.Close();
            }
            //前月締日の翌日を求める
            DateTime w_datetime;

            if (w_dt_torihikisaki.Rows[0]["seikyu_sime_date"].ToString() == "99")
            {
                //請求締日 = 99
                tss.try_string_to_date(tb_seikyu_simebi.Text.ToString());
                w_datetime = tss.FirstMonth(tss.out_datetime);
            }
            else
            {
                //請求締日 != 99
                tss.try_string_to_date(tb_seikyu_simebi.Text.ToString());
                w_datetime = tss.out_datetime.AddMonths(-1).AddDays(+1);
            }
            //20161202下記3行コメント
            //DateTime w_datetime;
            //tss.try_string_to_date(tb_seikyu_simebi.Text.ToString());
            //w_datetime = tss.out_datetime.AddMonths(-1).AddDays(+1);

            w_dt = tss.OracleSelect("select sum(nyukingaku) from tss_nyukin_m where torihikisaki_cd = '" + in_cd + "' and TO_CHAR(nyukin_date,'YYYY/MM/DD') <= '" + tb_seikyu_simebi.Text + "' and TO_CHAR(nyukin_date,'YYYY/MM/DD') >= '" + w_datetime.ToShortDateString() + "'");
            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;
                }
            }
            return(out_decimal);
        }