From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。
---
HotelPms.Client.Blazor/Models/SaleInputRow.cs | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 216 insertions(+), 0 deletions(-)
diff --git a/HotelPms.Client.Blazor/Models/SaleInputRow.cs b/HotelPms.Client.Blazor/Models/SaleInputRow.cs
new file mode 100644
index 0000000..8336fc8
--- /dev/null
+++ b/HotelPms.Client.Blazor/Models/SaleInputRow.cs
@@ -0,0 +1,216 @@
+using MudBlazor;
+using static HotelPms.Client.Blazor.Util.SystemEnum;
+using System.Xml.Linq;
+using System.Text.Json.Serialization;
+using HotelPms.Data.UseInfo;
+using HotelPms.Share.Util;
+using Microsoft.JSInterop;
+using HotelPms.Client.Blazor.Util;
+using Microsoft.VisualBasic;
+using System.Globalization;
+
+namespace HotelPms.Client.Blazor.Models
+{
+ /// <summary>
+ /// 売上伝票入力情報
+ /// </summary>
+ public class SaleInputRow : EditRow
+ {
+ public enum ColType : int
+ {
+ /// <summary>
+ /// 部屋タイプ(ReadOnly 全部選択時表示・部屋選択時非表示)
+ /// </summary>
+ RoomType = 0,
+ /// <summary>
+ /// 部屋番号(ReadOnly 全部選択時表示・部屋選択時非表示)
+ /// </summary>
+ RoomID,
+ /// <summary>
+ /// 科目名称
+ /// </summary>
+ ItemName,
+ /// <summary>
+ /// 人数
+ /// </summary>
+ PersonCount,
+ /// <summary>
+ /// 内女
+ /// </summary>
+ Woman,
+ /// <summary>
+ /// 単価
+ /// </summary>
+ UnitPrice,
+ /// <summary>
+ /// 割引(Endキーより、理由や%設定)
+ /// </summary>
+ DiscountSummary,
+ /// <summary>
+ /// 合計金額
+ /// </summary>
+ TotalSummary,
+ /// <summary>
+ /// 集計日
+ /// </summary>
+ SumDate,
+ /// <summary>
+ /// 頁
+ /// </summary>
+ Page,
+ /// <summary>
+ /// 詳細(ボタン)
+ /// </summary>
+ Detail,
+ /// <summary>
+ /// ソートキー(非表示)
+ /// </summary>
+ SortKey,
+ }
+ public SaleInputRow()
+ {
+ Cells.Add(new ViewModel.ValidField { Name = ColType.RoomType.ToString() });
+ Cells.Add(new ViewModel.ValidField { Name = ColType.RoomID.ToString() });
+ Cells.Add(new ViewModel.ValidField { Name = ColType.ItemName.ToString(), MaxLenth = 50, ShowStyle = EShowStyle.ShowList });
+ Cells.Add(new ViewModel.ValidField { Name = ColType.PersonCount.ToString(), MaxLenth = 3, InputChar = EInputChar.Num });
+ Cells.Add(new ViewModel.ValidField { Name = ColType.Woman.ToString(), MaxLenth = 3, InputChar = EInputChar.Num });
+ Cells.Add(new ViewModel.ValidField { Name = ColType.UnitPrice.ToString(), MaxLenth = 19, InputChar = EInputChar.Num });
+ Cells.Add(new ViewModel.ValidField { Name = ColType.DiscountSummary.ToString(), MaxLenth = 19, InputChar = EInputChar.Num, ShowStyle = EShowStyle.ShowList });
+ Cells.Add(new ViewModel.ValidField { Name = ColType.TotalSummary.ToString(), MaxLenth = 19, InputChar = EInputChar.Num });
+ Cells.Add(new ViewModel.ValidField { Name = ColType.SumDate.ToString(), MaxLenth = 10, InputChar = EInputChar.Num | EInputChar.Slash, ShowStyle = EShowStyle.ShowList });
+ Cells.Add(new ViewModel.ValidField { Name = ColType.Page.ToString(), MaxLenth = 3, InputChar = EInputChar.Num });
+ Cells.Add(new ViewModel.ValidField { Name = ColType.Detail.ToString(), MaxLenth = 3, InputChar = EInputChar.Num });
+ Cells.Add(new ViewModel.ValidField { Name = ColType.SortKey.ToString(), Disabled = true });
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (!disposing)
+ {
+ base.Dispose(false);
+ }
+ }
+
+ /// <summary>
+ /// 関連伝票情報
+ /// </summary>
+ [JsonIgnore(Condition = JsonIgnoreCondition.Always)]
+ public List<Sale> DataList { get; set; } = new List<Sale>();
+
+ /// <summary>
+ /// 一番若い伝票情報返す
+ /// </summary>
+ /// <returns></returns>
+ public Sale GetSale()
+ {
+ if (DataList.Count == 0) { return null; }
+ return DataList[0];
+ }
+
+ /// <summary>
+ /// 値変更あり
+ /// </summary>
+ /// <param name="inputText"></param>
+ /// <returns></returns>
+ public override bool IsValueChanged(int index, string inputText)
+ {
+ if (index == (int)ColType.ItemName)
+ {
+ if (DataList.Count == 0) { return inputText.Length > 0; } //新規行の場合、入力したら、変更あり
+ return inputText.CompareTo(DataList[0].ItemName) != 0;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ /// <summary>
+ /// DOMの表示値
+ /// </summary>
+ /// <param name="index"></param>
+ /// <param name="JSRuntime"></param>
+ /// <returns></returns>
+ public async Task<string> GetInputValue(int index, IJSRuntime JSRuntime)
+ {
+ return await Cells[index].Ref.GetInputValue(JSRuntime);
+ }
+
+ /// <summary>
+ /// 表示の値の復元
+ /// </summary>
+ /// <param name="index"></param>
+ public void RestoreText(SaleInputRow.ColType index)
+ {
+ SetCellText((int)index, GetDataField((int)index));
+ }
+
+ /// <summary>
+ /// データの値
+ /// </summary>
+ /// <param name="index"></param>
+ /// <returns></returns>
+ public string GetDataField(int index)
+ {
+ if (index == (int)ColType.ItemName)
+ {
+ return DataList.Count == 0 ? string.Empty : DataList[0].ItemName;
+ }
+ else
+ {
+ return string.Empty;
+ }
+ }
+
+ public void SetItem(HotelPms.Data.Master.Item item)
+ {
+ foreach (Sale sale in DataList)
+ {
+ sale.ItemID = item.ID;
+ sale.ItemName = item.Name;
+ sale.ItemKind = item.Kind;
+ }
+ }
+
+ public void SetDataField(int index, string inputText)
+ {
+ if (index == (int)ColType.ItemName)
+ {
+ foreach (Sale item in DataList)
+ {
+ item.ItemName = inputText;
+ }
+ }
+ else
+ {
+ }
+ }
+
+ /// <summary>
+ /// 売上伝票より表示データの作成
+ /// </summary>
+ /// <param name=""></param>
+ public async Task<bool> Add(Data.UseInfo.Sale item)
+ {
+ try
+ {
+ DataList.Add(item);
+ SetCellText((int)ColType.RoomType, await MasterCore.GetRoomTypeName((item.Parent as Data.UseInfo.UseRoom).RoomTypeID));
+ SetCellText((int)ColType.RoomID, (item.Parent as Data.UseInfo.UseRoom).RoomID.ToString());
+ SetCellText((int)ColType.ItemName, item.ItemName);
+ SetCellText((int)ColType.PersonCount, item.PersonCount.ToString());
+ SetCellText((int)ColType.Woman, item.InFemale.ToString());
+ SetCellText((int)ColType.UnitPrice, item.Price.ToText("N0"));
+ SetCellText((int)ColType.DiscountSummary, item.DiscountSummary.ToText("N0"));
+ SetCellText((int)ColType.TotalSummary, item.TotalSummary.ToText("N0"));
+ SetCellText((int)ColType.SumDate, item.UseDate.ToText());
+ SetCellText((int)ColType.Page, item.ReceiptPage.ToString());
+ return true;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+ }
+}
--
Gitblit v1.10.0