Ejemplo n.º 1
0
        /// <summary>
        ///     検収状態変更(1行ずつ)
        /// </summary>
        private void changeKensyu()
        {
            A0660_TokuisakiUriageKakunin_B siirekakuninB = new A0660_TokuisakiUriageKakunin_B();
            List <Kingaku> lstKingaku = new List <Kingaku>();

            // 検収状態取得
            string status = gridTokuisakiKensyu.CurrentRow.Cells[9].Value.ToString().Trim();;
            // 選択行の仕入金額取得
            string strSiire = string.Format("{0:#0}", gridTokuisakiKensyu.CurrentRow.Cells[7].Value);
            // 検収合計取得
            string strKensyu = txtKensyuTotal.Text;
            // 未検収合計取得
            string strMikensyu = txtMikensyuTotal.Text;

            if (status.Equals(""))
            {
                gridTokuisakiKensyu.CurrentRow.Cells[9].Value = "済";
                // 検収金額、未検収金額計算
                lstKingaku = siirekakuninB.kingakuCalculation(strSiire, strKensyu, strMikensyu, 0);
            }
            else if (status.Equals("済"))
            {
                gridTokuisakiKensyu.CurrentRow.Cells[9].Value = "";
                // 検収金額、未検収金額計算
                lstKingaku = siirekakuninB.kingakuCalculation(strSiire, strKensyu, strMikensyu, 1);
            }

            // カンマを付けてテキストボックスに入れる
            txtKensyuTotal.Text   = String.Format("{0:#,0}", lstKingaku[0].kensyu);
            txtMikensyuTotal.Text = String.Format("{0:#,0}", lstKingaku[0].mikensyu);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     検収状態更新(DB UPDATE)
        /// </summary>
        private void UpdateKensyuStatus()
        {
            A0660_TokuisakiUriageKakunin_B siirekakuninB = new A0660_TokuisakiUriageKakunin_B();
            // ユーザ名取得
            string userName = SystemInformation.UserName;
            // datagridViewの情報をDataTableで取得
            DataTable dt = (DataTable)gridTokuisakiKensyu.DataSource;

            try
            {
                // 更新処理
                siirekakuninB.UpdateKnesyuSiire(dt, userName);
                // 再度データ取得
                getTokuisakiKensyu();
                // 成功メッセージ表示
                BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_TOUROKU, CommonTeisu.LABEL_TOUROKU, CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION);
                basemessagebox.ShowDialog();
            }
            catch (Exception ex)
            {
                // エラーロギング
                new CommonException(ex);

                // エラーメッセージ表示
                BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_ERROR, CommonTeisu.LABEL_TOUROKU_MISS, CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                basemessagebox.ShowDialog();
            }
        }
