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(); } }
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; } }