예제 #1
0
        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            //指定文字数になるまで読み込む(指定文字数以上になった場合はエラー)
            while (tss.StringByte(str_buff) < pub_length)
            {
                if (serialPort1.IsOpen == false)
                {
                    break;
                }
                //BCRからのデータ受信
                str_buff += serialPort1.ReadExisting(); //今現在の読み込み可能な文字列を読み取る
            }
            //終了ボタン等でシリアルポートをクローズされた場合の対処
            if (serialPort1.IsOpen == false)
            {
                return;
            }
            //読み込み文字数が指定文字数を超えている
            if (tss.StringByte(str_buff) > pub_length)
            {
                str_buff = "";
                return;
            }

            //読み込んだ文字列を項目毎に分解
            BeginInvoke(new bcr_syori_Delegate(bcr_syori), new object[] { str_buff });
            str_buff = "";
            return;
        }
예제 #2
0
        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            //256バイトになるまで読み込む(257以上になった場合はエラー)
            while (tss.StringByte(str_buff) < 256)
            {
                if (serialPort1.IsOpen == false)
                {
                    break;
                }
                //BCRからのデータ受信
                str_buff += serialPort1.ReadExisting(); //今現在の読み込み可能な文字列を読み取る
            }
            //終了ボタン等でシリアルポートをクローズされた場合の対処
            if (serialPort1.IsOpen == false)
            {
                return;
            }
            //読み込み文字数が256を超えている
            if (tss.StringByte(str_buff) > 256)
            {
                //メッセージ表示

                str_buff = "";
                return;
            }

            //読み込んだ文字列を分解しdgvに表示
            BeginInvoke(new dgv_add_Delegate(dgv_add), new object[] { str_buff });

            str_buff = "";

            return;
        }
예제 #3
0
        private bool chk_bank_name()
        {
            bool bl = true; //戻り値用

            if (tb_bank_name.Text == null || tb_bank_name.Text.Length == 0 || tss.StringByte(tb_bank_name.Text) > 128)
            {
                bl = false;
            }
            return(bl);
        }
예제 #4
0
        private bool chk_koutei_cd2()
        {
            bool bl = true;  //戻り値用

            if (tb_koutei_cd.Text == null || tb_koutei_cd.Text.Length == 0 || tss.StringByte(tb_koutei_cd.Text) > 4)
            {
                bl = false;
            }
            return(bl);
        }
        private bool chk_juchu_cd1()
        {
            //受注コード1は空白を許可しない
            bool bl = true; //戻り値用

            if (tb_juchu_cd1.Text.Length == 0 || tss.StringByte(tb_juchu_cd1.Text) > 16)
            {
                bl = false;
            }
            //受注コードのオール9はシステムで使用しているため使用不可
            if (tb_juchu_cd1.Text == "9999999999999999")
            {
                bl = false;
            }
            return(bl);
        }
        //伝票番号チェック用
        private bool chk_denpyou_no()
        {
            bool bl = true; //戻り値用

            if (tss.StringByte(tb_denpyou_no.Text) > 16)
            {
                bl = false;
            }
            return(bl);
        }
        private bool chk_torihikisaki_name()
        {
            bool bl = true; //戻り値用

            if (tb_torihikisaki_name.Text == null || tb_torihikisaki_name.Text.Length == 0 || tss.StringByte(tb_torihikisaki_name.Text) > 40)
            {
                bl = false;
            }
            return(bl);
        }
예제 #8
0
        private void btn_touroku_Click(object sender, EventArgs e)
        {
            DataTable dt_work = new DataTable();


            //登録前に全ての項目をチェック
            //仕入番号
            if (chk_siire_no() == false)
            {
                MessageBox.Show("仕入番号は10バイト以内で入力してください");
                tb_siire_no.Focus();
                return;
            }

            //仕入伝票番号
            if (chk_siire_denpyou_no() == false)
            {
                MessageBox.Show("仕入伝票番号は16バイト以内で入力してください");
                tb_siire_denpyou_no.Focus();
                return;
            }


            //取引先コードのチェック
            if (chk_torihikisaki_cd() == false)
            {
                MessageBox.Show("取引先コードは6文字で入力してください。");
                tb_torihikisaki_cd.Focus();
                return;
            }


            //データグリッドビューの中を1行ずつループしてチェック
            int dgvrc = dgv_siire.Rows.Count;

            if (dgvrc == 1)
            {
                MessageBox.Show("表の中に何も入力されていません");
                return;
            }

            tss.GetUser();  //ユーザー情報の取得

            //テキストボックスとデータグリッドビューの入力内容チェック
            for (int i = 0; i < dgvrc - 1; i++)
            {
                if (dgv_siire.Rows[i].Cells[0].Value == null || tss.StringByte(dgv_siire.Rows[i].Cells[0].Value.ToString()) > 16)
                {
                    MessageBox.Show("部品コードの値が異常です");
                    return;
                }

                if (dgv_siire.Rows[i].Cells[1].Value == null)
                {
                    MessageBox.Show("部品名を入力してください");
                    return;
                }

                if (dgv_siire.Rows[i].Cells[2].Value == null || tss.StringByte(dgv_siire.Rows[i].Cells[2].Value.ToString()) > 12)
                {
                    MessageBox.Show("仕入数量の値が異常です");
                    return;
                }

                if (dgv_siire.Rows[i].Cells[3].Value == null || tss.StringByte(dgv_siire.Rows[i].Cells[3].Value.ToString()) > 12)
                {
                    MessageBox.Show("仕入単価を入力してください");
                    return;
                }

                if (dgv_siire.Rows[i].Cells[4].Value == null)
                {
                    MessageBox.Show("仕入締日を入力してください");
                    return;
                }


                //支払計上日が空白の場合、""を代入  空欄だとnull扱いされ、SQエラー回避
                if (dgv_siire.Rows[i].Cells[6].Value == null)
                {
                    dgv_siire.Rows[i].Cells[6].Value = "";
                }

                //備考が空白の場合、""を代入  空欄だとnull扱いされ、SQエラー回避
                if (dgv_siire.Rows[i].Cells[7].Value == null)
                {
                    dgv_siire.Rows[i].Cells[7].Value = "";
                }
            }

            dt_work = tss.OracleSelect("select * from tss_siire_m where siire_no = '" + tb_siire_no.Text.ToString() + "'");
            int rc  = dt_work.Rows.Count;
            int rc2 = dgv_siire.Rows.Count;

            tss.GetUser();

            if (rc == 0)
            {
                for (int i = 0; i < rc2 - 1; i++)
                {
                    bool bl = tss.OracleInsert("insert into tss_siire_m (siire_no, seq,torihikisaki_cd, siire_date,buhin_cd,buhin_name,siire_su,siire_tanka,siire_kingaku,siire_denpyo_no,siire_simebi,bikou,create_user_cd,create_datetime) values ('"

                                               + tb_siire_no.Text.ToString() + "','"
                                               + (i + 1) + "','"
                                               + tb_torihikisaki_cd.Text.ToString() + "','"
                                               + dtp_siire_date.Value.ToShortDateString() + "','"
                                               + dgv_siire.Rows[i].Cells[0].Value.ToString() + "','"
                                               + dgv_siire.Rows[i].Cells[1].Value.ToString() + "','"
                                               + dgv_siire.Rows[i].Cells[2].Value.ToString() + "','"
                                               + dgv_siire.Rows[i].Cells[3].Value.ToString() + "','"
                                               + dgv_siire.Rows[i].Cells[4].Value.ToString() + "','"
                                               + tb_siire_denpyou_no.Text.ToString() + "','"
                                               + dgv_siire.Rows[i].Cells[5].Value.ToString() + "','"
                                               //+ "to_date('" + dgv_siire.Rows[i].Cells[5].Value.ToString() + "','YYYY/MM/DD HH24:MI:SS'),'"
                                               //+ "to_date('" + dgv_siire.Rows[i].Cells[6].Value.ToString() + "','YYYY/MM/DD HH24:MI:SS'),'"
                                               + dgv_siire.Rows[i].Cells[7].Value.ToString() + "','"
                                               + tss.user_cd + "',SYSDATE)");


                    if (bl != true)
                    {
                        tss.ErrorLogWrite(tss.user_cd, "仕入登録", "登録ボタン押下時のOracleInsert");
                        MessageBox.Show("仕入処理でエラーが発生しました。" + Environment.NewLine + "処理を中止します。");
                        this.Close();
                    }
                    else
                    {
                    }
                }

                tb_create_user_cd.Text  = tss.user_cd;
                tb_create_datetime.Text = DateTime.Now.ToString();
                MessageBox.Show("仕入登録しました。");

                w_siire_no = tss.GetSeq("06");
                dgv_siire.Rows.Clear();
                tb_torihikisaki_cd.Clear();
                tb_torihikisaki_name.Clear();
                dtp_siire_date.Value = DateTime.Today;
                tb_siire_denpyou_no.Clear();
                tb_create_user_cd.Clear();
                tb_create_datetime.Clear();
                tb_update_user_cd.Clear();
                tb_update_datetime.Clear();
                tb_siire_no.Text = w_siire_no.ToString("0000000000");

                return;
            }
            else
            {
                DialogResult result = MessageBox.Show("既存の仕入データを上書きしますか?",
                                                      "仕入データの上書き確認",
                                                      MessageBoxButtons.OKCancel,
                                                      MessageBoxIcon.Exclamation,
                                                      MessageBoxDefaultButton.Button2);

                if (result == DialogResult.OK)
                {
                    //仕入マスタから削除してインサート
                    tss.OracleDelete("delete from tss_siire_m WHERE siire_no = '" + tb_siire_no.Text.ToString() + "'");

                    for (int i = 0; i < rc2 - 1; i++)
                    {
                        bool bl = tss.OracleInsert("insert into tss_siire_m (siire_no, seq,torihikisaki_cd, siire_date,buhin_cd,buhin_name,siire_su,siire_tanka,siire_kingaku,siire_denpyo_no,siire_simebi,bikou,create_user_cd,create_datetime,update_user_cd,update_datetime) values ('"

                                                   + tb_siire_no.Text.ToString() + "','"
                                                   + (i + 1) + "','"
                                                   + tb_torihikisaki_cd.Text.ToString() + "','"
                                                   + dtp_siire_date.Value.ToShortDateString() + "','"
                                                   + dgv_siire.Rows[i].Cells[0].Value.ToString() + "','"
                                                   + dgv_siire.Rows[i].Cells[1].Value.ToString() + "','"
                                                   + dgv_siire.Rows[i].Cells[2].Value.ToString() + "','"
                                                   + dgv_siire.Rows[i].Cells[3].Value.ToString() + "','"
                                                   + dgv_siire.Rows[i].Cells[4].Value.ToString() + "','"
                                                   + tb_siire_denpyou_no.Text.ToString() + "','"
                                                   + dgv_siire.Rows[i].Cells[5].Value.ToString() + "','"
                                                   + dgv_siire.Rows[i].Cells[7].Value.ToString() + "','"
                                                   + tb_create_user_cd.Text.ToString() + "',"//←カンマがあると、日付をインサートする際にエラーになるので注意する
                                                   + "to_date('" + tb_create_datetime.Text.ToString() + "','YYYY/MM/DD HH24:MI:SS'),'"  
                                                   + tss.user_cd + "',SYSDATE)");


                        if (bl != true)
                        {
                            tss.ErrorLogWrite(tss.user_cd, "仕入登録", "登録ボタン押下時のOracleInsert");
                            MessageBox.Show("仕入処理でエラーが発生しました。" + Environment.NewLine + "処理を中止します。");
                            this.Close();
                        }
                        else
                        {
                        }
                    }
                    tb_update_user_cd.Text  = tss.user_cd.ToString();
                    tb_update_datetime.Text = DateTime.Now.ToString();
                    MessageBox.Show("仕入登録しました。");

                    w_siire_no = tss.GetSeq("06");
                    dgv_siire.Rows.Clear();
                    tb_torihikisaki_cd.Clear();
                    tb_torihikisaki_name.Clear();
                    dtp_siire_date.Value = DateTime.Today;
                    tb_siire_denpyou_no.Clear();
                    tb_create_user_cd.Clear();
                    tb_create_datetime.Clear();
                    tb_update_user_cd.Clear();
                    tb_update_datetime.Clear();
                    tb_siire_no.Text = w_siire_no.ToString("0000000000");

                    return;
                }
                //「いいえ」が選択された時
                else if (result == DialogResult.Cancel)
                {
                    return;
                }
            }
        }
