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/Pages/UseDetail/SaleInput.razor |  349 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 349 insertions(+), 0 deletions(-)

diff --git a/HotelPms.Client.Blazor/Pages/UseDetail/SaleInput.razor b/HotelPms.Client.Blazor/Pages/UseDetail/SaleInput.razor
new file mode 100644
index 0000000..8678006
--- /dev/null
+++ b/HotelPms.Client.Blazor/Pages/UseDetail/SaleInput.razor
@@ -0,0 +1,349 @@
+@using System.ComponentModel.DataAnnotations
+@using System.Text.RegularExpressions
+@using System.Reflection
+@using HotelPms.Client.Blazor.Models;
+@using HotelPms.Client.Blazor.ViewModel
+@using HotelPms.Data.Common
+@using HotelPms.Data.Common.Interface.Master
+@using HotelPms.DataAccessGrpc.Client
+@using HotelPms.Share.IO
+@using HotelPms.Share.Util
+@using ViewModel = HotelPms.Client.Blazor.ViewModel
+@using static HotelPms.Client.Blazor.Util.SystemEnum
+@inject IJSRuntime JSRuntime
+@inject IDialogService DialogService
+@inject ISnackbar Snackbar
+
+<MudCard Elevation="4">
+	<MudCardHeader>
+    	<CardHeaderContent>
+	        <MudText Typo="Typo.body1">Address Details for <strong>伝票</strong></MudText>
+            <MudButton Variant="Variant.Filled" StartIcon="@Icons.Filled.ReadMore" OnClick="Save">登録</MudButton>
+	    </CardHeaderContent>
+	</MudCardHeader>
+    <MudCardContent Class="mt-0 pt-0 mb-0 pb-3">
+        <MudTable Class="edit-grid pr-0" id="SaleInputTable" @ref="_table" T="SaleInputRow" Items="@Data.SaleList" Dense="true" Hover="true" ReadOnly="false" FixedHeader="true" Height="480px" Striped="true"
+                  @bind-SelectedItem="selectedItem1" Elevation = "0">
+            <ToolBarContent>
+                <MudText Typo="Typo.body1">伝票情報</MudText>
+                <MudTextField T="string" Margin="Margin.Dense" />
+                <MudSpacer />
+                <MudTextField @bind-Value="searchString" Margin="Margin.Dense" Placeholder="Search" Adornment="Adornment.Start" AdornmentIcon="@Icons.Material.Filled.Search" IconSize="Size.Medium" Class="mt-0"></MudTextField>
+            </ToolBarContent>
+            <ColGroup>
+                <col style="width:50px;" />
+                <col style="width:100px;" />
+                <col />
+                <col style="width:70px;" />
+                <col style="width:70px;" />
+                <col style="width:100px;" />
+                <col style="width:80px;" />
+                <col style="width:130px;" />
+                <col style="width:100px;" />
+                <col style="width:50px;" />
+                <col style="width:60px;" />
+            </ColGroup>
+            <HeaderContent>
+                <MudTh>TYPE</MudTh>
+                <MudTh>部屋No</MudTh>
+                <MudTh>科目名称</MudTh>
+                <MudTh Style="text-align:center">人数</MudTh>
+                <MudTh Style="text-align:center">内女</MudTh>
+                <MudTh>基本単価</MudTh>
+                <MudTh>割引</MudTh>
+                <MudTh Style="text-align:right">合計金額</MudTh>
+                <MudTh>集計日</MudTh>
+                <MudTh>頁</MudTh>
+                <MudTh>詳細</MudTh>
+            </HeaderContent>
+            <RowTemplate>
+                <MudTd DataLabel="TYPE">@context.Cells[(int)SaleInputRow.ColType.RoomType].Text</MudTd>
+                <MudTd DataLabel="部屋No">@context.Cells[(int)SaleInputRow.ColType.RoomID].Text</MudTd>
+                <MudTd DataLabel="科目名称" Class="slip-row pr-0 pl-1">
+                    <MudTextField class="input-pink" id="txtItemName" @ref="@context.Cells[(int)SaleInputRow.ColType.ItemName].Ref" @bind-Value="@context.Cells[(int)SaleInputRow.ColType.ItemName].Text" Margin="Margin.Dense" 
+                                  OnKeyPress="@(e => KeyPress((int)SaleInputRow.ColType.ItemName, context, e))"
+                                  KeyPressPreventDefault="@keyPressPreventDefault"
+                                  OnKeyDown="@(e => KeyDown((int)SaleInputRow.ColType.ItemName, context, e))" 
+                                  KeyDownPreventDefault="@keyDownPreventDefault"
+                                  OnBlur="@(e => Leave((int)SaleInputRow.ColType.ItemName, context, e))" 
+                                  @onfocus="(e => Enter((int)SaleInputRow.ColType.ItemName, context, e))" />
+                </MudTd>
+                <MudTd DataLabel="人数" Class="slip-row pr-0 pl-1">
+                    <MudTextField class="input-center" @ref="@context.Cells[(int)SaleInputRow.ColType.PersonCount].Ref" @bind-Value="@context.Cells[(int)SaleInputRow.ColType.PersonCount].Text" Margin="Margin.Dense"
+                                  OnKeyPress="@(e => KeyPress((int)SaleInputRow.ColType.PersonCount, context, e))" 
+                                  KeyPressPreventDefault="@keyPressPreventDefault"
+                                  OnKeyDown="@(e => KeyDown((int)SaleInputRow.ColType.PersonCount, context, e))" 
+                                  KeyDownPreventDefault="@keyDownPreventDefault"
+                                  OnBlur="@(e => Leave((int)SaleInputRow.ColType.PersonCount, context, e))" 
+                                  @onfocus="(e => Enter((int)SaleInputRow.ColType.PersonCount, context, e))" />
+                </MudTd>
+                <MudTd DataLabel="内女" Class="slip-row pr-0 pl-1">
+                    <MudTextField class="input-center" @ref="@context.Cells[(int)SaleInputRow.ColType.Woman].Ref" @bind-Value="@context.Cells[(int)SaleInputRow.ColType.Woman].Text" Margin="Margin.Dense" 
+                                  OnKeyPress="@(e => KeyPress((int)SaleInputRow.ColType.Woman, context, e))"
+                                  KeyPressPreventDefault="@keyPressPreventDefault"
+                                  OnKeyDown="@(e => KeyDown((int)SaleInputRow.ColType.Woman, context, e))"
+                                  KeyDownPreventDefault="@keyDownPreventDefault"
+                                  OnBlur="@(e => Leave((int)SaleInputRow.ColType.Woman, context, e))"
+                                  @onfocus="(e => Enter((int)SaleInputRow.ColType.Woman, context, e))" />
+                </MudTd>
+                <MudTd DataLabel="基本単価" Class="slip-row pr-0 pl-1">
+                    <MudTextField class="input-right" @ref="@context.Cells[(int)SaleInputRow.ColType.UnitPrice].Ref" @bind-Value="@context.Cells[(int)SaleInputRow.ColType.UnitPrice].Text" Margin="Margin.Dense" 
+                                  OnKeyPress="@(e => KeyPress((int)SaleInputRow.ColType.UnitPrice, context, e))"
+                                  KeyPressPreventDefault="@keyPressPreventDefault"
+                                  OnKeyDown="@(e => KeyDown((int)SaleInputRow.ColType.UnitPrice, context, e))"
+                                  KeyDownPreventDefault="@keyDownPreventDefault"
+                                  OnBlur="@(e => Leave((int)SaleInputRow.ColType.UnitPrice, context, e))"
+                                  @onfocus="(e => Enter((int)SaleInputRow.ColType.UnitPrice, context, e))" />
+                </MudTd>
+                <MudTd DataLabel="割引" Class="slip-row pr-0 pl-1">
+                    <MudTextField class="input-pink input-right" @ref="@context.Cells[(int)SaleInputRow.ColType.DiscountSummary].Ref" @bind-Value="@context.Cells[(int)SaleInputRow.ColType.DiscountSummary].Text" Margin="Margin.Dense" 
+                                  OnKeyPress="@(e => KeyPress((int)SaleInputRow.ColType.DiscountSummary, context, e))"
+                                  KeyPressPreventDefault="@keyPressPreventDefault"
+                                  OnKeyDown="@(e => KeyDown((int)SaleInputRow.ColType.DiscountSummary, context, e))"
+                                  KeyDownPreventDefault="@keyDownPreventDefault"
+                                  OnBlur="@(e => Leave((int)SaleInputRow.ColType.DiscountSummary, context, e))"
+                                  @onfocus="(e => Enter((int)SaleInputRow.ColType.DiscountSummary, context, e))" />
+                </MudTd>
+                <MudTd DataLabel="合計金額" Class="slip-row pr-0 pl-1">
+                    <MudTextField class="input-right" @ref="@context.Cells[(int)SaleInputRow.ColType.TotalSummary].Ref" ReadOnly="true" @bind-Value="@context.Cells[(int)SaleInputRow.ColType.TotalSummary].Text" Margin="Margin.Dense"
+                                  OnKeyPress="@(e => KeyPress((int)SaleInputRow.ColType.TotalSummary, context, e))"
+                                  KeyPressPreventDefault="@keyPressPreventDefault"
+                                  OnKeyDown="@(e => KeyDown((int)SaleInputRow.ColType.TotalSummary, context, e))"
+                                  KeyDownPreventDefault="@keyDownPreventDefault"
+                                  OnBlur="@(e => Leave((int)SaleInputRow.ColType.TotalSummary, context, e))"
+                    @onfocus="(e => Enter((int)SaleInputRow.ColType.TotalSummary, context, e))" />
+                </MudTd>
+                <MudTd DataLabel="集計日" Class="slip-row pr-0 pl-1">
+                    <MudTextField class="input-pink input-center" @ref="@context.Cells[(int)SaleInputRow.ColType.SumDate].Ref" @bind-Value="@context.Cells[(int)SaleInputRow.ColType.SumDate].Text" Margin="Margin.Dense" 
+                                  OnKeyPress="@(e => KeyPress((int)SaleInputRow.ColType.SumDate, context, e))"
+                                  KeyPressPreventDefault="@keyPressPreventDefault"
+                                  OnKeyDown="@(e => KeyDown((int)SaleInputRow.ColType.SumDate, context, e))"
+                                  KeyDownPreventDefault="@keyDownPreventDefault"
+                                  OnBlur="@(e => Leave((int)SaleInputRow.ColType.SumDate, context, e))"
+                                  @onfocus="(e => Enter((int)SaleInputRow.ColType.SumDate, context, e))" />
+                </MudTd>
+                <MudTd DataLabel="頁" Class="slip-row pr-0 pl-1">
+                    <MudTextField class="input-center" @ref="@context.Cells[(int)SaleInputRow.ColType.Page].Ref" @bind-Value="@context.Cells[(int)SaleInputRow.ColType.Page].Text" Margin="Margin.Dense" 
+                                  OnKeyPress="@(e => KeyPress((int)SaleInputRow.ColType.Page, context, e))"
+                                  KeyPressPreventDefault="@keyPressPreventDefault"
+                                  OnKeyDown="@(e => KeyDown((int)SaleInputRow.ColType.Page, context, e))"
+                                  KeyDownPreventDefault="@keyDownPreventDefault"
+                                  OnBlur="@(e => Leave((int)SaleInputRow.ColType.Page, context, e))"
+                                  @onfocus="(e => Enter((int)SaleInputRow.ColType.Page, context, e))" />
+                </MudTd>
+                <MudTd>
+                    <div style="display: flex; gap: 10px;">
+                        <MudTooltip Text="Commit Edit">
+                            <MudIconButton Size="Size.Small" Icon="@Icons.Filled.ReadMore" OnClick="@(e => DetailClick(context))"></MudIconButton>
+                        </MudTooltip>
+                    </div>
+                </MudTd>
+            </RowTemplate>
+            <ChildRowContent>
+                @if (context.ShowDetails)
+                {
+                    <MudTr>
+                        <td colspan="11">
+                        <MudCard Class="mt-2 ml-5 mr-2 mb-2" Elevation="1">
+                            <MudCardContent>
+                                @if (context.ActiveCol == (int)SaleInputRow.ColType.Detail)
+                                {
+                                    <MudGrid Spacing="3" Justify="Justify.FlexStart">
+                                    <MudItem lg="12" Class="mt-1 pt-1 mb-0 pb-0">
+                                        <MudStack Spacing="5" Row="true">
+                                            <MudText Typo="Typo.body2">パック明細情報</MudText>
+                                            <MudLink Href="#" Underline="Underline.Always" Typo="Typo.body2">追加</MudLink>
+                                        </MudStack>
+                                    </MudItem>
+                                    <MudItem lg="12" Class="mt-0 pt-0 mb-0 pb-0">
+                                        <MudTable id="SaleChildTable" Class="pr-0 mt-0 pt-0" Items="@SaleChildList" Dense="true" Hover="true" ReadOnly="true" Height="105px" Striped="true" HorizontalScrollbar="true" Elevation="0">
+                                            <ColGroup>
+                                                <col style="width:50px;" />
+                                                <col style="width:100px;" />
+                                                <col />
+                                                <col style="width:70px;" />
+                                                <col style="width:70px;" />
+                                                <col style="width:100px;" />
+                                                <col style="width:80px;" />
+                                                <col style="width:130px;" />
+                                                <col style="width:100px;" />
+                                                <col style="width:50px;" />
+                                            </ColGroup>
+                                            <HeaderContent>
+                                                <MudTh>TYPE</MudTh>
+                                                <MudTh>部屋No</MudTh>
+                                                <MudTh>科目名称</MudTh>
+                                                <MudTh Style="text-align:center">人数</MudTh>
+                                                <MudTh Style="text-align:center">内女</MudTh>
+                                                <MudTh>基本単価</MudTh>
+                                                <MudTh>割引</MudTh>
+                                                <MudTh Style="text-align:right">合計金額</MudTh>
+                                                <MudTh>集計日</MudTh>
+                                            </HeaderContent>
+                                            <RowTemplate Context = "childItem">
+                                                <MudTd DataLabel="TYPE" Class="table-row"><MudText Typo="Typo.body2">@childItem.Cells[(int)SaleChildRow.ColType.RoomType]</MudText></MudTd>
+                                                <MudTd DataLabel="部屋No">@childItem.Cells[(int)SaleChildRow.ColType.RoomID]</MudTd>
+                                                <MudTd DataLabel="科目名称">@childItem.Cells[(int)SaleChildRow.ColType.ItemName]</MudTd>
+                                                <MudTd DataLabel="人数">@childItem.Cells[(int)SaleChildRow.ColType.PersonCount]</MudTd>
+                                                <MudTd DataLabel="内女">@childItem.Cells[(int)SaleChildRow.ColType.Woman]</MudTd>
+                                                <MudTd DataLabel="基本単価">@childItem.Cells[(int)SaleChildRow.ColType.UnitPrice]</MudTd>
+                                                <MudTd DataLabel="割引">@childItem.Cells[(int)SaleChildRow.ColType.DiscountSummary]</MudTd>
+                                                <MudTd DataLabel="合計金額">@childItem.Cells[(int)SaleChildRow.ColType.TotalSummary]</MudTd>
+                                                <MudTd DataLabel="集計日">@childItem.Cells[(int)SaleChildRow.ColType.SumDate]</MudTd>
+                                                <MudTd>
+                                                </MudTd>
+                                            </RowTemplate>
+                                        </MudTable>
+                                        <MudDivider DividerType="DividerType.FullWidth" Class="my-1" />
+                                    </MudItem>
+                                        <MudItem lg="10" Class="mt-0 pt-0 mb-0 pb-0">
+                                        <MudGrid Spacing="3" Justify="Justify.FlexStart">
+                                            <MudItem lg="3">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart">
+                                                    <MudItem xs="9">
+                                                            <MudGrid Spacing="0" Justify="Justify.FlexStart">
+                                                                <MudItem xs="5">
+                                                                    <MudTextField Class="input-pink" @bind-Value="searchString" T="string" Label="サ料" AutoFocus="true" Margin="Margin.Dense" MaxLength="10" />
+                                                                </MudItem>
+                                                                <MudItem xs="7">
+                                                                    <MudField Margin="Margin.Dense">なし</MudField>
+                                                                </MudItem>
+                                                            </MudGrid>
+                                                    </MudItem>
+                                                    <MudItem xs="3">
+                                                        <MudTextField @bind-Value="searchString" T="string" Label="サ率" Margin="Margin.Dense" MaxLength="10" />
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="6">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart">
+                                                    <MudItem xs="5">
+                                                        <MudGrid Spacing="0" Justify="Justify.FlexStart">
+                                                            <MudItem xs="5">
+                                                                <MudTextField Class="input-pink" @bind-Value="searchString" T="string" Label="消費税" Margin="Margin.Dense" MaxLength="10" />
+                                                            </MudItem>
+                                                            <MudItem xs="7">
+                                                                <MudField Margin="Margin.Dense">なし</MudField>
+                                                            </MudItem>
+                                                        </MudGrid>                                                   
+                                                    </MudItem>
+                                                    <MudItem xs="2">
+                                                        <MudTextField @bind-Value="searchString" T="string" Label="税率" Margin="Margin.Dense" MaxLength="10" />
+                                                    </MudItem>
+                                                    <MudItem xs="5">
+                                                        <MudGrid Spacing="0" Justify="Justify.FlexStart">
+                                                            <MudItem xs="5">
+                                                                <MudTextField Class="input-pink" @bind-Value="searchString" T="string" Label="タイプ" Margin="Margin.Dense" MaxLength="10" />
+                                                            </MudItem>
+                                                            <MudItem xs="7">
+                                                                <MudField Margin="Margin.Dense">軽減税</MudField>
+                                                            </MudItem>
+                                                        </MudGrid>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="3">
+                                                <MudGrid Spacing="0" Justify="Justify.FlexStart">
+                                                    <MudItem xs="5">
+                                                            <MudTextField Class="input-pink" @bind-Value="searchString" T="string" Label="入湯税" Margin="Margin.Dense" MaxLength="10" />
+                                                    </MudItem>
+                                                    <MudItem xs="7">
+                                                        <MudField Margin="Margin.Dense">なし</MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12">
+                                                <MudGrid Spacing="3" Justify="Justify.FlexStart">
+                                                    <MudItem xs="4">
+                                                        <MudGrid Spacing="1" Justify="Justify.FlexStart">
+                                                            <MudItem xs="8">
+                                                                <MudGrid Spacing="0" Justify="Justify.FlexStart">
+                                                                    <MudItem xs="5">
+                                                                            <MudTextField Class="input-pink" @bind-Value="searchString" T="string" Label="宿泊税" Margin="Margin.Dense" MaxLength="10" />
+                                                                    </MudItem>
+                                                                    <MudItem xs="7">
+                                                                        <MudField Margin="Margin.Dense">なし</MudField>
+                                                                    </MudItem>
+                                                                </MudGrid>
+                                                            </MudItem>
+                                                            <MudItem xs="4">
+                                                                <MudTextField @bind-Value="searchString" T="string" Label="宿泊税額" Margin="Margin.Dense" MaxLength="10" />
+                                                            </MudItem>
+                                                        </MudGrid>
+                                                    </MudItem>
+                                                    <MudItem xs="3">
+                                                        <MudGrid Spacing="0" Justify="Justify.FlexStart">
+                                                            <MudItem xs="5">
+                                                                <MudTextField Class="input-pink" @bind-Value="searchString" T="string" Label="端数区分" Margin="Margin.Dense" MaxLength="10" />
+                                                            </MudItem>
+                                                            <MudItem xs="6">
+                                                                <MudField Margin="Margin.Dense">なし</MudField>
+                                                            </MudItem>
+                                                        </MudGrid>
+                                                    </MudItem>
+                                                    <MudItem xs="3">
+                                                        <MudGrid Spacing="0" Justify="Justify.FlexStart">
+                                                            <MudItem xs="5">
+                                                                <MudTextField Class="input-pink" @bind-Value="searchString" T="string" Label="印字区分" Margin="Margin.Dense" MaxLength="10" />
+                                                            </MudItem>
+                                                            <MudItem xs="7">
+                                                                <MudField Margin="Margin.Dense">なし</MudField>
+                                                            </MudItem>
+                                                        </MudGrid>
+                                                    </MudItem>
+                                                    <MudItem xs="2">
+                                                            <MudTextField Class="input-pink" @bind-Value="searchString" T="string" Label="集計日" Margin="Margin.Dense" MaxLength="7" />
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                        </MudGrid>
+                                    </MudItem>
+                                        <MudItem lg="2" Class="mt-0 pt-0 mb-0 pb-0">
+                                        <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="pt-2 pb-2">
+                                            @foreach(var feeItem in FeeDetailList)
+                                            {
+                                                <MudItem xs="5" Class="pt-0 pb-0">
+                                                    <MudText Typo="Typo.body1" Align="Align.Left">@feeItem.Name</MudText>
+                                                </MudItem>
+                                                    <MudItem xs="7" Class="pt-0 pb-0">
+                                                        <MudText Typo="Typo.body1" Align="Align.Right">@feeItem.Value</MudText>
+                                                </MudItem>
+                                            }
+                                        </MudGrid>
+                                    </MudItem>
+                                </MudGrid>
+                                }
+                                else if (context.ActiveCol == (int)SaleInputRow.ColType.ItemName)
+                                {
+                                        
+                                }
+                             </MudCardContent>
+                        </MudCard>
+                        </td>
+                        <td></td>
+                    </MudTr>
+                }
+            </ChildRowContent>
+        </MudTable>
+    </MudCardContent>
+</MudCard>
+
+<style>
+    div.slip-edit th:last-child {
+        display: none;
+    }
+
+    div.slip-edit td:last-child {
+        display: none;
+    }
+
+    div.slip-edit .mud-table-cell:nth-last-child(2) {
+    padding: 6px 2px 6px 16px;
+    padding-inline-start: 16px;
+    padding-inline-end: 2px;
+   }
+</style>
+
+@code {
+    private static RenderFragment RenderMessage(string text) =>@<MessageContext Text="@text" />;
+}
\ No newline at end of file

--
Gitblit v1.10.0