private async void Product_Delete_Button_Click(object sender, RoutedEventArgs e)
        {
            Enable_Toggle();
            var msgs = new ContentDialog();

            msgs.Title               = item._itemName + " のデータを削除します。";
            msgs.Content             = "この操作は取り消しできません。";
            msgs.PrimaryButtonText   = "OK";
            msgs.SecondaryButtonText = "Cancel";
            var result = await msgs.ShowAsync();

            if (result == ContentDialogResult.Primary)
            {
                // OKの場合
                DatabaseAccess db = new DatabaseAccess();
                if (db.Search_Item(item._janCode))
                {
                    db.Delete_Item(item._janCode);
                    db.Insert_Operation_Log(StaticParam._mID, "商品削除(JANコード = " + item._janCode + ", 商品名 = " + item._itemName + ", 価格 = " + item._price + ", 在庫数 = " + item._num + ")");
                    CheckFunction.Message_Show(item._itemName + " の削除に成功しました。", "");
                    Frame.Navigate(typeof(ProductListEditScreen));
                }
                else
                {
                    CheckFunction.Message_Show("Error", "DB上に対象のJANコードが存在しません。");
                }
            }
            else if (result == ContentDialogResult.Secondary)
            {
                // Cancelの場合
                Enable_Toggle();
                return;
            }
            else
            {
                Enable_Toggle();
                return;
            }
            Enable_Toggle();
            return;
        }
 // 登録確定イベント
 private void Registration_Decide_Button_Click(object sender, RoutedEventArgs e)
 {
     Enable_Toggle();
     try
     {
         DatabaseAccess db = new DatabaseAccess();
         // 1件ずつ処理
         foreach (Item regItem in Items)
         {
             if (db.Search_Item(regItem._janCode))
             {
                 // DB上に存在している場合
                 // →既登録されている在庫数を今回追加するデータに加えて上書き
                 // →流れとしては登録データを削除、在庫数他を更新して再登録
                 Item oldItem = db.Get_Item(regItem._janCode);
                 regItem._num += oldItem._num;
                 db.Delete_Item(regItem._janCode);
                 db.Insert_Item(regItem);
                 db.Insert_Operation_Log(StaticParam._mID, "商品在庫更新(JANコード = " + regItem._janCode + ", 商品名 = " + oldItem._itemName + "→" + regItem._itemName + ", 価格 = " + oldItem._price + "→" + regItem._price + ", 在庫数 = " + oldItem._num + "→" + regItem._num + ")");
             }
             else
             {
                 // DB上に存在していない場合
                 // →普通に登録
                 db.Insert_Item(regItem);
                 db.Insert_Operation_Log(StaticParam._mID, "商品登録(JANコード = " + regItem._janCode + ", 商品名 = " + regItem._itemName + ", 価格 = " + regItem._price + ", 在庫数 = " + regItem._num + ")");
             }
         }
         db.Insert_Charge_Log(StaticParam._mID, (StaticParam._usePrice * -1));
         CheckFunction.Message_Show("商品の登録に成功しました。", "");
         StaticParam._usePrice = 0;
         Frame.Navigate(typeof(MenuScreen));
     }
     catch {
         CheckFunction.Message_Show("Error", "DBの登録に失敗しました。");
         Enable_Toggle();
     }
 }