예제 #9
0
        private void btn_touroku_Click(object sender, EventArgs e)
        {
            //入力項目のチェック

            if (chk_seihin_kousei_name() == false)
            {
                MessageBox.Show("製品構成名称が正しく入力されていません。");
                tb_seihin_kousei_name.Focus();
                return;
            }

            //データグリッドビューの中を1行ずつループしてチェック
            int dgvrc = dgv_seihin_kousei.Rows.Count;

            if (dgvrc == 1)
            {
                MessageBox.Show("表の中に何も入力されていません");
                return;
            }

            tss.GetUser();  //ユーザー情報の取得

            //テキストボックスとデータグリッドビューの入力内容チェック
            for (int i = 0; i < dgvrc - 1; i++)
            {
                if (dgv_seihin_kousei.Rows[i].Cells[0].Value == null || dgv_seihin_kousei.Rows[i].Cells[0].Value.ToString() == "" || int.Parse(dgv_seihin_kousei.Rows[i].Cells[0].Value.ToString()) <= 0 || tss.StringByte(dgv_seihin_kousei.Rows[i].Cells[0].Value.ToString()) > 1)
                {
                    MessageBox.Show("部品レベルの値が異常です。(1~9の範囲で入力)");
                    dgv_seihin_kousei.Focus();
                    dgv_seihin_kousei.CurrentCell = dgv_seihin_kousei[0, i];
                    return;
                }

                if (dgv_seihin_kousei.Rows[i].Cells[1].Value == null || dgv_seihin_kousei.Rows[i].Cells[1].Value.ToString() == "" || tss.StringByte(dgv_seihin_kousei.Rows[i].Cells[1].Value.ToString()) > 16)
                {
                    MessageBox.Show("部品コードの値が異常です。(1バイト以上、16バイト以内の文字で入力)");
                    dgv_seihin_kousei.Focus();
                    dgv_seihin_kousei.CurrentCell = dgv_seihin_kousei[1, i];
                    return;
                }

                if (dgv_seihin_kousei.Rows[i].Cells[2].Value == null || dgv_seihin_kousei.Rows[i].Cells[2].Value.ToString() == "" || tss.StringByte(dgv_seihin_kousei.Rows[i].Cells[2].Value.ToString()) > 40)
                {
                    MessageBox.Show("部品名の値が異常です。(1バイト以上、40バイト以内の文字で入力)");
                    dgv_seihin_kousei.Focus();
                    dgv_seihin_kousei.CurrentCell = dgv_seihin_kousei[2, i];
                    return;
                }


                if (dgv_seihin_kousei.Rows[i].Cells[3].Value == null || dgv_seihin_kousei.Rows[i].Cells[3].Value.ToString() == "" || double.Parse(dgv_seihin_kousei.Rows[i].Cells[3].Value.ToString()) > 9999999999.99 || double.Parse(dgv_seihin_kousei.Rows[i].Cells[3].Value.ToString()) < -9999999999.99 || tss.StringByte(dgv_seihin_kousei.Rows[i].Cells[3].Value.ToString()) > 16)
                {
                    MessageBox.Show("使用数量の値が異常です。(10桁以内。小数点以下2桁以内で入力)");
                    dgv_seihin_kousei.Focus();
                    dgv_seihin_kousei.CurrentCell = dgv_seihin_kousei[3, i];
                    return;
                }

                if (tss.StringByte(dgv_seihin_kousei.Rows[i].Cells[4].Value.ToString()) > 16)
                {
                    MessageBox.Show("互換部品コードの値が異常です。(1バイト以上、16バイト以内の文字で入力)");
                    dgv_seihin_kousei.Focus();
                    dgv_seihin_kousei.CurrentCell = dgv_seihin_kousei[4, i];
                    return;
                }

                //互換部品コードが入力されているのに、互換部品名がない場合
                if (dgv_seihin_kousei.Rows[i].Cells[4].Value.ToString() != "" && dgv_seihin_kousei.Rows[i].Cells[5].Value.ToString() == "")
                {
                    MessageBox.Show("互換部品名の値が異常です。(1バイト以上、40バイト以内の文字で入力)");
                    dgv_seihin_kousei.Focus();
                    dgv_seihin_kousei.CurrentCell = dgv_seihin_kousei[5, i];
                    return;
                }

                //互換部品コードが入力されていないのに、互換部品名がある場合
                if (dgv_seihin_kousei.Rows[i].Cells[4].Value.ToString() == "" && dgv_seihin_kousei.Rows[i].Cells[5].Value.ToString() != "")
                {
                    MessageBox.Show("互換部品コードの値が異常です。(1バイト以上、16バイト以内の文字で入力)");
                    dgv_seihin_kousei.Focus();
                    dgv_seihin_kousei.CurrentCell = dgv_seihin_kousei[4, i];
                    return;
                }
            }


            tss.GetUser();
            int       rc      = dgv_seihin_kousei.Rows.Count;
            DataTable dt_work = new DataTable();

            dt_work = tss.OracleSelect("select * from TSS_SEIHIN_KOUSEI_M WHERE seihin_cd = '" + tb_seihin_cd.Text.ToString() + "' and seihin_kousei_no = '" + tb_seihin_kousei_no.Text.ToString() + "'");


            //新規の製品構成を登録する
            if (dt_work.Rows.Count == 0)
            {
                // dt_work.Rows.Clear();

                for (int i = 0; i < rc - 1; i++)
                {
                    dt_work.Rows.Add();

                    dt_work.Rows[i][0] = tb_seihin_cd.Text.ToString();
                    dt_work.Rows[i][1] = tb_seihin_kousei_no.Text.ToString();
                    dt_work.Rows[i][2] = i + 1;                                               //SEQ
                    dt_work.Rows[i][3] = dgv_seihin_kousei.Rows[i].Cells[0].Value.ToString(); //部品レベル
                    dt_work.Rows[i][4] = dgv_seihin_kousei.Rows[i].Cells[1].Value.ToString(); //部品コード


                    if (dgv_seihin_kousei.Rows[i].Cells[0].Value.ToString() == "1")
                    {
                        dt_work.Rows[i][5] = 999; //親行番号
                        dt_work.Rows[i][6] = "";  //親部品コード
                    }

                    if (int.Parse(dgv_seihin_kousei.Rows[i].Cells[0].Value.ToString()) > 1)
                    {
                        for (int j = 1; j < rc - 1; j++)
                        {
                            int a = int.Parse(dgv_seihin_kousei.Rows[i].Cells[0].Value.ToString()) - int.Parse(dgv_seihin_kousei.Rows[i - j].Cells[0].Value.ToString());

                            if (a == 0)
                            {
                                dt_work.Rows[i][5] = dt_work.Rows[i - 1][5]; //親行番号
                                dt_work.Rows[i][6] = dt_work.Rows[i - 1][6]; //親部品コード
                                break;
                            }

                            if (a == 1)
                            {
                                dt_work.Rows[i][5] = dt_work.Rows[i - 1][2]; //親行番号
                                dt_work.Rows[i][6] = dt_work.Rows[i - 1][4]; //親部品コード
                                break;
                            }
                        }
                    }

                    dt_work.Rows[i][7] = dgv_seihin_kousei.Rows[i].Cells[3].Value.ToString(); //使用数
                    dt_work.Rows[i][8] = dgv_seihin_kousei.Rows[i].Cells[4].Value.ToString(); //互換部品コード
                    dt_work.Rows[i][9] = dgv_seihin_kousei.Rows[i].Cells[6].Value.ToString(); //備考

                    if (dt_work.Rows[i][10].ToString() == "")
                    {
                        dt_work.Rows[i][10] = tss.user_cd;//クリエイトユーザーコード
                    }

                    if (dt_work.Rows[i][11].ToString() == "")
                    {
                        dt_work.Rows[i][11] = DateTime.Now;//クリエイトデートタイム
                    }
                }


                tss.OracleDelete("delete from TSS_SEIHIN_KOUSEI_M WHERE seihin_cd = '" + tb_seihin_cd.Text.ToString() + "' and seihin_kousei_no = '" + tb_seihin_kousei_no.Text.ToString() + "'");



                for (int i = 0; i < rc - 1; i++)
                {
                    tss.OracleInsert("INSERT INTO tss_seihin_kousei_m (seihin_cd,seihin_kousei_no,seq,buhin_level,buhin_cd,oya_seq,oya_buhin_cd,siyou_su,gokan_buhin_cd,bikou,create_user_cd,create_datetime)"
                                     + " VALUES ('"
                                     + dt_work.Rows[i][0].ToString() + "','"
                                     + dt_work.Rows[i][1].ToString() + "','"
                                     + dt_work.Rows[i][2].ToString() + "','"
                                     + dt_work.Rows[i][3].ToString() + "','"
                                     + dt_work.Rows[i][4].ToString() + "','"
                                     + dt_work.Rows[i][5].ToString() + "','"
                                     + dt_work.Rows[i][6].ToString() + "','"
                                     + dt_work.Rows[i][7].ToString() + "','"
                                     + dt_work.Rows[i][8].ToString() + "','"
                                     + dt_work.Rows[i][9].ToString() + "','"
                                     + dt_work.Rows[i][10].ToString() + "',SYSDATE)");
                }

                tb_create_user_cd.Text  = dt_work.Rows[0][10].ToString();
                tb_create_datetime.Text = DateTime.Now.ToString();

                MessageBox.Show("製品構成マスタに登録しました");



                //製品構成名称マスタの更新

                DataTable dt_work4 = new DataTable();
                dt_work4 = tss.OracleSelect("select * from TSS_SEIHIN_KOUSEI_NAME_M WHERE seihin_cd = '" + tb_seihin_cd.Text.ToString() + "' and seihin_kousei_no = '" + tb_seihin_kousei_no.Text.ToString() + "'");

                if (dt_work4.Rows.Count == 0)
                {
                    tss.OracleInsert("INSERT INTO tss_seihin_kousei_name_m (seihin_cd,seihin_kousei_no,seihin_kousei_name,create_user_cd,create_datetime)"
                                     + " VALUES ('"
                                     + tb_seihin_cd.Text.ToString() + "','"
                                     + tb_seihin_kousei_no.Text.ToString() + "','"
                                     + tb_seihin_kousei_name.Text.ToString() + "','"
                                     + tss.user_cd + "',SYSDATE)");
                }

                else
                {
                    tss.OracleUpdate("UPDATE TSS_seihin_kousei_name_m SET seihin_cd = '"
                                     + tb_seihin_cd.Text.ToString() + "',seihin_kousei_name = '" + tb_seihin_kousei_name.Text.ToString()
                                     + "',UPDATE_USER_CD = '" + tss.user_cd + "',UPDATE_DATETIME = SYSDATE WHERE seihin_cd = '" + tb_seihin_cd.Text.ToString() + "'and seihin_kousei_no = '" + tb_seihin_kousei_no.Text.ToString() + "'");
                }

                MessageBox.Show("製品構成名称マスタに登録しました");

                seihin_kousei_name_disp(tb_seihin_cd.Text);
            }

            else
            {
                //既にある製品構成を更新する処理
                //dt_work.Rows.Clear();

                //dt_work2 = this.dgv_seihin_kousei.DataSource();
                DataTable dtTmp = (DataTable)this.dgv_seihin_kousei.DataSource;
                dtTmp.AcceptChanges();

                int rc2 = dtTmp.Rows.Count;

                dt_work.Rows.Clear();

                for (int i = 0; i < rc2; i++)
                {
                    dt_work.Rows.Add();

                    dt_work.Rows[i][0] = tb_seihin_cd.Text.ToString();
                    dt_work.Rows[i][1] = tb_seihin_kousei_no.Text.ToString();
                    dt_work.Rows[i][2] = i + 1;                       //SEQ
                    dt_work.Rows[i][3] = dtTmp.Rows[i][0].ToString(); //部品レベル
                    dt_work.Rows[i][4] = dtTmp.Rows[i][1].ToString(); //部品コード


                    if (dtTmp.Rows[i][0].ToString() == "1")
                    {
                        dt_work.Rows[i][5] = 999; //親行番号
                        dt_work.Rows[i][6] = "";  //親部品コード
                    }

                    if (int.Parse(dtTmp.Rows[i][0].ToString()) > 1)
                    {
                        for (int j = 1; j < rc2 - 1; j++)
                        {
                            int a = int.Parse(dtTmp.Rows[i][0].ToString()) - int.Parse(dtTmp.Rows[i - j][0].ToString());

                            if (a == 0)
                            {
                                dt_work.Rows[i][5] = dt_work.Rows[i - 1][5]; //親行番号
                                dt_work.Rows[i][6] = dt_work.Rows[i - 1][6]; //親部品コード
                                break;
                            }

                            if (a == 1)
                            {
                                dt_work.Rows[i][5] = dt_work.Rows[i - 1][2]; //親行番号
                                dt_work.Rows[i][6] = dt_work.Rows[i - 1][4]; //親部品コード
                                break;
                            }
                        }
                    }

                    dt_work.Rows[i][7] = dtTmp.Rows[i][3].ToString(); //使用数
                    dt_work.Rows[i][8] = dtTmp.Rows[i][4].ToString(); //互換部品コード
                    dt_work.Rows[i][9] = dtTmp.Rows[i][6].ToString(); //備考

                    if (dt_work.Rows[i][10].ToString() == "")
                    {
                        dt_work.Rows[i][10] = tb_create_user_cd.Text;//クリエイトユーザーコード
                    }

                    if (dt_work.Rows[i][11].ToString() == "")
                    {
                        dt_work.Rows[i][11] = tb_create_datetime.Text;//クリエイトデートタイム
                    }
                }


                tss.OracleDelete("delete from TSS_SEIHIN_KOUSEI_M WHERE seihin_cd = '" + tb_seihin_cd.Text.ToString() + "' and seihin_kousei_no = '" + tb_seihin_kousei_no.Text.ToString() + "'");



                for (int i = 0; i < rc - 1; i++)
                {
                    tss.OracleInsert("INSERT INTO tss_seihin_kousei_m (seihin_cd,seihin_kousei_no,seq,buhin_level,buhin_cd,oya_seq,oya_buhin_cd,siyou_su,gokan_buhin_cd,bikou,create_user_cd,create_datetime,update_user_cd,update_datetime)"
                                     + " VALUES ('"
                                     + dt_work.Rows[i][0].ToString() + "','"
                                     + dt_work.Rows[i][1].ToString() + "','"
                                     + dt_work.Rows[i][2].ToString() + "','"
                                     + dt_work.Rows[i][3].ToString() + "','"
                                     + dt_work.Rows[i][4].ToString() + "','"
                                     + dt_work.Rows[i][5].ToString() + "','"
                                     + dt_work.Rows[i][6].ToString() + "','"
                                     + dt_work.Rows[i][7].ToString() + "','"
                                     + dt_work.Rows[i][8].ToString() + "','"
                                     + dt_work.Rows[i][9].ToString() + "','"
                                     + dt_work.Rows[i][10].ToString() + "',"
                                     + "to_date('" + dt_work.Rows[i][11].ToString() + "','YYYY/MM/DD HH24:MI:SS'),'"
                                     + tss.user_cd + "',SYSDATE)");
                }

                MessageBox.Show("製品構成マスタに登録しました");

                //製品構成名称マスタの更新

                DataTable dt_work4 = new DataTable();
                dt_work4 = tss.OracleSelect("select * from TSS_SEIHIN_KOUSEI_NAME_M WHERE seihin_cd = '" + tb_seihin_cd.Text.ToString() + "' and seihin_kousei_no = '" + tb_seihin_kousei_no.Text.ToString() + "'");

                if (dt_work4.Rows.Count == 0)
                {
                    tss.OracleInsert("INSERT INTO tss_seihin_kousei_name_m (seihin_cd,seihin_kousei_no,seihin_kousei_name,create_user_cd,create_datetime)"
                                     + " VALUES ('"
                                     + tb_seihin_cd.Text.ToString() + "','"
                                     + tb_seihin_kousei_no.Text.ToString() + "','"
                                     + tb_seihin_kousei_name.Text.ToString() + "','"
                                     + tss.user_cd + "',SYSDATE)");
                }

                else
                {
                    tss.OracleUpdate("UPDATE TSS_seihin_kousei_name_m SET seihin_cd = '"
                                     + tb_seihin_cd.Text.ToString() + "',seihin_kousei_name = '" + tb_seihin_kousei_name.Text.ToString()
                                     + "',UPDATE_USER_CD = '" + tss.user_cd + "',UPDATE_DATETIME = SYSDATE WHERE seihin_cd = '" + tb_seihin_cd.Text.ToString() + "'and seihin_kousei_no = '" + tb_seihin_kousei_no.Text.ToString() + "'");
                }


                tb_update_user_cd.Text  = tss.user_cd.ToString();
                tb_update_datetime.Text = DateTime.Now.ToString();


                MessageBox.Show("製品構成名称マスタに登録しました");

                seihin_kousei_name_disp(tb_seihin_cd.Text);
            }
        }
