//フォームロード時にボタンの制限 private void frm_siharai_Load(object sender, EventArgs e) { w_siharai_no = tss.GetSeq("07"); tb_siharai_no.Text = w_siharai_no.ToString("0000000000"); btn_siharai_syori.Enabled = false; btn_siharai_hensyu.Enabled = false; tb_siharai_date.Enabled = false; tb_siharai_no.Enabled = false; btn_tuika.Enabled = false; }
//SEQを持ってくるメソッド private void SEQ() { DataTable dt_work = new DataTable(); double w_seq; w_seq = tss.GetSeq(w_str); if (w_seq == 0) { MessageBox.Show("連番マスタに異常があります。処理を中止します。"); this.Close(); } tb_siire_no.Text = (w_seq).ToString("0000000000"); }
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 bool jisseki_insert() { bool w_bl; w_bl = true; decimal w_dou_seq; w_dou_seq = tss.GetSeq("12"); if (w_dou_seq == 0) { MessageBox.Show("実績レコードのseq取得でエラーが発生しました。処理を中止します。"); this.Close(); } tss.GetUser(); //開始時刻、終了時刻の編集 DateTime w_start_time; DateTime w_end_time; DateTime.TryParse(tb_seisanbi.Text + " " + tb_jisseki_start_time.Text, out w_start_time); DateTime.TryParse(tb_seisanbi.Text + " " + tb_jisseki_end_time.Text, out w_end_time); //開始時刻が8:30より前(00:00~08:29)の場合、翌日の時刻とする if (string.Compare(tb_jisseki_start_time.Text, "08:30") < 0) { w_start_time = w_start_time.AddDays(1); w_end_time = w_end_time.AddDays(1); } //開始時刻が終了時刻より小さい場合は、終了時刻を翌日とする if (w_start_time > w_end_time) { w_end_time = w_end_time.AddDays(1); } //入力区分の編集 string w_nyuryoku_kbn; if (tb_bcr.Text != "" && tb_bcr.Text != null) { //バーコード入力 w_nyuryoku_kbn = "0"; } else { //手入力 w_nyuryoku_kbn = "1"; } string w_sql; w_sql = "insert into tss_seisan_jisseki_f (" + "seisan_jisseki_no," + "seisan_date," + "busyo_cd," + "koutei_cd," + "line_cd," + "torihikisaki_cd," + "juchu_cd1," + "juchu_cd2," + "seihin_cd," + "seihin_name," + "seisan_su," + "start_time," + "end_time," + "seisan_time," + "tact_time," + "memo," + "nyuryoku_kbn," + "barcode," + "create_user_cd," + "create_datetime" + ") values (" + "'" + w_dou_seq.ToString("0000000000") + "'," + "'" + tb_seisanbi.Text + "'," + "'" + tb_busyo_cd.Text + "'," + "'" + tb_koutei_cd.Text + "'," + "'" + tb_line_cd.Text + "'," + "'" + tb_torihikisaki_cd.Text + "'," + "'" + tb_juchu_cd1.Text + "'," + "'" + tb_juchu_cd2.Text + "'," + "'" + tb_seihin_cd.Text + "'," + "'" + tb_seihin_name.Text + "'," + "'" + tb_jisseki_seisan_su.Text + "'," + "to_date('" + w_start_time.ToString() + "','YYYY/MM/DD HH24:MI:SS')," + "to_date('" + w_end_time.ToString() + "','YYYY/MM/DD HH24:MI:SS')," + "'" + tb_jisseki_seisan_time.Text + "'," + "'" + tb_jisseki_tact_time.Text + "'," + "'" + tb_memo.Text + "'," + "'" + w_nyuryoku_kbn + "'," + "'" + tb_bcr.Text + "'," + "'" + tss.user_cd + "'," + "sysdate" + ")"; if (tss.OracleInsert(w_sql) == true) { MessageBox.Show("登録しました。"); w_bl = true; } else { w_bl = false; } return(w_bl); }
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(); }
private void frm_uriage_Load(object sender, EventArgs e) { w_uriage_no = tss.GetSeq("05"); uriage_no_disp(); }
private void frm_nyukin_Load(object sender, EventArgs e) { w_nyukin_no = tss.GetSeq("09"); nyukin_no_disp(); }