Ejemplo n.º 3
0
        ///<summary>
        ///     F10:Excel出力
        ///</summary>
        private void exportXls()
        {
            // SaveFileDialogクラスのインスタンスを作成
            SaveFileDialog sfd = new SaveFileDialog();

            // ファイル名の指定
            sfd.FileName = "得意先売上検収入力_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".xlsx";
            // デフォルトパス取得(デスクトップ)
            string Init_dir = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            //はじめに表示されるフォルダを指定する
            sfd.InitialDirectory = Init_dir;
            // ファイルフィルタの設定
            sfd.Filter = "すべてのファイル(*.*)|*.*";


            //年月日の日付フォーマット後を入れる用
            string strYMDformat = "";

            //待機状態
            Cursor.Current = Cursors.WaitCursor;

            //得意先が空の場合
            if (labelSet_Tokuisaki.codeTxt.blIsEmpty() == false)
            {
                BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "得意先を指定してください ", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                basemessagebox.ShowDialog();

                labelSet_Tokuisaki.Focus();

                return;
            }

            //検索開始年月日に記入がある場合
            if (txtDenpyoYMDStart.blIsEmpty())
            {
                //日付フォーマット生成、およびチェック
                strYMDformat = txtDenpyoYMDStart.chkDateDataFormat(txtDenpyoYMDStart.Text);

                //検索開始年月日の日付チェック
                if (strYMDformat == "")
                {
                    // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK)
                    BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                    basemessagebox.ShowDialog();

                    txtDenpyoYMDStart.Focus();

                    return;
                }
                else
                {
                    txtDenpyoYMDStart.Text = strYMDformat;
                }
            }

            //検索終了年月日に記入がある場合
            if (txtDenpyoYMDEnd.blIsEmpty())
            {
                //初期化
                strYMDformat = "";

                //日付フォーマット生成、およびチェック
                strYMDformat = txtDenpyoYMDEnd.chkDateDataFormat(txtDenpyoYMDEnd.Text);

                //検索終了年月日の日付チェック
                if (strYMDformat == "")
                {
                    // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK)
                    BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                    basemessagebox.ShowDialog();

                    txtDenpyoYMDEnd.Focus();

                    return;
                }
                else
                {
                    txtDenpyoYMDEnd.Text = strYMDformat;
                }
            }

            //大分類チェック
            if (labelSet_Daibunrui.chkTxtDaibunrui())
            {
                labelSet_Daibunrui.Focus();
                return;
            }

            //中分類チェック
            if (labelSet_Chubunrui.chkTxtChubunrui(labelSet_Daibunrui.CodeTxtText))
            {
                labelSet_Chubunrui.Focus();
                return;
            }

            try
            {
                A0660_TokuisakiUriageKakunin_B siirekakuninB = new A0660_TokuisakiUriageKakunin_B();

                // 検索文字列格納用
                string[] arrSerach = new string[7];
                // 出力順条件取得用
                string[] arrOrder = new string[2];
                // 表示条件取得用
                string[] arrDisplay = new string[3];

                arrSerach[0] = labelSet_Tokuisaki.CodeTxtText;                   // 得意先コード
                arrSerach[1] = txtDenpyoYMDStart.Text;                           // 伝票年月日start
                arrSerach[2] = txtDenpyoYMDEnd.Text;                             // 伝票年月日end
                arrSerach[3] = labelSet_Daibunrui.CodeTxtText;                   // 大分類コード
                arrSerach[4] = labelSet_Chubunrui.CodeTxtText;                   // 中分類コード
                arrSerach[5] = txtKataban.Text;                                  // 品名・型番
                arrSerach[6] = txtBiko.Text;                                     // 備考

                arrOrder[0] = radOutOrder.radbtn0.Checked.ToString().ToUpper();  // 出力順 日付・伝票番号順
                arrOrder[1] = radOutOrder.radbtn1.Checked.ToString().ToUpper();  // 出力順 型番・日付順

                arrDisplay[0] = radDisplay.radbtn0.Checked.ToString().ToUpper(); // 表示 すべて
                arrDisplay[1] = radDisplay.radbtn1.Checked.ToString().ToUpper(); // 表示 未検収
                arrDisplay[2] = radDisplay.radbtn2.Checked.ToString().ToUpper(); // 表示 検収済

                // 検索実行
                DataTable dtUriagekensyu = siirekakuninB.getSiireData(arrSerach, arrOrder, arrDisplay);

                // カーソルをデフォルトに戻す
                this.Cursor = Cursors.Default;

                if (dtUriagekensyu.Rows.Count > 0)
                {
                    //ダイアログを表示する
                    if (sfd.ShowDialog() == DialogResult.OK)
                    {
                        //待機状態
                        Cursor.Current = Cursors.WaitCursor;

                        CreatePdf cpdf = new CreatePdf();

                        // 出力するヘッダを設定
                        string[] header =
                        {
                            "日付",
                            "伝No.",
                            "メーカー",
                            "品名・型式",
                            "数量",
                            "売上単価",
                            "売上金額",
                            "備考",
                            "検収",
                        };

                        // Linqで出力対象の項目をSelect
                        // カラム名は以下のようにつける(カラム名でフォーマットを判断するため)
                        // 金額関係:***kingaku
                        // 単価関係:***tanka
                        // 原価:***genka
                        // 数量:***suryo
                        var outDat = dtUriagekensyu.AsEnumerable()
                                     .Select(dat => new
                        {
                            denYmd        = dat["伝票年月日"],
                            denNo         = dat["伝票番号"],
                            maker         = dat["メーカー"],
                            hinmei        = dat["品名型式"],
                            suryo         = dat["数量"],
                            uriagetanka   = dat["売上単価"],
                            uriagekingaku = dat["売上金額"],
                            biko          = dat["備考"],
                            kensyu        = dat["検収状態"]
                        }).ToList();

                        // listをDataTableに変換
                        DataTable dtUriKensyuList = cpdf.ConvertToDataTable(outDat);

                        string outFile = sfd.FileName;

                        cpdf.DtToXls(dtUriKensyuList, "得意先売上検収入力", outFile, 3, 1, header);

                        this.Cursor = Cursors.Default;

                        // メッセージボックスの処理、Excel作成完了の場合のウィンドウ(OK)
                        BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excelファイルを作成しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION);
                        basemessagebox.ShowDialog();
                    }
                }
                else
                {
                    // メッセージボックスの処理、項目が空の場合のウィンドウ(OK)
                    BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "対象のデータはありません", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                    basemessagebox.ShowDialog();
                    return;
                }
            }
            catch (Exception ex)
            {
                this.Cursor = Cursors.Default;

                // エラーロギング
                new CommonException(ex);

                // Excel出力失敗メッセージ
                BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excel出力に失敗しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                basemessagebox.ShowDialog();

                return;
            }
        }