예제 #10
0
        private void btn_touroku_Click(object sender, EventArgs e)
        {
            tss.GetUser();      //ユーザー情報の取得
            int int_insert = 0; //新規レコード数
            int int_update = 0; //更新レコード数

            //登録前にデータのチェック
            //※削除はできない仕様なので、削除レコード等の考慮はしない
            foreach (DataRow dr in dt_kubun_m.Rows)
            {
                //区分コード文字数チェック
                if (tss.StringByte(dr["KUBUN_CD"].ToString()) == 0 || tss.StringByte(dr["KUBUN_CD"].ToString()) > 2)
                {
                    dgv_kubun_m.Focus();
                    MessageBox.Show("区分コードの文字数に異常があります。 [" + dr["KUBUN_CD"].ToString() + "]" + Environment.NewLine + "区分コードは00から99までです。");
                    break;  //foreachを抜ける
                }
                //区分名文字数チェック
                if (tss.StringByte(dr["KUBUN_NAME"].ToString()) == 0 || tss.StringByte(dr["KUBUN_NAME"].ToString()) > 20)
                {
                    dgv_kubun_m.Focus();
                    MessageBox.Show("区分名の文字数に異常があります。 [" + dr["KUBUN_NAME"].ToString() + "]" + Environment.NewLine + "区分名は半角20文字(全角10文字)までです。");
                    break;  //foreachを抜ける
                }
                //備考文字数チェック
                if (tss.StringByte(dr["BIKOU"].ToString()) > 128)
                {
                    dgv_kubun_m.Focus();
                    MessageBox.Show("備考の文字数に異常があります。 [" + dr["BIKOU"].ToString() + "]" + Environment.NewLine + "備考は半角128文字(全角64文字)までです。");
                    break;  //foreachを抜ける
                }
                //区分コードを00形式にする
                int i;
                if (int.TryParse(dr["KUBUN_CD"].ToString(), out i))
                {
                    //変換出来たら、iにその数値が入る
                    dr["KUBUN_CD"] = i.ToString("00");
                }
                else
                {
                    dgv_kubun_m.Focus();
                    MessageBox.Show("区分コードに数字以外の文字があります。 [" + dr["KUBUN_CD"].ToString() + "]");
                    break;  //foreachを抜ける
                }

                //空白項目に適切な値を入れる
                if (dr["KUBUN_MEISYOU_CD"].ToString() == null || dr["KUBUN_MEISYOU_CD"].ToString() == "")
                {
                    dr["KUBUN_MEISYOU_CD"] = str_kubun_cd;
                    dr["CREATE_USER_CD"]   = tss.user_cd;
                }

                //重複したキーが無いかチェック
                if (dt_kubun_m.Select("KUBUN_CD = " + dr["KUBUN_CD"].ToString()).Length >= 2)
                {
                    dgv_kubun_m.Focus();
                    MessageBox.Show("区分コード [" + dr["KUBUN_CD"].ToString() + "] が重複しています。");
                    break;  //foreachを抜ける
                }

                //区分名が空白はNGとする
                if (dr["KUBUN_NAME"].ToString() == "")
                {
                    dgv_kubun_m.Focus();
                    MessageBox.Show("区分名が空白です。");
                    break;  //foreachを抜ける
                }

                //同一キーを読み込み、あったら比較しUpdate又は何もしない、無かったらInsert
                DataTable dt_check = new DataTable();
                dt_check = tss.OracleSelect("select * from tss_kubun_m where kubun_meisyou_cd = '" + dr["KUBUN_MEISYOU_CD"].ToString() + "' and kubun_cd = '" + dr["KUBUN_CD"].ToString() + "'");
                if (dt_check.Rows.Count >= 1)
                {
                    //同一キーがある場合
                    //変更があるかチェック
                    if (dt_check.Rows[0]["KUBUN_NAME"].ToString() != dr["KUBUN_NAME"].ToString() || dt_check.Rows[0]["BIKOU"].ToString() != dr["BIKOU"].ToString())
                    {
                        //違いがある場合はUpdate
                        bool bl = tss.OracleUpdate("UPDATE TSS_KUBUN_M SET KUBUN_NAME = '" + dr["KUBUN_NAME"].ToString() + "',BIKOU = '" + dr["BIKOU"].ToString() + "',UPDATE_USER_CD = '" + tss.user_cd + "',UPDATE_DATETIME = SYSDATE WHERE KUBUN_MEISYOU_CD = '" + dr["KUBUN_MEISYOU_CD"].ToString() + "' and KUBUN_CD = '" + dr["KUBUN_CD"].ToString() + "'");
                        if (bl != true)
                        {
                            tss.ErrorLogWrite(tss.user_cd, "区分マスタ/登録", "登録ボタン押下時のOracleUpdate");
                            MessageBox.Show("書込みでエラーが発生しました。" + Environment.NewLine + "処理を中止します。");
                            this.Close();
                        }
                        else
                        {
                            int_update++;
                        }
                    }
                }
                else
                {
                    //同一キーが無い場合はInsert
                    bool bl = tss.OracleInsert("INSERT INTO tss_kubun_m (kubun_meisyou_cd,kubun_cd,kubun_name,bikou,create_user_cd,create_datetime) VALUES ('" + dr["kubun_meisyou_cd"].ToString() + "','" + dr["kubun_cd"].ToString() + "','" + dr["kubun_name"].ToString() + "','" + dr["bikou"].ToString() + "','" + tss.user_cd + "',SYSDATE)");
                    if (bl != true)
                    {
                        tss.ErrorLogWrite(tss.user_cd, "区分名称マスタ/登録", "登録ボタン押下時のOracleInsert");
                        MessageBox.Show("書込みでエラーが発生しました。" + Environment.NewLine + "処理を中止します。");
                        this.Close();
                    }
                    else
                    {
                        int_insert++;
                    }
                }
            }
            if (int_insert != 0 || int_update != 0)
            {
                MessageBox.Show("登録しました。" + Environment.NewLine + "追加=" + int_insert.ToString() + Environment.NewLine + "更新=" + int_update.ToString());
            }
            else
            {
                MessageBox.Show("追加・更新するデータはありません。");
            }
        }