Example #3
0
        private void JANCODE_TEXT_KeyDown(object sender, KeyRoutedEventArgs e)
        {
            //Encoding Enc = Encoding.GetEncoding("");
            //if (Enc.GetByteCount(JANCODE_TEXT.Text) == JANCODE_TEXT.Text.Length * 2
            //JANCODE_TEXT.Text = Regex.Replace(JANCODE_TEXT.Text, "[0-9]", p => ((char)(p.Value[0] - '0' + '0')).ToString());
            if (e.Key == Windows.System.VirtualKey.Enter)
            {
                JANCODE_TEXT.IsReadOnly = true;
                if (!CheckFunction.JANCODE_Integrity_Check(JANCODE_TEXT.Text))
                {
                    JANCODE_TEXT.IsReadOnly = false;
                    CheckFunction.Message_Show("Error", "JANコードが正しくありません");
                    JANCODE_TEXT.Text = "";
                    return;
                }

                // 謎ポイント
                // 初回、if (Items.First(x => x._janCode == last_jan)._janCode == JANCODE_TEXT.Text)でマッチするレコードがなかった場合例外発生、2回目以降は例外は発生せずelseに飛ぶ
                // 応急措置として同じコードを書いています
                // いろいろおかしい
                try
                {
                    // リスト上に存在する場合
                    if (Items.First(x => x._janCode == JANCODE_TEXT.Text)._janCode == JANCODE_TEXT.Text)
                    {
                        last_jan = JANCODE_TEXT.Text;
                        Items.First(x => x._janCode == JANCODE_TEXT.Text)._num += 1;
                    }
                    else
                    {
                        // リスト上に存在しない場合
                        DatabaseAccess db = new DatabaseAccess();
                        if (db.Search_Item(JANCODE_TEXT.Text))
                        {
                            // DB既登録の場合
                            Item item = db.Get_Item(JANCODE_TEXT.Text);
                            item._num = 1;
                            last_jan  = JANCODE_TEXT.Text;
                            Items.Add(item);
                        }
                        else
                        {
                            // DB未登録の場合
                            CheckFunction.Message_Show("Error", "データベースに存在しない商品です。");
                        }
                    }
                }
                catch
                {
                    // リスト上に存在しない場合
                    DatabaseAccess db = new DatabaseAccess();
                    if (db.Search_Item(JANCODE_TEXT.Text))
                    {
                        // DB既登録の場合
                        Item item = db.Get_Item(JANCODE_TEXT.Text);
                        item._num = 1;
                        last_jan  = JANCODE_TEXT.Text;
                        Items.Add(item);
                    }
                    else
                    {
                        // DB未登録の場合
                        CheckFunction.Message_Show("Error", "データベースに存在しない商品です。");
                    }
                }


                // 処理完了後
                JANCODE_TEXT.Text       = "";
                JANCODE_TEXT.IsReadOnly = false;
            }
        }
        private void Edit_Decide_Button_Click(object sender, RoutedEventArgs e)
        {
            // 入力パラメータチェック
            if (janCode_TEXT.Text == "")
            {
                // JANコードが未入力です。
                CheckFunction.Message_Show("Error", "JANコードが未入力です。");
                return;
            }
            else if (itemName_TEXT.Text == "")
            {
                // 商品名が未入力です。
                CheckFunction.Message_Show("Error", "商品名が未入力です。");
                return;
            }
            else if (price_TEXT.Text == "")
            {
                // 価格が未入力です。
                CheckFunction.Message_Show("Error", "価格が未入力です。");
                return;
            }
            else if (num_TEXT.Text == "")
            {
                // 在庫が未選択です。
                CheckFunction.Message_Show("Error", "在庫が未入力です。");
                return;
            }
            else if (category_TEXT.SelectedIndex == 0)
            {
                // カテゴリが未選択です。
                CheckFunction.Message_Show("Error", "カテゴリが未選択です。");
                return;
            }

            // フォーマットチェック
            if (!CheckFunction.JANCODE_Integrity_Check(janCode_TEXT.Text))
            {
                CheckFunction.Message_Show("Error", "JANコードのフォーマットが間違っています。なんでこのエラー出たの?");
                return;
            }
            else if (!CheckFunction.itemName_Integrity_Check(itemName_TEXT.Text))
            {
                CheckFunction.Message_Show("Error", "登録できる商品名は50文字以下です。");
                return;
            }
            else if (!CheckFunction.price_Integrity_Check(price_TEXT.Text))
            {
                CheckFunction.Message_Show("Error", "登録できる価格は0~5000の値です。");
                return;
            }
            else if (!CheckFunction.num_Integrity_Check(num_TEXT.Text))
            {
                CheckFunction.Message_Show("Error", "登録できる在庫数は0~200の値です。");
                return;
            }

            Enable_Toggle();
            DatabaseAccess db = new DatabaseAccess();

            if (db.Search_Item(item._janCode))
            {
                db.Delete_Item(item._janCode);
                Item add_item = new Item(janCode_TEXT.Text, itemName_TEXT.Text, category_TEXT.SelectedIndex, int.Parse(price_TEXT.Text), int.Parse(num_TEXT.Text));
                db.Insert_Item(add_item);
                db.Insert_Operation_Log(StaticParam._mID, "商品情報更新(JANコード = " + add_item._janCode + ", 商品名 = " + item._itemName + "→" + add_item._itemName + ", 価格 = " + item._price + "→" + add_item._price + ", 在庫数 = " + item._num + "→" + add_item._num + ")");
                CheckFunction.Message_Show(add_item._itemName + " の情報を更新しました。", "");
                Frame.Navigate(typeof(ProductListEditScreen));
            }
            else
            {
                CheckFunction.Message_Show("Error", "DB上に対象となるJANコードが存在しません。");
                Enable_Toggle();
                return;
            }
        }
        private async void JANCODE_TEXT_KeyDown(object sender, KeyRoutedEventArgs e)
        {
            if (e.Key == Windows.System.VirtualKey.Enter)
            {
                JANCODE_TEXT.IsReadOnly = true;
                if (!CheckFunction.JANCODE_Integrity_Check(JANCODE_TEXT.Text))
                {
                    JANCODE_TEXT.IsReadOnly = false;
                    CheckFunction.Message_Show("Error", "JANコードが正しくありません");
                    JANCODE_TEXT.Text = "";
                    return;
                }

                try
                {
                    string s = await RakutenSearchAPI.JAN_Search(JANCODE_TEXT.Text);

                    Candidate_Set(s);
                }
                catch {
                    JANCODE_TEXT.Text = "";
                    return;
                }
                finally{
                }

                // 謎ポイント
                // 初回、if (Items.First(x => x._janCode == last_jan)._janCode == JANCODE_TEXT.Text)でマッチするレコードがなかった場合例外発生、2回目以降は例外は発生せずelseに飛ぶ
                // 応急措置として同じコードを書いています
                // いろいろおかしい
                try
                {
                    // リスト上に存在する場合
                    if (Items.First(x => x._janCode == JANCODE_TEXT.Text)._janCode == JANCODE_TEXT.Text)
                    {
                        last_jan = JANCODE_TEXT.Text;
                        Items.First(x => x._janCode == JANCODE_TEXT.Text)._num += 1;
                    }
                    else
                    {
                        DatabaseAccess db = new DatabaseAccess();
                        if (db.Search_Item(JANCODE_TEXT.Text))
                        {
                            // DB既登録の場合
                            Item item = db.Get_Item(JANCODE_TEXT.Text);
                            item._num = 1;
                            last_jan  = JANCODE_TEXT.Text;
                            Items.Add(item);
                        }
                        else
                        {
                            // DB未登録の場合
                            Item item = new Item(JANCODE_TEXT.Text, "", 0, 0, 1);
                            last_jan = JANCODE_TEXT.Text;
                            Items.Add(item);
                        }
                    }
                }catch {
                    DatabaseAccess db = new DatabaseAccess();
                    if (db.Search_Item(JANCODE_TEXT.Text))
                    {
                        // DB既登録の場合
                        Item item = db.Get_Item(JANCODE_TEXT.Text);
                        item._num = 1;
                        last_jan  = JANCODE_TEXT.Text;
                        Items.Add(item);
                    }
                    else
                    {
                        // DB未登録の場合
                        Item item = new Item(JANCODE_TEXT.Text, "", 0, 0, 1);
                        last_jan = JANCODE_TEXT.Text;
                        Items.Add(item);
                    }
                }

                //DatabaseAccess db = new DatabaseAccess();
                //db.Insert_Item(item);

                // 処理完了後
                JANCODE_TEXT.Text       = "";
                JANCODE_TEXT.IsReadOnly = false;
            }
        }