private decimal get_uriage(string in_cd) { decimal out_decimal; //戻り値用 decimal w_zeiritu; //消費税率 string w_syouhizei_kbn; //消費税算出区分 decimal w_syouhizei_once; //消費税計算用一時的変数 //消費税率の読み込み tss.try_string_to_date(tb_seikyu_simebi.Text); w_zeiritu = tss.get_syouhizeiritu(tss.out_datetime); //取引先毎の消費税算出区分の判断 DataTable w_dt_torihikisaki = new DataTable(); w_dt_torihikisaki = tss.OracleSelect("select * from tss_torihikisaki_m where torihikisaki_cd = '" + in_cd + "'"); w_syouhizei_kbn = w_dt_torihikisaki.Rows[0]["syouhizei_sansyutu_kbn"].ToString(); //消費税算出区分毎の処理 out_decimal = 0; if (w_syouhizei_kbn == "0") { //消費税は請求書毎 //売上の算出 DataTable w_dt = new DataTable(); w_dt = tss.OracleSelect("select sum(uriage_kingaku) from tss_uriage_m where torihikisaki_cd = '" + in_cd + "' and TO_CHAR(uriage_simebi,'YYYY/MM/DD') = '" + tb_seikyu_simebi.Text + "'"); 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; } } //消費税の算出 w_syouhizei = out_decimal * w_zeiritu; w_syouhizei = tss.hasu_keisan(in_cd, w_syouhizei); } if (w_syouhizei_kbn == "1") { //消費税は明細毎 DataTable w_dt = new DataTable(); w_dt = tss.OracleSelect("select * from tss_uriage_m where torihikisaki_cd = '" + in_cd + "' and uriage_simebi = '" + tb_seikyu_simebi.Text + "'"); if (w_dt.Rows.Count == 0) { out_decimal = 0; w_syouhizei = 0; } else { //1明細ずつ、合計と消費税を足す out_decimal = 0; w_syouhizei = 0; foreach (DataRow dr in w_dt.Rows) { out_decimal = out_decimal + tss.try_string_to_decimal(dr["uriage_kingaku"].ToString()); //w_syouhizei_once = tss.try_string_to_double(dr["uriage_kingaku"].ToString()) * w_zeiritu; //w_syouhizei = w_syouhizei + tss.hasu_keisan(in_cd, w_syouhizei_once); w_syouhizei = w_syouhizei + tss.try_string_to_decimal(dr["syouhizeigaku"].ToString()); } } } if (w_syouhizei_kbn == "2") { //消費税は伝票毎(売上番号毎) DataTable w_dt = new DataTable(); w_dt = tss.OracleSelect("select sum(uriage_kingaku) from tss_uriage_m where torihikisaki_cd = '" + in_cd + "' and uriage_simebi = '" + tb_seikyu_simebi.Text + "' group by uriage_no"); if (w_dt.Rows.Count == 0) { out_decimal = 0; w_syouhizei = 0; } else { //1売上番号ずつ、合計と消費税を足す out_decimal = 0; w_syouhizei = 0; foreach (DataRow dr in w_dt.Rows) { out_decimal = out_decimal + tss.try_string_to_decimal(dr[0].ToString()); w_syouhizei_once = tss.try_string_to_decimal(dr[0].ToString()) * w_zeiritu; w_syouhizei = w_syouhizei + tss.hasu_keisan(in_cd, w_syouhizei_once); } } } return(out_decimal); }