예제 #11
0
        //登録ボタン押下イベント
        private void btn_touroku_Click(object sender, EventArgs e)
        {
            if (tss.User_Kengen_Check(3, 5) == false)
            {
                MessageBox.Show("権限がありません");
                return;
            }

            DataTable dt_work = new DataTable();

            //取引先コードのチェック
            if (chk_torihikisaki_cd() == false)
            {
                MessageBox.Show("取引先コードを入力してください。");
                tb_torihikisaki_cd.Focus();
                return;
            }


            //仕入締日のチェック
            if (chk_siire_simebi() == false)
            {
                MessageBox.Show("仕入締日を20バイト以内で入力してください。");
                tb_torihikisaki_cd.Focus();
                return;
            }

            //データグリッドビューの中を1行ずつループしてチェック
            int dgvrc = dgv_siire_simebi.Rows.Count;

            if (dgvrc == 0)
            {
                MessageBox.Show("表の中に何も入力されていません");
                return;
            }

            tss.GetUser();  //ユーザー情報の取得

            //テキストボックスとデータグリッドビューの入力内容チェック
            for (int i = 0; i < dgvrc; i++)
            {
                if (dgv_siire_simebi.Rows[i].Cells[0].Value == null || tss.StringByte(dgv_siire_simebi.Rows[i].Cells[0].Value.ToString()) > 20)
                {
                    MessageBox.Show("仕入締日の値が異常です");
                    return;
                }

                if (dgv_siire_simebi.Rows[i].Cells[1].Value == null || decimal.Parse(dgv_siire_simebi.Rows[i].Cells[1].Value.ToString()) > decimal.Parse("9999999999.99") || decimal.Parse(dgv_siire_simebi.Rows[i].Cells[1].Value.ToString()) < decimal.Parse("-9999999999.99"))
                {
                    MessageBox.Show("仕入金額(税抜)の値が異常です");
                    return;
                }

                if (dgv_siire_simebi.Rows[i].Cells[2].Value == null || decimal.Parse(dgv_siire_simebi.Rows[i].Cells[2].Value.ToString()) > decimal.Parse("9999999999.99") || decimal.Parse(dgv_siire_simebi.Rows[i].Cells[2].Value.ToString()) < decimal.Parse("-9999999999.99"))
                {
                    MessageBox.Show("消費税額の値が異常です");
                    return;
                }

                if (dgv_siire_simebi.Rows[i].Cells[3].Value == null || decimal.Parse(dgv_siire_simebi.Rows[i].Cells[3].Value.ToString()) > decimal.Parse("9999999999.99") || decimal.Parse(dgv_siire_simebi.Rows[i].Cells[3].Value.ToString()) < decimal.Parse("-9999999999.99"))
                {
                    MessageBox.Show("仕入金額合計の値が異常です");
                    return;
                }
            }

            //買掛マスタへの登録処理
            //買掛マスタにレコードが存在するか確認
            tss.GetUser();
            dt_work = tss.OracleSelect("select * from tss_kaikake_m where torihikisaki_cd = '" + tb_torihikisaki_cd.Text + "' and siire_simebi = '" + tb_siire_simebi.Text.ToString() + "'");
            int rc  = dt_work.Rows.Count;
            int rc2 = dgv_siire_simebi.Rows.Count;

            //買掛マスタにレコードがない場合
            if (rc == 0)
            {
                decimal siirekingaku  = decimal.Parse(dgv_siire_simebi.Rows[0].Cells[1].Value.ToString());
                decimal syouhizeigaku = decimal.Parse(dgv_siire_simebi.Rows[0].Cells[2].Value.ToString());

                decimal kaikake_zandaka = siirekingaku + syouhizeigaku;

                bool bl = tss.OracleInsert("insert into tss_kaikake_m (torihikisaki_cd,siire_simebi,kurikosigaku,siharaigaku,siire_kingaku,syouhizeigaku,kaikake_zandaka,siharai_kanryou_flg,create_user_cd,create_datetime) values ('"

                                           + tb_torihikisaki_cd.Text.ToString() + "','"
                                           + tb_siire_simebi.Text.ToString() + "','"
                                           + 0 + "','"
                                           + 0 + "','"
                                           + siirekingaku.ToString() + "','"
                                           + syouhizeigaku.ToString() + "','"
                                           + kaikake_zandaka.ToString() + "','"
                                           + 0 + "','"
                                           + tss.user_cd + "',SYSDATE)");


                if (bl != true)
                {
                    tss.ErrorLogWrite(tss.user_cd, "仕入締日処理", "登録ボタン押下時のOracleInsert");
                    MessageBox.Show("仕入締日処理でエラーが発生しました。" + Environment.NewLine + "処理を中止します。");
                    this.Close();
                }
                else
                {
                    tb_create_user_cd.Text  = tss.user_cd;
                    tb_create_datetime.Text = DateTime.Now.ToString();
                    MessageBox.Show("仕入締日処理登録しました。");


                    tb_torihikisaki_cd.Clear();
                    tb_torihikisaki_name.Clear();
                    tb_siire_simebi.Clear();
                    dgv_siire_simebi.Rows.Clear();
                    tb_create_user_cd.Clear();
                    tb_create_datetime.Clear();
                    tb_update_user_cd.Clear();
                    tb_update_datetime.Clear();
                }
            }
            //買掛マスタにレコードが存在している場合
            else
            {
                DialogResult result = MessageBox.Show("既存の買掛データを上書きしますか?",
                                                      "買掛データの上書き確認",
                                                      MessageBoxButtons.OKCancel,
                                                      MessageBoxIcon.Exclamation,
                                                      MessageBoxDefaultButton.Button2);


                //直近の仕入締日の買掛残高を繰越額に入れる
                decimal siirekingaku  = decimal.Parse(dgv_siire_simebi.Rows[0].Cells[1].Value.ToString());
                decimal syouhizeigaku = decimal.Parse(dgv_siire_simebi.Rows[0].Cells[2].Value.ToString());

                decimal kurikosigaku = get_kurikosi(tb_torihikisaki_cd.Text.ToString());
                decimal siharai_gaku = decimal.Parse(dt_work.Rows[0][3].ToString());

                decimal kaikake_zandaka = kurikosigaku - siharai_gaku + siirekingaku + syouhizeigaku;

                if (result == DialogResult.OK)
                {
                    bool bl = tss.OracleUpdate("UPDATE TSS_kaikake_m SET kurikosigaku = '" + kurikosigaku + "',siire_kingaku = '" + siirekingaku + "',syouhizeigaku = '" + syouhizeigaku
                                               + "',kaikake_zandaka = '" + kaikake_zandaka + "',UPDATE_USER_CD = '" + tss.user_cd + "',UPDATE_DATETIME = SYSDATE WHERE torihikisaki_cd = '" + tb_torihikisaki_cd.Text.ToString() + "'and siire_simebi = '" + tb_siire_simebi.Text.ToString() + "'");


                    if (bl != true)
                    {
                        tss.ErrorLogWrite(tss.user_cd, "仕入締日処理", "登録ボタン押下時のOracleInsert");
                        MessageBox.Show("仕入締日処理でエラーが発生しました。" + Environment.NewLine + "処理を中止します。");
                        this.Close();
                    }
                    else
                    {
                        tb_update_user_cd.Text  = tss.user_cd;
                        tb_update_datetime.Text = DateTime.Now.ToString();
                        MessageBox.Show("仕入締日処理登録しました。");
                    }


                    //買掛マスタの支払完了フラグ更新
                    string str  = dgv_siire_simebi.Rows[0].Cells[0].Value.ToString();
                    string str2 = str.Substring(0, 10);

                    dt_work = tss.OracleSelect("select * from tss_kaikake_m where torihikisaki_cd = '" + tb_torihikisaki_cd.Text + "'and siire_simebi = '" + str2.ToString() + "'");

                    string siharaigaku    = dt_work.Rows[0]["siharaigaku"].ToString();
                    string siiregaku      = dt_work.Rows[0]["siire_kingaku"].ToString();
                    string syouhizei_gaku = dt_work.Rows[0]["syouhizeigaku"].ToString();

                    if (siharaigaku == "")
                    {
                        siharaigaku = "0";
                    }

                    if (siiregaku == "")
                    {
                        siiregaku = "0";
                    }

                    if (syouhizei_gaku == "")
                    {
                        syouhizei_gaku = "0";
                    }

                    decimal keisan = decimal.Parse(siiregaku) + decimal.Parse(syouhizei_gaku) - decimal.Parse(siharaigaku);

                    if (keisan == 0)
                    {
                        tss.OracleUpdate("UPDATE TSS_kaikake_m SET siharai_kanryou_flg = '1',UPDATE_USER_CD = '" + tss.user_cd + "',UPDATE_DATETIME = SYSDATE WHERE torihikisaki_cd = '" + tb_torihikisaki_cd.Text.ToString() + "'and siire_simebi = '" + str2.ToString() + "'");
                    }
                    else
                    {
                        tss.OracleUpdate("UPDATE TSS_kaikake_m SET siharai_kanryou_flg = '0',UPDATE_USER_CD = '" + tss.user_cd + "',UPDATE_DATETIME = SYSDATE WHERE torihikisaki_cd = '" + tb_torihikisaki_cd.Text.ToString() + "'and siire_simebi = '" + str2.ToString() + "'");
                    }

                    //MessageBox.Show("買掛マスタの支払完了フラグ処理しました。");

                    tb_torihikisaki_cd.Clear();
                    tb_torihikisaki_name.Clear();
                    tb_siire_simebi.Clear();
                    dgv_siire_simebi.Rows.Clear();
                    tb_create_user_cd.Clear();
                    tb_create_datetime.Clear();
                    tb_update_user_cd.Clear();
                    tb_update_datetime.Clear();
                }
                //「いいえ」が選択された時
                else if (result == DialogResult.Cancel)
                {
                    return;
                }
            }
        }