Ejemplo n.º 4
0
        ///<summary>
        ///     得意先売上検収データ取得
        ///</summary>
        private void getTokuisakiKensyu()
        {
            //年月日の日付フォーマット後を入れる用
            string strYMDformat = "";

            //得意先が空の場合
            if (labelSet_Tokuisaki.codeTxt.blIsEmpty() == false)
            {
                BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "得意先を指定してください ", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                basemessagebox.ShowDialog();

                labelSet_Tokuisaki.Focus();

                return;
            }

            //検索開始年月日に記入がある場合
            if (txtDenpyoYMDStart.blIsEmpty())
            {
                //日付フォーマット生成、およびチェック
                strYMDformat = txtDenpyoYMDStart.chkDateDataFormat(txtDenpyoYMDStart.Text);

                //検索開始年月日の日付チェック
                if (strYMDformat == "")
                {
                    // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK)
                    BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                    basemessagebox.ShowDialog();

                    txtDenpyoYMDStart.Focus();

                    return;
                }
                else
                {
                    txtDenpyoYMDStart.Text = strYMDformat;
                }
            }

            //検索終了年月日に記入がある場合
            if (txtDenpyoYMDEnd.blIsEmpty())
            {
                //初期化
                strYMDformat = "";

                //日付フォーマット生成、およびチェック
                strYMDformat = txtDenpyoYMDEnd.chkDateDataFormat(txtDenpyoYMDEnd.Text);

                //検索終了年月日の日付チェック
                if (strYMDformat == "")
                {
                    // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK)
                    BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                    basemessagebox.ShowDialog();

                    txtDenpyoYMDEnd.Focus();

                    return;
                }
                else
                {
                    txtDenpyoYMDEnd.Text = strYMDformat;
                }
            }

            //大分類チェック
            if (labelSet_Daibunrui.chkTxtDaibunrui())
            {
                labelSet_Daibunrui.Focus();
                return;
            }

            //中分類チェック
            if (labelSet_Chubunrui.chkTxtChubunrui(labelSet_Daibunrui.CodeTxtText))
            {
                labelSet_Chubunrui.Focus();
                return;
            }



            try
            {
                A0660_TokuisakiUriageKakunin_B siirekakuninB = new A0660_TokuisakiUriageKakunin_B();

                // 検索文字列格納用
                string[] arrSerach = new string[7];
                // 出力順条件取得用
                string[] arrOrder = new string[2];
                // 表示条件取得用
                string[] arrDisplay = new string[3];

                arrSerach[0] = labelSet_Tokuisaki.CodeTxtText;                   // 得意先コード
                arrSerach[1] = txtDenpyoYMDStart.Text;                           // 伝票年月日start
                arrSerach[2] = txtDenpyoYMDEnd.Text;                             // 伝票年月日end
                arrSerach[3] = labelSet_Daibunrui.CodeTxtText;                   // 大分類コード
                arrSerach[4] = labelSet_Chubunrui.CodeTxtText;                   // 中分類コード
                arrSerach[5] = txtKataban.Text;                                  // 品名・型番
                arrSerach[6] = txtBiko.Text;                                     // 備考

                arrOrder[0] = radOutOrder.radbtn0.Checked.ToString().ToUpper();  // 出力順 日付・伝票番号順
                arrOrder[1] = radOutOrder.radbtn1.Checked.ToString().ToUpper();  // 出力順 型番・日付順

                arrDisplay[0] = radDisplay.radbtn0.Checked.ToString().ToUpper(); // 表示 すべて
                arrDisplay[1] = radDisplay.radbtn1.Checked.ToString().ToUpper(); // 表示 未検収
                arrDisplay[2] = radDisplay.radbtn2.Checked.ToString().ToUpper(); // 表示 検収済

                DataTable dtUriagekensyu = siirekakuninB.getSiireData(arrSerach, arrOrder, arrDisplay);

                // 入力合計
                var total = (int)dtUriagekensyu.AsEnumerable().Sum(s => s.Field <decimal>("売上金額"));
                // 検収済合計
                var kensyuSum = (int)dtUriagekensyu.AsEnumerable().Where(s => s.Field <string>("検収状態") == "済")
                                .Sum(s => s.Field <decimal>("売上金額"));
                // 未検収合計
                var mikenSum = (int)dtUriagekensyu.AsEnumerable().Where(s => s.Field <string>("検収状態") != "済")
                               .Sum(s => s.Field <decimal>("売上金額"));

                // gridにバインド
                gridTokuisakiKensyu.DataSource = dtUriagekensyu;

                // カンマを付けてテキストボックスに入れる
                txtInputTotal.Text    = String.Format("{0:#,0}", total);
                txtKensyuTotal.Text   = String.Format("{0:#,0}", kensyuSum);
                txtMikensyuTotal.Text = String.Format("{0:#,0}", mikenSum);

                int rowCnt = 0;
                foreach (var row in gridTokuisakiKensyu.Rows)
                {
                    // 済の行は赤くする
                    if (gridTokuisakiKensyu.Rows[rowCnt].Cells[9].Value.ToString().Trim().Equals("済"))
                    {
                        gridTokuisakiKensyu.Rows[rowCnt].DefaultCellStyle.ForeColor = Color.Red;
                    }
                    else
                    {
                        gridTokuisakiKensyu.Rows[rowCnt].DefaultCellStyle.ForeColor = Color.Empty;
                    }
                    rowCnt++;
                }
            }
            catch (Exception ex)
            {
                // エラーロギング
                new CommonException(ex);
                // エラーメッセージ表示
                BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_ERROR, "データ取得に失敗しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                basemessagebox.ShowDialog();
            }
        }