예제 #12
0
        //登録ボタンクリック
        private void btn_turoku_Click(object sender, EventArgs e)
        {
            if (tss.User_Kengen_Check(3, 5) == false)
            {
                MessageBox.Show("権限がありません");
                return;
            }

            DataTable dt_work = new DataTable();


            //取引先コードのチェック
            if (chk_torihikisaki_cd() == false)
            {
                MessageBox.Show("取引先コードを入力してください。");
                tb_torihikisaki_cd.Focus();
                return;
            }

            //登録前に全ての項目をチェック
            //支払番号
            if (chk_siharai_no() == false)
            {
                MessageBox.Show("支払は10バイト以内で入力してください");
                tb_siharai_no.Focus();
                return;
            }

            //支払日のチェック
            if (chk_siharai_date() == false)
            {
                MessageBox.Show("支払計上日を20バイト以内で入力してください。");
                tb_torihikisaki_cd.Focus();
                return;
            }

            //データグリッドビューの中を1行ずつループしてチェック
            int dgvrc = dgv_siharai.Rows.Count;

            if (dgvrc == 0)
            {
                MessageBox.Show("表の中に何も入力されていません");
                return;
            }

            tss.GetUser();  //ユーザー情報の取得

            //テキストボックスとデータグリッドビューの入力内容チェック
            for (int i = 0; i < dgvrc; i++)
            {
                if (dgv_siharai.Rows[i].Cells[0].Value == null || tss.StringByte(dgv_siharai.Rows[i].Cells[0].Value.ToString()) > 20)
                {
                    MessageBox.Show("仕入締日の値が異常です");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[2].Value == null)
                {
                    MessageBox.Show("支払区分を入力してください");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[2].Value.ToString() != "1" && dgv_siharai.Rows[i].Cells[2].Value.ToString() != "2" && dgv_siharai.Rows[i].Cells[2].Value.ToString() != "3")
                {
                    MessageBox.Show("支払区分は1~3の値を入力してください");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[3].Value == null || decimal.Parse(dgv_siharai.Rows[i].Cells[3].Value.ToString()) > decimal.Parse("9999999999.99") || decimal.Parse(dgv_siharai.Rows[i].Cells[3].Value.ToString()) < decimal.Parse("-9999999999.99"))
                {
                    MessageBox.Show("支払金額の値が異常です");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[4].Value == null || decimal.Parse(dgv_siharai.Rows[i].Cells[4].Value.ToString()) > decimal.Parse("9999999999.99") || decimal.Parse(dgv_siharai.Rows[i].Cells[4].Value.ToString()) < decimal.Parse("-9999999999.99"))
                {
                    MessageBox.Show("手数料の値が異常です");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[5].Value == null || decimal.Parse(dgv_siharai.Rows[i].Cells[5].Value.ToString()) > decimal.Parse("9999999999.99") || decimal.Parse(dgv_siharai.Rows[i].Cells[5].Value.ToString()) < decimal.Parse("-9999999999.99"))
                {
                    MessageBox.Show("相殺の値が異常です");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[6].Value == null || decimal.Parse(dgv_siharai.Rows[i].Cells[6].Value.ToString()) > decimal.Parse("9999999999.99") || decimal.Parse(dgv_siharai.Rows[i].Cells[6].Value.ToString()) < decimal.Parse("-9999999999.99"))
                {
                    MessageBox.Show("支払額合計の値が異常です");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[7].Value != null && tss.StringByte(dgv_siharai.Rows[i].Cells[7].Value.ToString()) > 128)
                {
                    MessageBox.Show("備考は128バイト以内で入力してください。");
                    return;
                }


                //支払計上日が空白の場合、""を代入  空欄だとnull扱いされ、SQエラー回避
                if (dgv_siharai.Rows[i].Cells[1].Value == null)
                {
                    dgv_siharai.Rows[i].Cells[1].Value = "";
                }

                //備考が空白の場合、""を代入  空欄だとnull扱いされ、SQエラー回避
                if (dgv_siharai.Rows[i].Cells[7].Value == null)
                {
                    dgv_siharai.Rows[i].Cells[7].Value = "";
                }
            }

            //チェックが済んだら、データベースに登録
            //支払マスタ更新処理
            siharai_kousin();

            btn_tuika.Enabled = false;
        }
예제 #13
0
        //private void splitContainer6_Panel2_Paint(object sender, PaintEventArgs e)
        //{

        //}


        //登録ボタンクリック
        private void btn_turoku_Click(object sender, EventArgs e)
        {
            DataTable dt_work = new DataTable();


            //登録前に全ての項目をチェック
            //支払番号
            if (chk_siharai_no() == false)
            {
                MessageBox.Show("支払は10バイト以内で入力してください");
                tb_siharai_no.Focus();
                return;
            }

            //支払日のチェック
            if (chk_siharai_date() == false)
            {
                MessageBox.Show("支払計上日を20バイト以内で入力してください。");
                tb_torihikisaki_cd.Focus();
                return;
            }


            //データグリッドビューの中を1行ずつループしてチェック
            int dgvrc = dgv_siharai.Rows.Count;

            if (dgvrc == 0)
            {
                MessageBox.Show("表の中に何も入力されていません");
                return;
            }

            tss.GetUser();  //ユーザー情報の取得

            //テキストボックスとデータグリッドビューの入力内容チェック
            for (int i = 0; i < dgvrc ; i++)
            {
                if (dgv_siharai.Rows[i].Cells[0].Value == null || tss.StringByte(dgv_siharai.Rows[i].Cells[0].Value.ToString()) > 20)
                {
                    MessageBox.Show("仕入締日の値が異常です");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[2].Value == null)
                {
                    MessageBox.Show("支払区分を入力してください");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[2].Value.ToString() != "1" && dgv_siharai.Rows[i].Cells[2].Value.ToString() != "2" && dgv_siharai.Rows[i].Cells[2].Value.ToString() != "3")
                {
                    MessageBox.Show("支払区分は1~3の値を入力してください");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[3].Value == null || double.Parse(dgv_siharai.Rows[i].Cells[3].Value.ToString()) > 9999999999.99 || double.Parse(dgv_siharai.Rows[i].Cells[3].Value.ToString()) < -999999999.99)
                {
                    MessageBox.Show("支払金額の値が異常です");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[4].Value == null || double.Parse(dgv_siharai.Rows[i].Cells[4].Value.ToString()) > 9999999999.99 || double.Parse(dgv_siharai.Rows[i].Cells[4].Value.ToString()) < -999999999.99)
                {
                    MessageBox.Show("手数料の値が異常です");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[5].Value == null || double.Parse(dgv_siharai.Rows[i].Cells[5].Value.ToString()) > 9999999999.99 || double.Parse(dgv_siharai.Rows[i].Cells[5].Value.ToString()) < -999999999.99)
                {
                    MessageBox.Show("相殺の値が異常です");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[6].Value == null || double.Parse(dgv_siharai.Rows[i].Cells[6].Value.ToString()) > 9999999999.99 || double.Parse(dgv_siharai.Rows[i].Cells[6].Value.ToString()) < -999999999.99)
                {
                    MessageBox.Show("支払額合計の値が異常です");
                    return;
                }

                if (dgv_siharai.Rows[i].Cells[7].Value != null && tss.StringByte(dgv_siharai.Rows[i].Cells[7].Value.ToString()) > 128)
                {
                    MessageBox.Show("備考は128バイト以内で入力してください。");
                    return;
                }


                //支払計上日が空白の場合、""を代入  空欄だとnull扱いされ、SQエラー回避
                if (dgv_siharai.Rows[i].Cells[1].Value == null)
                {
                    dgv_siharai.Rows[i].Cells[1].Value = "";
                }

                //備考が空白の場合、""を代入  空欄だとnull扱いされ、SQエラー回避
                if (dgv_siharai.Rows[i].Cells[7].Value == null)
                {
                    dgv_siharai.Rows[i].Cells[7].Value = "";
                }
            }

            //チェックが済んだら、データベースに登録

            //支払マスタに同じ支払ナンバーのレコードが存在するか確認
            tss.GetUser();
            dt_work = tss.OracleSelect("select * from tss_siharai_m where siharai_no = '" + tb_siharai_no.Text + "'");
            int rc  = dt_work.Rows.Count;
            int rc2 = dgv_siharai.Rows.Count;

            double siharai = double.Parse(tb_siharai_goukei.Text.ToString());
            double sisan   = double.Parse(w_mibarai) - siharai;

            if (sisan != 0)
            {
                DialogResult result = MessageBox.Show("未払額と支払額が一致しませんが、よろしいですか?",
                                                      "支払登録",
                                                      MessageBoxButtons.OKCancel,
                                                      MessageBoxIcon.Exclamation,
                                                      MessageBoxDefaultButton.Button2);

                if (result == DialogResult.OK)
                {
                    siharai_kousin();
                }


                else if (result == DialogResult.Cancel)
                {
                    //「キャンセル」が選択された時
                    Console.WriteLine("「キャンセル」しました");
                    return;
                }
            }

            else
            {
                siharai_kousin();
            }
        }
예제 #14
0
        private void btn_touroku_Click(object sender, EventArgs e)
        {
            //全ての入力内容のチェック
            int w_mode;

            //新規か既存かの判定
            if (tb_uriage_no.Text.ToString() == w_uriage_no.ToString("0000000000"))
            {
                //新規
                w_mode = 0;
            }
            else
            {
                //既存
                w_mode = 1;
            }
            //取引先コード
            if (chk_torihikisaki_cd() == false)
            {
                MessageBox.Show("取引先コードに異常があります。");
                tb_torihikisaki_cd.Focus();
                return;
            }
            //売上計上日
            if (chk_uriage_date() == false)
            {
                MessageBox.Show("売上計上日に異常があります。");
                tb_uriage_date.Focus();
                return;
            }
            //明細行のチェック
            if (dgv_m.Rows.Count - 1 < 1)
            {
                MessageBox.Show("売上の明細が入力されていません。");
                dgv_m.Focus();
                return;
            }
            //明細行の各行のチェック
            for (int i = 0; i < dgv_m.Rows.Count - 1; i++)
            {
                //受注コード
                int    w_juchu_cd1_flg = 0; //0:未入力 1:入力済
                int    w_juchu_cd2_flg = 0; //0:未入力 1:入力済
                string w_seihin_cd;

                if (dgv_m.Rows[i].Cells[4].Value.ToString() != null && dgv_m.Rows[i].Cells[4].Value.ToString() != "")
                {
                    w_juchu_cd1_flg = 1;
                }
                if (dgv_m.Rows[i].Cells[5].Value.ToString() != null && dgv_m.Rows[i].Cells[5].Value.ToString() != "")
                {
                    w_juchu_cd2_flg = 1;
                }
                //受注コード1または受注コード2のどちらかが入力されていたら、受注マスタを確認
                if (w_juchu_cd1_flg == 1 || w_juchu_cd2_flg == 1)
                {
                    w_seihin_cd = tss.get_juchu_to_seihin_cd(tb_torihikisaki_cd.Text.ToString(), dgv_m.Rows[i].Cells[4].Value.ToString(), dgv_m.Rows[i].Cells[5].Value.ToString());
                    if (w_seihin_cd == null)
                    {
                        MessageBox.Show("入力された受注コード1、または受注コード2は存在しません。");
                        dgv_m.CurrentCell = dgv_m[4, i];
                        return;
                    }
                    if (dgv_m.Rows[i].Cells[6].Value.ToString() != w_seihin_cd)
                    {
                        MessageBox.Show("受注情報に登録されている製品コードは変更できません。");
                        dgv_m.CurrentCell = dgv_m[6, i];
                        return;
                    }
                }
                //製品コード
                if (chk_seihin_cd(dgv_m.Rows[i].Cells[6].Value.ToString()) == false)
                {
                    MessageBox.Show("製品コードに異常があります。");
                    dgv_m.CurrentCell = dgv_m[6, i];
                    return;
                }
                //製品名
                if (tss.StringByte(dgv_m.Rows[i].Cells[7].Value.ToString()) > 40)
                {
                    MessageBox.Show("製品名は40バイト以内で入力してください。");
                    dgv_m.CurrentCell = dgv_m[7, i];
                    return;
                }
                //売上数
                if (chk_uriage_su(dgv_m.Rows[i].Cells[8].Value.ToString()) == false)
                {
                    MessageBox.Show("売上数に異常があります。");
                    dgv_m.CurrentCell = dgv_m[8, i];
                    return;
                }
                //販売単価
                if (chk_hanbai_tanka(dgv_m.Rows[i].Cells[9].Value.ToString()) == false)
                {
                    MessageBox.Show("販売単価に異常があります。");
                    dgv_m.CurrentCell = dgv_m[9, i];
                    return;
                }
                //製品名
                if (tss.StringByte(dgv_m.Rows[i].Cells[14].Value.ToString()) > 128)
                {
                    MessageBox.Show("備考は128バイト以内で入力してください。");
                    dgv_m.CurrentCell = dgv_m[14, i];
                    return;
                }

                //新規・更新チェック
                if (w_mode == 0)
                {
                    //新規
                    DialogResult result = MessageBox.Show("新規に登録します。よろしいですか?", "確認", MessageBoxButtons.YesNo);
                    if (result == DialogResult.Yes)
                    {
                        //「はい」が選択された時
                        //新しい売上を書き込み
                        uriage_insert();
                        //新しい売上で受注マスタの売上数量、売上完了区分を更新
                        juchu_kousin(tb_uriage_no.Text, +1);
                        //新しい売上で在庫を更新
                        zaiko_kousin(tb_uriage_no.Text, +1);

                        MessageBox.Show("更新しました。");
                        gamen_clear();
                        //連番を新たに取得
                        w_uriage_no = tss.GetSeq("05");
                        uriage_no_disp();
                    }
                    else
                    {
                        //「いいえ」が選択された時
                        return;
                    }
                }
                else
                {
                    //既存データ有
                    DialogResult result = MessageBox.Show("既存データを更新します。よろしいですか?", "確認", MessageBoxButtons.YesNo);
                    if (result == DialogResult.Yes)
                    {
                        //「はい」が選択された時
                        //受注マスタの売上数、売上完了区分等をマイナス
                        juchu_kousin(tb_uriage_no.Text, -1);
                        //在庫をマイナス
                        zaiko_kousin(tb_uriage_no.Text, -1);
                        //売上情報を削除
                        uriage_delete();
                        //新しい売上を書き込み
                        uriage_insert();
                        //新しい売上で受注マスタの売上数量、売上完了区分を更新
                        juchu_kousin(tb_uriage_no.Text, +1);
                        //新しい売上で在庫を更新
                        zaiko_kousin(tb_uriage_no.Text, +1);

                        MessageBox.Show("更新しました。");
                        gamen_clear();
                        //退避していた連番を表示
                        uriage_no_disp();
                    }
                    else
                    {
                        //「いいえ」が選択された時
                        return;
                    }
                }
            }
        }
        //登録ボタン押下イベント
        private void btn_touroku_Click(object sender, EventArgs e)
        {
            DataTable dt_work = new DataTable();

            //取引先コードのチェック
            if (chk_torihikisaki_cd() == false)
            {
                MessageBox.Show("取引先コードは6バイト以内で入力してください。");
                tb_torihikisaki_cd.Focus();
                return;
            }


            //仕入締日のチェック
            if (chk_siire_simebi() == false)
            {
                MessageBox.Show("仕入締日を20バイト以内で入力してください。");
                tb_torihikisaki_cd.Focus();
                return;
            }

            //データグリッドビューの中を1行ずつループしてチェック
            int dgvrc = dgv_siire_simebi.Rows.Count;

            if (dgvrc == 0)
            {
                MessageBox.Show("表の中に何も入力されていません");
                return;
            }

            tss.GetUser();  //ユーザー情報の取得

            //テキストボックスとデータグリッドビューの入力内容チェック
            for (int i = 0; i < dgvrc; i++)
            {
                if (dgv_siire_simebi.Rows[i].Cells[0].Value == null || tss.StringByte(dgv_siire_simebi.Rows[i].Cells[0].Value.ToString()) > 20)
                {
                    MessageBox.Show("仕入締日の値が異常です");
                    return;
                }

                if (dgv_siire_simebi.Rows[i].Cells[1].Value == null || double.Parse(dgv_siire_simebi.Rows[i].Cells[1].Value.ToString()) > 9999999999.99 || double.Parse(dgv_siire_simebi.Rows[i].Cells[1].Value.ToString()) < -999999999.99)
                {
                    MessageBox.Show("仕入金額(税抜)の値が異常です");
                    return;
                }

                if (dgv_siire_simebi.Rows[i].Cells[2].Value == null || double.Parse(dgv_siire_simebi.Rows[i].Cells[2].Value.ToString()) > 9999999999.99 || double.Parse(dgv_siire_simebi.Rows[i].Cells[2].Value.ToString()) < -999999999.99)
                {
                    MessageBox.Show("消費税額の値が異常です");
                    return;
                }

                if (dgv_siire_simebi.Rows[i].Cells[3].Value == null || double.Parse(dgv_siire_simebi.Rows[i].Cells[3].Value.ToString()) > 9999999999.99 || double.Parse(dgv_siire_simebi.Rows[i].Cells[3].Value.ToString()) < -999999999.99)
                {
                    MessageBox.Show("仕入金額合計の値が異常です");
                    return;
                }
            }

            //買掛マスタへの登録処理
            //買掛マスタにレコードが存在するか確認
            tss.GetUser();
            dt_work = tss.OracleSelect("select * from tss_kaikake_m where torihikisaki_cd = '" + tb_torihikisaki_cd.Text + "' and siire_simebi = '" + tb_siire_simebi.Text.ToString() + "'");
            int rc  = dt_work.Rows.Count;
            int rc2 = dgv_siire_simebi.Rows.Count;

            //既存の買掛マスタから、繰越額があるか確認
            //DataTable dt_work2 = new DataTable();
            //dt_work2 = tss.OracleSelect("select siire_simebi,kurikosigaku,kaikake_zandaka from tss_kaikake_m where torihikisaki_cd = '" + tb_torihikisaki_cd.Text + "' ORDER BY siire_simebi");
            //int rc3 = dt_work2.Rows.Count;



            //買掛マスタにレコードがない場合
            if (rc == 0)
            {
                //double kurikosigaku = double.Parse(dt_work2.Rows[rc3 - 1][2].ToString()); //直近の仕入締日の買掛残高を繰越額に入れる
                //double siirekingaku = double.Parse(dgv_siire_simebi.Rows[0].Cells[1].Value.ToString());
                //double syouhizeigaku = double.Parse(dgv_siire_simebi.Rows[0].Cells[2].Value.ToString());
                //double kaikake_zandaka = kurikosigaku + siirekingaku + syouhizeigaku;


                //bool bl = tss.OracleInsert("insert into tss_kaikake_m (torihikisaki_cd, kurikosigaku,siire_simebi,siire_kingaku,syouhizeigaku,kaikake_zandaka,create_user_cd,create_datetime) values ('"

                //          + tb_torihikisaki_cd.Text.ToString() + "','"
                //          + kurikosigaku + "','"
                //          + tb_siire_simebi.Text.ToString() + "','"
                //          + dgv_siire_simebi.Rows[0].Cells[1].Value.ToString() + "','"
                //          + dgv_siire_simebi.Rows[0].Cells[2].Value.ToString() + "','"
                //          + kaikake_zandaka + "','"
                //          + tss.user_cd + "',SYSDATE)");



                double siirekingaku  = double.Parse(dgv_siire_simebi.Rows[0].Cells[1].Value.ToString());
                double syouhizeigaku = double.Parse(dgv_siire_simebi.Rows[0].Cells[2].Value.ToString());



                bool bl = tss.OracleInsert("insert into tss_kaikake_m (torihikisaki_cd,siire_simebi,siire_kingaku,syouhizeigaku,siharai_kanryou_flg,create_user_cd,create_datetime) values ('"

                                           + tb_torihikisaki_cd.Text.ToString() + "','"
                                           + tb_siire_simebi.Text.ToString() + "','"
                                           + dgv_siire_simebi.Rows[0].Cells[1].Value.ToString() + "','"
                                           + dgv_siire_simebi.Rows[0].Cells[2].Value.ToString() + "','"
                                           + 0 + "','"
                                           + tss.user_cd + "',SYSDATE)");


                if (bl != true)
                {
                    tss.ErrorLogWrite(tss.user_cd, "仕入締日処理", "登録ボタン押下時のOracleInsert");
                    MessageBox.Show("仕入締日処理でエラーが発生しました。" + Environment.NewLine + "処理を中止します。");
                    this.Close();
                }
                else
                {
                    tb_create_user_cd.Text  = tss.user_cd;
                    tb_create_datetime.Text = DateTime.Now.ToString();
                    MessageBox.Show("仕入締日処理登録しました。");
                }
            }
            //買掛マスタにレコードが存在している場合
            else
            {
                DialogResult result = MessageBox.Show("既存の買掛データを上書きしますか?",
                                                      "買掛データの上書き確認",
                                                      MessageBoxButtons.OKCancel,
                                                      MessageBoxIcon.Exclamation,
                                                      MessageBoxDefaultButton.Button2);


                //double kurikosigaku = double.Parse(dt_work2.Rows[rc3 - 2][2].ToString()); //直近の仕入締日の買掛残高を繰越額に入れる
                double siirekingaku  = double.Parse(dgv_siire_simebi.Rows[0].Cells[1].Value.ToString());
                double syouhizeigaku = double.Parse(dgv_siire_simebi.Rows[0].Cells[2].Value.ToString());
                //double kaikake_zandaka = kurikosigaku + siirekingaku + syouhizeigaku;



                if (result == DialogResult.OK)
                {
                    bool bl = tss.OracleUpdate("UPDATE TSS_kaikake_m SET siharaigaku = '" + siirekingaku + "',syouhizeigaku = '" + syouhizeigaku
                                               + "',UPDATE_USER_CD = '" + tss.user_cd + "',UPDATE_DATETIME = SYSDATE WHERE torihikisaki_cd = '" + tb_torihikisaki_cd.Text.ToString() + "'and siire_simebi = '" + tb_siire_simebi.Text.ToString() + "'");


                    //bool bl = tss.OracleUpdate("UPDATE TSS_kaikake_m SET kurikosigaku = '"
                    //            + kurikosigaku + "',siharaigaku = '" + siirekingaku + "',syouhizeigaku = '" + syouhizeigaku + "',kaikake_zandaka = '" + kaikake_zandaka
                    //            + "',UPDATE_USER_CD = '" + tss.user_cd + "',UPDATE_DATETIME = SYSDATE WHERE torihikisaki_cd = '" + tb_torihikisaki_cd.Text.ToString() + "'and siire_simebi = '" + tb_siire_simebi.Text.ToString() + "'");


                    ////仕入マスタから削除してインサート
                    //tss.OracleDelete("delete from kaikake_m where torihikisaki_cd = '" + tb_torihikisaki_cd.Text + "' and siire_simebi = '" + tb_siire_simebi.Text.ToString() + "'");

                    //bool bl = tss.OracleInsert("insert into tss_kaikake_m (torihikisaki_cd, kurikosigaku,siire_simebi,siire_kingaku,syouhizeigaku,kaikake_zandaka,create_user_cd,create_datetime,update_user_cd,update_datetime) values ('"

                    //          + tb_torihikisaki_cd.Text.ToString() + "','"
                    //          + kurikosigaku + "','"
                    //          + tb_siire_simebi.Text.ToString() + "','"
                    //          + dgv_siire_simebi.Rows[0].Cells[1].Value.ToString() + "','"
                    //          + dgv_siire_simebi.Rows[0].Cells[2].Value.ToString() + "','"
                    //          + kaikake_zandaka + "','"
                    //          + tb_create_user_cd.Text.ToString() + "',"//←カンマがあると、日付をインサートする際にエラーになるので注意する
                    //          + "to_date('" + tb_create_datetime.Text.ToString() + "','YYYY/MM/DD HH24:MI:SS'),'"
                    //          + tss.user_cd + "',SYSDATE)");


                    if (bl != true)
                    {
                        tss.ErrorLogWrite(tss.user_cd, "仕入締日処理", "登録ボタン押下時のOracleInsert");
                        MessageBox.Show("仕入締日処理でエラーが発生しました。" + Environment.NewLine + "処理を中止します。");
                        this.Close();
                    }
                    else
                    {
                        //tb_create_user_cd.Text = tss.user_cd;
                        //tb_create_datetime.Text = DateTime.Now.ToString();
                        tb_update_user_cd.Text  = tss.user_cd;
                        tb_update_datetime.Text = DateTime.Now.ToString();
                        MessageBox.Show("仕入締日処理登録しました。");
                    }
                }
                //「いいえ」が選択された時
                else if (result == DialogResult.Cancel)
                {
                    return;
                }
            }
        }