From e87457cc79332219d1ce81896e4cc3562e449e25 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 7 Sep 2023 01:57:37 +0900 Subject: [PATCH] =?UTF-8?q?C#=207=20->=20C#=2012=20=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DBRegister/DBRegister.csproj | 372 +++++------ DBRegister/Program.cs | 7 +- DBRegister/Properties/AssemblyInfo.cs | 2 +- DBRegister/Properties/Resources.Designer.cs | 58 +- DBRegister/Properties/Resources.resx | 230 +++---- DBRegister/Properties/Settings.Designer.cs | 19 +- DBRegister/Properties/Settings.settings | 8 +- DBRegister/Sources/MainForm.resx | 120 ---- DBRegister/Sources/RegistedList.cs | 29 +- DBRegister/Sources/RegistedList.resx | 243 +++---- DBRegister/Sources/RegistedUser.cs | 4 +- DBRegister/Sources/RegistedUser.resx | 236 +++---- ....Designer.cs => TopScreenForm.Designer.cs} | 4 +- .../Sources/{MainForm.cs => TopScreenForm.cs} | 86 +-- DBRegister/Sources/TopScreenForm.resx | 126 ++++ DBRegister/app.config | 74 ++- DBRegister/packages.config | 10 +- KidsPosDLL/App.config | 59 +- KidsPosDLL/KidsPosDLL.csproj | 234 +++---- KidsPosDLL/Properties/AssemblyInfo.cs | 2 +- KidsPosDLL/Sources/BarcodeObject.cs | 27 +- KidsPosDLL/Sources/Config.cs | 14 +- .../Sources/Database/ItemGenreObject.cs | 15 +- KidsPosDLL/Sources/Database/ItemObject.cs | 23 +- KidsPosDLL/Sources/Database/RecordObject.cs | 12 +- KidsPosDLL/Sources/Database/SaleObject.cs | 36 +- KidsPosDLL/Sources/Database/StaffObject.cs | 8 +- KidsPosDLL/Sources/Database/StoreObject.cs | 15 +- KidsPosDLL/Sources/PrintItemObject.cs | 9 +- KidsPosDLL/Sources/Setting/BarcodeConfig.cs | 2 +- KidsPosDLL/Sources/Setting/Database.cs | 45 +- KidsPosDLL/Sources/Setting/PosInformation.cs | 17 +- KidsPosDLL/Sources/Util/Barcode.cs | 7 +- KidsPosDLL/Sources/Util/CSV.cs | 31 +- KidsPosDLL/Sources/Util/Database.cs | 60 +- KidsPosDLL/Sources/Util/Print.cs | 158 ++--- KidsPosDLL/Sources/Util/SocketBase.cs | 25 +- KidsPosDLL/Sources/Util/SocketClient.cs | 25 +- KidsPosDLL/Sources/Util/SocketServer.cs | 38 +- KidsPosDLL/Sources/Util/Time.cs | 3 +- KidsPosDLL/packages.config | 12 +- PosSystem.sln | 1 + PosSystem/PosSystem.csproj | 451 ++++++------- PosSystem/Program.cs | 4 +- PosSystem/Properties/AssemblyInfo.cs | 2 +- PosSystem/Properties/Resources.Designer.cs | 58 +- PosSystem/Properties/Resources.resx | 230 +++---- PosSystem/Properties/Settings.Designer.cs | 19 +- PosSystem/Properties/Settings.settings | 8 +- PosSystem/Sources/Account.cs | 53 +- PosSystem/Sources/Account.resx | 236 +++---- PosSystem/Sources/AccountChange.cs | 6 +- PosSystem/Sources/AccountChange.resx | 600 +++++++++--------- PosSystem/Sources/ItemList.cs | 12 +- PosSystem/Sources/ItemList.resx | 236 +++---- PosSystem/Sources/MainForm.cs | 145 +++-- PosSystem/Sources/MainForm.resx | 278 ++++---- PosSystem/Sources/Sales.cs | 24 +- PosSystem/Sources/Sales.resx | 236 +++---- PosSystem/Sources/SalesList.cs | 14 +- PosSystem/Sources/SalesList.resx | 236 +++---- PosSystem/Sources/StaffRegistWindow.cs | 11 +- PosSystem/Sources/StaffRegistWindow.resx | 236 +++---- PosSystem/app.config | 78 ++- PosSystem/packages.config | 20 +- 65 files changed, 2973 insertions(+), 2726 deletions(-) delete mode 100644 DBRegister/Sources/MainForm.resx rename DBRegister/Sources/{MainForm.Designer.cs => TopScreenForm.Designer.cs} (99%) rename DBRegister/Sources/{MainForm.cs => TopScreenForm.cs} (82%) create mode 100644 DBRegister/Sources/TopScreenForm.resx diff --git a/DBRegister/DBRegister.csproj b/DBRegister/DBRegister.csproj index fb431fc..f47c4f5 100644 --- a/DBRegister/DBRegister.csproj +++ b/DBRegister/DBRegister.csproj @@ -1,188 +1,192 @@  - - - Debug - x86 - 8.0.30703 - 2.0 - {A10E6D7A-8166-4792-8178-6899564E7ECB} - WinExe - Properties - DBRegister - DBRegister - v4.0 - 512 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - - - x86 - true - full - false - output\ - DEBUG;TRACE - prompt - 4 - - - x86 - pdbonly - true - output\ - TRACE - prompt - 4 - - - - ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.dll - - - ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.SqlServer.dll - - - - - - - - - ..\packages\System.Data.SQLite.Core.1.0.105.2\lib\net40\System.Data.SQLite.dll - - - ..\packages\System.Data.SQLite.EF6.1.0.105.2\lib\net40\System.Data.SQLite.EF6.dll - - - ..\packages\System.Data.SQLite.Linq.1.0.105.2\lib\net40\System.Data.SQLite.Linq.dll - - - - - - - - - - ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.dll - - - ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.presentation.dll - - - - - Form - - - MainForm.cs - - - - - Form - - - RegistedList.cs - - - Form - - - RegistedUser.cs - - - MainForm.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - RegistedList.cs - - - RegistedUser.cs - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - False - Microsoft .NET Framework 4 %28x86 および x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows インストーラー 3.1 - true - - - - - {dd100c66-ddb6-4a3f-a421-8a02a9e92484} - KidsPosDLL - - - - - - - - - + - このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。 + Debug + x86 + 8.0.30703 + 2.0 + {A10E6D7A-8166-4792-8178-6899564E7ECB} + WinExe + Properties + DBRegister + DBRegister + v4.8 + 512 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + latest + enable - - - + + x86 + true + full + false + output\ + DEBUG;TRACE + prompt + 4 + false + + + x86 + pdbonly + true + output\ + TRACE + prompt + 4 + false + + + + ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.dll + + + ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.SqlServer.dll + + + + + + + + + ..\packages\System.Data.SQLite.Core.1.0.105.2\lib\net40\System.Data.SQLite.dll + + + ..\packages\System.Data.SQLite.EF6.1.0.105.2\lib\net40\System.Data.SQLite.EF6.dll + + + ..\packages\System.Data.SQLite.Linq.1.0.105.2\lib\net40\System.Data.SQLite.Linq.dll + + + + + + + + + + ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.dll + + + ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.presentation.dll + + + + + Form + + + TopScreenForm.cs + + + + + Form + + + RegistedList.cs + + + Form + + + RegistedUser.cs + + + TopScreenForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + RegistedList.cs + + + RegistedUser.cs + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + Microsoft .NET Framework 4 %28x86 および x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows インストーラー 3.1 + true + + + + + {dd100c66-ddb6-4a3f-a421-8a02a9e92484} + KidsPosDLL + + + + + + + + + + + このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。 + + + + \ No newline at end of file diff --git a/DBRegister/Program.cs b/DBRegister/Program.cs index f83cb50..a42a613 100644 --- a/DBRegister/Program.cs +++ b/DBRegister/Program.cs @@ -1,19 +1,20 @@ using System; using System.Windows.Forms; +using DBRegister.Sources; namespace DBRegister { internal static class Program { /// - /// アプリケーションのメイン エントリ ポイントです。 + /// アプリケーションのメイン エントリ ポイントです。 /// [STAThread] private static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new MainForm()); + Application.Run(new TopScreenForm()); } } -} +} \ No newline at end of file diff --git a/DBRegister/Properties/AssemblyInfo.cs b/DBRegister/Properties/AssemblyInfo.cs index 45e4f33..08280c9 100644 --- a/DBRegister/Properties/AssemblyInfo.cs +++ b/DBRegister/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ // 既定値にすることができます: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/DBRegister/Properties/Resources.Designer.cs b/DBRegister/Properties/Resources.Designer.cs index 06eac4f..a5bb8b9 100644 --- a/DBRegister/Properties/Resources.Designer.cs +++ b/DBRegister/Properties/Resources.Designer.cs @@ -1,50 +1,44 @@ //------------------------------------------------------------------------------ // -// このコードはツールによって生成されました。 -// ランタイム バージョン:4.0.30319.18063 +// This code was generated by a tool. // -// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 -// コードが再生成されるときに損失したりします。 +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ -using System.CodeDom.Compiler; -using System.ComponentModel; -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using System.Globalization; -using System.Resources; -using System.Runtime.CompilerServices; - namespace DBRegister.Properties { + using System; + + /// - /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。 + /// A strongly-typed resource class, for looking up localized strings, etc. /// - // このクラスは StronglyTypedResourceBuilder クラスが ResGen - // または Visual Studio のようなツールを使用して自動生成されました。 - // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に - // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。 - [GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [DebuggerNonUserCode()] - [CompilerGenerated()] + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { - private static ResourceManager resourceMan; + private static global::System.Resources.ResourceManager resourceMan; - private static CultureInfo resourceCulture; + private static global::System.Globalization.CultureInfo resourceCulture; - [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal Resources() { } /// - /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。 + /// Returns the cached ResourceManager instance used by this class. /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - internal static ResourceManager ResourceManager { + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { get { - if (ReferenceEquals(resourceMan, null)) { - var temp = new ResourceManager("DBRegister.Properties.Resources", typeof(Resources).Assembly); + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DBRegister.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; @@ -52,11 +46,11 @@ internal static ResourceManager ResourceManager { } /// - /// 厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、 - /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。 + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - internal static CultureInfo Culture { + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } diff --git a/DBRegister/Properties/Resources.resx b/DBRegister/Properties/Resources.resx index af7dbeb..3627ee6 100644 --- a/DBRegister/Properties/Resources.resx +++ b/DBRegister/Properties/Resources.resx @@ -1,117 +1,123 @@  - - - - - - + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/DBRegister/Properties/Settings.Designer.cs b/DBRegister/Properties/Settings.Designer.cs index 9c76bd7..fe78761 100644 --- a/DBRegister/Properties/Settings.Designer.cs +++ b/DBRegister/Properties/Settings.Designer.cs @@ -1,25 +1,20 @@ //------------------------------------------------------------------------------ // -// このコードはツールによって生成されました。 -// ランタイム バージョン:4.0.30319.18063 +// This code was generated by a tool. // -// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 -// コードが再生成されるときに損失したりします。 +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ -using System.CodeDom.Compiler; -using System.Configuration; -using System.Runtime.CompilerServices; - namespace DBRegister.Properties { - [CompilerGenerated()] - [GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] - internal sealed partial class Settings : ApplicationSettingsBase { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - private static Settings defaultInstance = ((Settings)(Synchronized(new Settings()))); + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); public static Settings Default { get { diff --git a/DBRegister/Properties/Settings.settings b/DBRegister/Properties/Settings.settings index 3964565..796d34b 100644 --- a/DBRegister/Properties/Settings.settings +++ b/DBRegister/Properties/Settings.settings @@ -1,7 +1,7 @@  - - - - + + + + diff --git a/DBRegister/Sources/MainForm.resx b/DBRegister/Sources/MainForm.resx deleted file mode 100644 index 7080a7d..0000000 --- a/DBRegister/Sources/MainForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/DBRegister/Sources/RegistedList.cs b/DBRegister/Sources/RegistedList.cs index eb1e292..c0af79e 100644 --- a/DBRegister/Sources/RegistedList.cs +++ b/DBRegister/Sources/RegistedList.cs @@ -12,8 +12,14 @@ namespace DBRegister { public partial class RegistedList : Form { + private readonly DataTable _dataTable = new DataTable(); + private readonly DataTable _dataTable2 = new DataTable(); + private readonly DataTable _dataTable3 = new DataTable(); + private readonly DataTable _dataTable4 = new DataTable(); private readonly List _selectedItem = new List(); + private int _count; + public RegistedList() { InitializeComponent(); @@ -25,10 +31,7 @@ public RegistedList() dataGridView3.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dataGridView4.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; } - private readonly DataTable _dataTable = new DataTable(); - private readonly DataTable _dataTable2 = new DataTable(); - private readonly DataTable _dataTable3 = new DataTable(); - private readonly DataTable _dataTable4 = new DataTable(); + protected override void OnLoad(EventArgs e) { dataGridView1.DataSource = _dataTable; @@ -37,19 +40,20 @@ protected override void OnLoad(EventArgs e) dataGridView4.DataSource = _dataTable4; base.OnLoad(e); } + private void Registed_List_Load(object sender, EventArgs e) { var db = new Database(); db.InsertView(_dataTable, - "SELECT il.id,il.barcode AS バーコード,sk.Name AS お店, il.Name AS 商品名,ig.Name AS ジャンル,il.price AS 値段 FROM " - + TableList.Item + " AS il," - + TableList.ItemGenre + " AS ig," + TableList.Store +" AS sk WHERE il.genre = ig.id AND il.shop = sk.id;"); + "SELECT il.id,il.barcode AS バーコード,sk.Name AS お店, il.Name AS 商品名,ig.Name AS ジャンル,il.price AS 値段 FROM " + + TableList.Item + " AS il," + + TableList.ItemGenre + " AS ig," + TableList.Store + + " AS sk WHERE il.genre = ig.id AND il.shop = sk.id;"); db.InsertView(_dataTable2); db.InsertView(_dataTable3); db.InsertView(_dataTable4); } - private int _count; private void printDocument1_PrintPage(object sender, PrintPageEventArgs e) { Print.GetInstance().PrintItemBarcode(_selectedItem[_count], print_grid.Checked, e); @@ -65,8 +69,8 @@ private void button2_Click(object sender, EventArgs e) var li = new List(); var db = new Database(); foreach (DataGridViewCell r in dataGridView2.SelectedCells) - { - if(0 > li.BinarySearch(r.RowIndex)){ + if (0 > li.BinarySearch(r.RowIndex)) + { var index = r.RowIndex; li.Add(r.RowIndex); li.Sort(); @@ -79,7 +83,7 @@ private void button2_Click(object sender, EventArgs e) dataGridView2.Rows[index].Cells[2].Value.ToString(), store.Name)); } - } + if (_selectedItem.Count > 0) { var pd = new PrintDocument(); @@ -104,6 +108,7 @@ private void button1_Click(object sender, EventArgs e) r.Cells[2].Value.ToString(), store.Name)); } + if (_selectedItem.Count > 0) { var pd = new PrintDocument(); @@ -115,4 +120,4 @@ private void button1_Click(object sender, EventArgs e) } } } -} +} \ No newline at end of file diff --git a/DBRegister/Sources/RegistedList.resx b/DBRegister/Sources/RegistedList.resx index d67e863..b16e4ee 100644 --- a/DBRegister/Sources/RegistedList.resx +++ b/DBRegister/Sources/RegistedList.resx @@ -1,123 +1,130 @@  - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + 17, 17 + \ No newline at end of file diff --git a/DBRegister/Sources/RegistedUser.cs b/DBRegister/Sources/RegistedUser.cs index 9822a7a..f183b3a 100644 --- a/DBRegister/Sources/RegistedUser.cs +++ b/DBRegister/Sources/RegistedUser.cs @@ -9,6 +9,7 @@ namespace DBRegister public partial class RegistedUser : Form { private readonly DataTable _table = new DataTable(); + public RegistedUser() { InitializeComponent(); @@ -22,9 +23,10 @@ protected override void OnLoad(EventArgs e) mGridView.DataSource = _table; base.OnLoad(e); } + private void RegistedUser_Load(object sender, EventArgs e) { new Database().InsertView(_table); } } -} +} \ No newline at end of file diff --git a/DBRegister/Sources/RegistedUser.resx b/DBRegister/Sources/RegistedUser.resx index 7080a7d..07f66d5 100644 --- a/DBRegister/Sources/RegistedUser.resx +++ b/DBRegister/Sources/RegistedUser.resx @@ -1,120 +1,126 @@  - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/DBRegister/Sources/MainForm.Designer.cs b/DBRegister/Sources/TopScreenForm.Designer.cs similarity index 99% rename from DBRegister/Sources/MainForm.Designer.cs rename to DBRegister/Sources/TopScreenForm.Designer.cs index ac3bbf8..54ed2cd 100644 --- a/DBRegister/Sources/MainForm.Designer.cs +++ b/DBRegister/Sources/TopScreenForm.Designer.cs @@ -3,9 +3,9 @@ using System.Drawing; using System.Windows.Forms; -namespace DBRegister +namespace DBRegister.Sources { - partial class MainForm + partial class TopScreenForm { /// /// 必要なデザイナー変数です。 diff --git a/DBRegister/Sources/MainForm.cs b/DBRegister/Sources/TopScreenForm.cs similarity index 82% rename from DBRegister/Sources/MainForm.cs rename to DBRegister/Sources/TopScreenForm.cs index 72fc51e..d1778ac 100644 --- a/DBRegister/Sources/MainForm.cs +++ b/DBRegister/Sources/TopScreenForm.cs @@ -11,9 +11,9 @@ using KidsPos.Util; using Microsoft.VisualBasic.FileIO; -namespace DBRegister +namespace DBRegister.Sources { - public partial class MainForm : Form + public partial class TopScreenForm : Form { public enum LoadType { @@ -21,7 +21,7 @@ public enum LoadType User } - public MainForm() + public TopScreenForm() { InitializeComponent(); new Database().CreateTable(); @@ -31,16 +31,17 @@ public MainForm() PosInformation.GetInstance().Init(this); } + private int CntSuccess { get; set; } + private int CntMissing { get; set; } + private void Form1_Load(object sender, EventArgs e) { - var dt = DateTime.Now; - var stPrompt1 = dt.ToString("yyyy"); - lKidsDate.Text = stPrompt1 + @" 年のキッズ用に登録されます" + Environment.NewLine; - lKidsDate.Text += @"出力ユーザバーコード例: " + BarcodeConfig.Prefix + - BarcodeConfig.Staff + stPrompt1.Substring(2) + @"0001" + - Environment.NewLine; - lKidsDate.Text += @"出力商品バーコード例 : " + BarcodeConfig.Prefix + - BarcodeConfig.Item + @"010001"; + var currentYear = DateTime.Now.ToString("yyyy"); + lKidsDate.Text = $""" + {currentYear} 年のキッズ用に登録されます + 出力ユーザバーコード例: {BarcodeConfig.Prefix}{BarcodeConfig.Staff}{currentYear.Substring(2)}0001 + 出力商品バーコード例 : {BarcodeConfig.Prefix}{BarcodeConfig.Item}010001 + """; } private void load_csv_file_Click(object sender, EventArgs e) @@ -53,10 +54,7 @@ private void button2_Click(object sender, EventArgs e) load_csv(LoadType.User); } - public int CntSuccess { get; private set; } - public int CntMissing { get; private set; } - - public void load_csv(LoadType type) + private void load_csv(LoadType type) { var al = new ArrayList(); @@ -76,21 +74,19 @@ public void load_csv(LoadType type) { // 1行読み込み var row = parser.ReadFields(); - + switch (type) { case LoadType.Item: if (row != null) - { foreach (var field in row) { var f = field; f = f.Replace("\r\n", "n"); f = f.Replace(" ", ""); if (f != "") al.Add(f); - } - } + break; case LoadType.User: if (row != null && CheckFormatUser(row)) @@ -104,16 +100,20 @@ public void load_csv(LoadType type) { CntMissing++; } + break; + default: + throw new ArgumentOutOfRangeException(nameof(type), type, null); } } + switch (type) { case LoadType.Item: RegistItem(al); break; case LoadType.User: - RegistUser(al); + RegistrationUser(al); break; } } @@ -138,9 +138,10 @@ public bool RegistItem(ArrayList csv) storePosition = i; break; } - if (storePosition == -1)throw new InvalidDataException(); + + if (storePosition == -1) throw new InvalidDataException(); var storeName = csv[storePosition + 1].ToString(); - int storeNum = db.find_store(storeName); + var storeNum = db.find_store(storeName); if (storeNum == -1) { isFirst = true; @@ -164,35 +165,30 @@ public bool RegistItem(ArrayList csv) //商品ジャンルの行から、商品リストまでの行を読み取って、その間をデータベースに追加する。 var itemPosition = -1; for (var i = storePosition; i < csv.Count; i++) - { if (csv[i].ToString().StartsWith("#商品ジャンル")) { itemPosition = i; break; } - } + var itemList = -1; for (var i = storePosition; i < csv.Count; i++) - { if (csv[i].ToString().StartsWith("##商品リスト")) { itemList = i; break; } - } if (itemPosition == itemList) throw new InvalidDataException(); - + var g = db.SelectMulti($"WHERE store = '{storeNum}'").Select(_ => _.Name).ToList(); var tempGenre = new List(); for (var i = itemPosition + 1; i < itemList; i++) { var genreName = csv[i].ToString(); - if (g.IndexOf(genreName) == -1) - { - tempGenre.Add(new ItemGenreObject(genreName, storeNum)); - } + if (g.IndexOf(genreName) == -1) tempGenre.Add(new ItemGenreObject(genreName, storeNum)); } + db.Insert(tempGenre); /* ---- ここまで ジャンルの追加 ---- */ @@ -206,6 +202,7 @@ public bool RegistItem(ArrayList csv) itemPosition = i; break; } + if (itemPosition == -1) throw new InvalidDataException(); var columnCount = 0; @@ -214,6 +211,7 @@ public bool RegistItem(ArrayList csv) if (!csv[i].ToString().StartsWith("#")) continue; columnCount++; } + if (columnCount == 0) throw new InvalidDataException(); var list = new List(); var count = db.Count(); @@ -222,25 +220,23 @@ public bool RegistItem(ArrayList csv) var name = csv[i].ToString(); var genreName = csv[i + 1].ToString(); var price = Convert.ToInt32(csv[i + 2].ToString()); - int itemNum = db.find_item(name, price, storeNum); + var itemNum = db.find_item(name, price, storeNum); if (itemNum == -1) { count++; if (db.find_ganre(genreName, storeNum) == -1) { //商品登録の時に、変なジャンルが混ざってたら・・・ - var dr = MessageBox.Show(@"未定義のジャンルがありました。追加しますか?" + Environment.NewLine + csv[i + 1], @"読み込みエラー", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + var dr = MessageBox.Show(@"未定義のジャンルがありました。追加しますか?" + Environment.NewLine + csv[i + 1], + @"読み込みエラー", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr == DialogResult.Yes) - { db.Insert(new ItemGenreObject(csv[i * 1].ToString(), storeNum)); - } else - { continue; - } } + list.Add(new ItemObject( - new BarcodeObject(storeNum, count).Barcode, //barcode + new BarcodeObject(storeNum, count).Barcode, //barcode name, //name price, //price storeNum, //shop @@ -248,6 +244,7 @@ public bool RegistItem(ArrayList csv) ); } } + db.Insert(list); /* ---- ここまで 商品リストの追加 ---- */ } @@ -258,20 +255,23 @@ public bool RegistItem(ArrayList csv) @"・CSV形式であるか" + Environment.NewLine + @"・しっかりフォーマットに沿っているか" + Environment.NewLine + @"を確認してください", @"読み込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Question - ); + ); return false; } finally { - if(isFirst) MessageBox.Show(@"何らかの原因で登録できませんでした。"); + if (isFirst) MessageBox.Show(@"何らかの原因で登録できませんでした。"); else MessageBox.Show(@"何らかの原因で登録できませんでした。"); } + return true; } - public void RegistUser(ArrayList csv) + + public void RegistrationUser(ArrayList csv) { var result = new Database() - .Insert((from string row in csv select row.Split(',') into s select new StaffObject(s[0], s[1])).ToList()); + .Insert( + (from string row in csv select row.Split(',') into s select new StaffObject(s[0], s[1])).ToList()); MessageBox.Show(result ? @"商品リストを更新しました" : @"??"); } @@ -289,4 +289,4 @@ private void button3_Click(object sender, EventArgs e) rl.Dispose(); } } -} +} \ No newline at end of file diff --git a/DBRegister/Sources/TopScreenForm.resx b/DBRegister/Sources/TopScreenForm.resx new file mode 100644 index 0000000..07f66d5 --- /dev/null +++ b/DBRegister/Sources/TopScreenForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + \ No newline at end of file diff --git a/DBRegister/app.config b/DBRegister/app.config index c38b993..a490781 100644 --- a/DBRegister/app.config +++ b/DBRegister/app.config @@ -1,35 +1,45 @@  - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DBRegister/packages.config b/DBRegister/packages.config index 07ddef7..0ada70e 100644 --- a/DBRegister/packages.config +++ b/DBRegister/packages.config @@ -1,8 +1,8 @@  - - - - - + + + + + \ No newline at end of file diff --git a/KidsPosDLL/App.config b/KidsPosDLL/App.config index 2d46953..afdde09 100644 --- a/KidsPosDLL/App.config +++ b/KidsPosDLL/App.config @@ -1,24 +1,37 @@ - + - - -
- - - - - - - - - - - - - - - - - - - \ No newline at end of file + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/KidsPosDLL/KidsPosDLL.csproj b/KidsPosDLL/KidsPosDLL.csproj index aca6d47..9ba96a3 100644 --- a/KidsPosDLL/KidsPosDLL.csproj +++ b/KidsPosDLL/KidsPosDLL.csproj @@ -1,119 +1,123 @@  - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {DD100C66-DDB6-4A3F-A421-8A02A9E92484} - Library - Properties - KidsPos - KidsPos - v4.0 - 512 - - - - - - true - full - false - output\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - output\ - TRACE - prompt - 4 - - - false - - - - ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.dll - - - ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.SqlServer.dll - - - - - - - ..\packages\System.Data.SQLite.Core.1.0.105.2\lib\net40\System.Data.SQLite.dll - - - ..\packages\System.Data.SQLite.EF6.1.0.105.2\lib\net40\System.Data.SQLite.EF6.dll - - - ..\packages\System.Data.SQLite.Linq.1.0.105.2\lib\net40\System.Data.SQLite.Linq.dll - - - - - - - - - - ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.dll - - - ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.presentation.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。 + Debug + AnyCPU + 8.0.30703 + 2.0 + {DD100C66-DDB6-4A3F-A421-8A02A9E92484} + Library + Properties + KidsPos + KidsPos + v4.8 + 512 + + + + latestmajor + enable - - - + + true + full + false + output\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + output\ + TRACE + prompt + 4 + false + + + false + + + + ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.dll + + + ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.SqlServer.dll + + + + + + + ..\packages\System.Data.SQLite.Core.1.0.105.2\lib\net40\System.Data.SQLite.dll + + + ..\packages\System.Data.SQLite.EF6.1.0.105.2\lib\net40\System.Data.SQLite.EF6.dll + + + ..\packages\System.Data.SQLite.Linq.1.0.105.2\lib\net40\System.Data.SQLite.Linq.dll + + + + + + + + + + ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.dll + + + ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.presentation.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。 + + + + \ No newline at end of file diff --git a/KidsPosDLL/Properties/AssemblyInfo.cs b/KidsPosDLL/Properties/AssemblyInfo.cs index 97e083b..cbcbc3a 100644 --- a/KidsPosDLL/Properties/AssemblyInfo.cs +++ b/KidsPosDLL/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ // 既定値にすることができます: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/KidsPosDLL/Sources/BarcodeObject.cs b/KidsPosDLL/Sources/BarcodeObject.cs index 2929b24..8958687 100644 --- a/KidsPosDLL/Sources/BarcodeObject.cs +++ b/KidsPosDLL/Sources/BarcodeObject.cs @@ -8,23 +8,20 @@ namespace KidsPos.Object { public class BarcodeObject { - private readonly string _store; private readonly string _itemNum; - public string Barcode { get; private set; } + private readonly string _store; + /// - /// Systemバーコード, 生成済みバーコード + /// Systemバーコード, 生成済みバーコード /// /// public BarcodeObject(string barcode) { if (barcode.Length == BarcodeConfig.Item.Length) - { - barcode = BarcodeConfig.Prefix + barcode + 0.ToString("D" + (BarcodeConfig.BarcodeNum - BarcodeConfig.Prefix.Length - BarcodeConfig.Item.Length)); - } - else if (barcode.Length != BarcodeConfig.BarcodeNum) - { - throw new InvalidDataException(); - } + barcode = BarcodeConfig.Prefix + barcode + 0.ToString("D" + (BarcodeConfig.BarcodeNum - + BarcodeConfig.Prefix.Length - + BarcodeConfig.Item.Length)); + else if (barcode.Length != BarcodeConfig.BarcodeNum) throw new InvalidDataException(); Barcode = barcode; } @@ -34,18 +31,18 @@ public BarcodeObject(int storeNum, int itemNum) _itemNum = itemNum.ToString("D" + BarcodeConfig.DataLength); Gen(); } + + public string Barcode { get; private set; } + private void Gen() { var barcode = BarcodeConfig.Prefix + BarcodeConfig.Item + _store + _itemNum; if (barcode.Length == BarcodeConfig.BarcodeNum) - { Barcode = barcode; - } else - { throw new Exception("作られたバーコードの長さがおかしいなぁ・・" + Environment.NewLine + barcode); - } } + public Bitmap GetBitmap() { var writer = new BarcodeWriter(); @@ -53,4 +50,4 @@ public Bitmap GetBitmap() return writer.Write("A" + Barcode + "A"); } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Config.cs b/KidsPosDLL/Sources/Config.cs index 1f3dd6e..b4e5f1e 100644 --- a/KidsPosDLL/Sources/Config.cs +++ b/KidsPosDLL/Sources/Config.cs @@ -8,19 +8,21 @@ public class Config public static bool IsPrintEnable = false; public static bool IsClient = true; private static readonly Config Instance = new Config(); + public Hashtable TargetIp = new Hashtable(); + private Config() { - } + public int StoreNumber { get; set; } + public int TargetPort { get; set; } + public StoreObject Store { get; set; } + public static Config GetInstance() { return Instance; } - public int StoreNumber { get; set; } - public Hashtable TargetIp = new Hashtable(); - public int TargetPort { get; set; } - public StoreObject Store { get; set; } + public void Init(int storeNumber, int targetPort, Hashtable hostList) { TargetPort = targetPort; @@ -37,4 +39,4 @@ public void Init(int storeNumber, int targetPort, Hashtable hostList) } } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Database/ItemGenreObject.cs b/KidsPosDLL/Sources/Database/ItemGenreObject.cs index 8b56c81..619abb4 100644 --- a/KidsPosDLL/Sources/Database/ItemGenreObject.cs +++ b/KidsPosDLL/Sources/Database/ItemGenreObject.cs @@ -5,9 +5,6 @@ namespace KidsPos.Object.Database { public class ItemGenreObject : RecordObject { - public string Name { get; private set; } - public int StoreNum { get; private set; } - public ItemGenreObject(string name, int storeNum) : base(DbPath.ItemGenre) { @@ -16,7 +13,14 @@ public ItemGenreObject(string name, int storeNum) GenerateInsertQuery(); } - public ItemGenreObject(SQLiteDataReader reader) : base(DbPath.ItemGenre, reader) { SetData(); } + public ItemGenreObject(SQLiteDataReader reader) : base(DbPath.ItemGenre, reader) + { + SetData(); + } + + public string Name { get; private set; } + public int StoreNum { get; private set; } + public sealed override void SetData() { Id = Record.GetInt("id"); @@ -24,6 +28,7 @@ public sealed override void SetData() StoreNum = Record.GetInt("store"); GenerateInsertQuery(); } + public sealed override void GenerateInsertQuery() { SetQueryInsert( @@ -31,4 +36,4 @@ public sealed override void GenerateInsertQuery() ); } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Database/ItemObject.cs b/KidsPosDLL/Sources/Database/ItemObject.cs index 23ce2a7..d25a6bd 100644 --- a/KidsPosDLL/Sources/Database/ItemObject.cs +++ b/KidsPosDLL/Sources/Database/ItemObject.cs @@ -5,13 +5,6 @@ namespace KidsPos.Object.Database { public class ItemObject : RecordObject { - public string Barcode { get; private set; } - public string Name { get; private set; } - public int Price { get; private set; } - public int StoreNum { get; private set; } - public int GenreNum { get; private set; } - public string QueryUpdate { get; private set; } - public ItemObject(string barcode, string name, int price, int storeNum, int genreNum) : base(DbPath.Item) { Barcode = barcode; @@ -21,7 +14,19 @@ public ItemObject(string barcode, string name, int price, int storeNum, int genr GenreNum = genreNum; GenerateInsertQuery(); } - public ItemObject(SQLiteDataReader reader) : base(DbPath.Item, reader) { SetData(); } + + public ItemObject(SQLiteDataReader reader) : base(DbPath.Item, reader) + { + SetData(); + } + + public string Barcode { get; private set; } + public string Name { get; private set; } + public int Price { get; private set; } + public int StoreNum { get; private set; } + public int GenreNum { get; private set; } + public string QueryUpdate { get; private set; } + public sealed override void SetData() { Id = Record.GetInt("id"); @@ -43,4 +48,4 @@ public sealed override void GenerateInsertQuery() $"UPDATE item_list SET name = '{Name}', price = '{Price}' WHERE id = '{Id}'"; } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Database/RecordObject.cs b/KidsPosDLL/Sources/Database/RecordObject.cs index 9cf1359..e754fa2 100644 --- a/KidsPosDLL/Sources/Database/RecordObject.cs +++ b/KidsPosDLL/Sources/Database/RecordObject.cs @@ -5,11 +5,6 @@ namespace KidsPos.Object.Database { public abstract class RecordObject { - public string Db { get; private set; } - public string QueryInsert { get; private set; } - public SqLiteItem Record { get; private set; } - public int Id { get; set; } - protected RecordObject(string path) { Db = path; @@ -20,6 +15,11 @@ protected RecordObject(string path, SQLiteDataReader reader) Db = path; Record = new SqLiteItem(reader); } + + public string Db { get; private set; } + public string QueryInsert { get; private set; } + public SqLiteItem Record { get; private set; } + public int Id { get; set; } public abstract void GenerateInsertQuery(); public void SetQueryInsert(string query) @@ -29,4 +29,4 @@ public void SetQueryInsert(string query) public abstract void SetData(); } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Database/SaleObject.cs b/KidsPosDLL/Sources/Database/SaleObject.cs index 82f65b7..a65741b 100644 --- a/KidsPosDLL/Sources/Database/SaleObject.cs +++ b/KidsPosDLL/Sources/Database/SaleObject.cs @@ -6,15 +6,6 @@ namespace KidsPos.Object.Database { public class SaleObject : RecordObject { - public string Barcode { get; private set; } - public string CreatedAt { get; private set; } - public int Points { get; private set; } - public int Price { get; private set; } - - // カンマ区切りのアイテムID 1, 42, 124, とか - public string Items { get; private set; } - public int StoreId {get; private set;} - public string StaffId {get; private set;} public SaleObject(int points, int price, string items, int storeId, string staffId) : base(DbPath.Sale) { CreatedAt = new Time().GetTime(); @@ -26,7 +17,22 @@ public SaleObject(int points, int price, string items, int storeId, string staff StaffId = staffId; GenerateInsertQuery(); } - public SaleObject(SQLiteDataReader reader) : base(DbPath.Sale, reader) { SetData(); } + + public SaleObject(SQLiteDataReader reader) : base(DbPath.Sale, reader) + { + SetData(); + } + + public string Barcode { get; private set; } + public string CreatedAt { get; private set; } + public int Points { get; private set; } + public int Price { get; private set; } + + // カンマ区切りのアイテムID 1, 42, 124, とか + public string Items { get; private set; } + public int StoreId { get; private set; } + public string StaffId { get; private set; } + public sealed override void SetData() { Id = Record.GetInt("id"); @@ -39,15 +45,17 @@ public sealed override void SetData() StaffId = Record.GetString("staff"); GenerateInsertQuery(); } + private string GenBarcode() { - return - BarcodeConfig.Prefix + - BarcodeConfig.Sale + + return + BarcodeConfig.Prefix + + BarcodeConfig.Sale + StoreId.ToString("D" + BarcodeConfig.DataMidLength) + new Util.Database().Count( $"where store = '{StoreId}'").ToString("D" + BarcodeConfig.DataLength); } + public sealed override void GenerateInsertQuery() { SetQueryInsert( @@ -56,4 +64,4 @@ public sealed override void GenerateInsertQuery() ); } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Database/StaffObject.cs b/KidsPosDLL/Sources/Database/StaffObject.cs index 168b459..79f032a 100644 --- a/KidsPosDLL/Sources/Database/StaffObject.cs +++ b/KidsPosDLL/Sources/Database/StaffObject.cs @@ -5,9 +5,6 @@ namespace KidsPos.Object.Database { public class StaffObject : RecordObject { - public string Barcode { get; private set; } - public string Name { get; private set; } - public StaffObject(int staffId, string name) : base(DbPath.Staff) { Barcode = CreateStaffBarcode(staffId); @@ -27,6 +24,9 @@ public StaffObject(SQLiteDataReader reader) : base(DbPath.Staff, reader) SetData(); } + public string Barcode { get; private set; } + public string Name { get; private set; } + public sealed override void SetData() { Barcode = Record.GetString("barcode"); @@ -47,4 +47,4 @@ public sealed override void GenerateInsertQuery() ); } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Database/StoreObject.cs b/KidsPosDLL/Sources/Database/StoreObject.cs index ccba058..8fd5179 100644 --- a/KidsPosDLL/Sources/Database/StoreObject.cs +++ b/KidsPosDLL/Sources/Database/StoreObject.cs @@ -5,29 +5,36 @@ namespace KidsPos.Object.Database { public class StoreObject : RecordObject { - public string Name { get; private set; } - public StoreObject(string name) : base(DbPath.Store) { Name = name; GenerateInsertQuery(); } - public StoreObject(SQLiteDataReader reader) : base(DbPath.Store, reader) { SetData(); } + + public StoreObject(SQLiteDataReader reader) : base(DbPath.Store, reader) + { + SetData(); + } + + public string Name { get; private set; } + public sealed override void SetData() { Id = Record.GetInt("id"); Name = Record.GetString("name"); GenerateInsertQuery(); } + public sealed override void GenerateInsertQuery() { SetQueryInsert( "INSERT INTO " + TableList.Store + $" (name) values('{Name}')" ); } + public string GetId() { return Id.ToString("D" + BarcodeConfig.DataMidLength); } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/PrintItemObject.cs b/KidsPosDLL/Sources/PrintItemObject.cs index 262db58..ec009dc 100644 --- a/KidsPosDLL/Sources/PrintItemObject.cs +++ b/KidsPosDLL/Sources/PrintItemObject.cs @@ -2,14 +2,15 @@ { public class PrintItemObject { - public BarcodeObject Barcode { get; private set; } - public string ItemName { get; private set; } - public string StoreName { get; private set; } public PrintItemObject(string barcode, string itemName, string storeName) { Barcode = new BarcodeObject(barcode); ItemName = itemName; StoreName = storeName; } + + public BarcodeObject Barcode { get; private set; } + public string ItemName { get; private set; } + public string StoreName { get; private set; } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Setting/BarcodeConfig.cs b/KidsPosDLL/Sources/Setting/BarcodeConfig.cs index 86b70db..b6e0bbc 100644 --- a/KidsPosDLL/Sources/Setting/BarcodeConfig.cs +++ b/KidsPosDLL/Sources/Setting/BarcodeConfig.cs @@ -39,4 +39,4 @@ public class BarcodeConfig public const string ModeTake = "30"; public const string ModePractice = "31"; } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Setting/Database.cs b/KidsPosDLL/Sources/Setting/Database.cs index e46ab8e..e2b2502 100644 --- a/KidsPosDLL/Sources/Setting/Database.cs +++ b/KidsPosDLL/Sources/Setting/Database.cs @@ -9,28 +9,18 @@ public class TableList public const string Sale = "sale"; public const string Store = "store"; public const string Staff = "staff"; + public static string GetTableName() { var type = typeof(T); - if (typeof(ItemObject) == type) - { - return Item; - } - if (typeof(ItemGenreObject) == type) - { - return ItemGenre; - } - if (typeof(SaleObject) == type) - { - return Sale; - } - if (typeof(StoreObject) == type) - { - return Store; - } + if (typeof(ItemObject) == type) return Item; + if (typeof(ItemGenreObject) == type) return ItemGenre; + if (typeof(SaleObject) == type) return Sale; + if (typeof(StoreObject) == type) return Store; return typeof(StaffObject) == type ? Staff : ""; } } + public class DbPath { public const string Item = "item.db"; @@ -38,26 +28,15 @@ public class DbPath public const string Sale = "item.db"; public const string Store = "item.db"; public const string Staff = "staff.db"; + public static string GetPath() { var type = typeof(T); - if (typeof(ItemObject) == type) - { - return Item; - } - if (typeof(ItemGenreObject) == type) - { - return ItemGenre; - } - if (typeof(SaleObject) == type) - { - return Sale; - } - if (typeof(StoreObject) == type) - { - return Store; - } + if (typeof(ItemObject) == type) return Item; + if (typeof(ItemGenreObject) == type) return ItemGenre; + if (typeof(SaleObject) == type) return Sale; + if (typeof(StoreObject) == type) return Store; return typeof(StaffObject) == type ? Staff : ""; } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Setting/PosInformation.cs b/KidsPosDLL/Sources/Setting/PosInformation.cs index 87498a9..39a601a 100644 --- a/KidsPosDLL/Sources/Setting/PosInformation.cs +++ b/KidsPosDLL/Sources/Setting/PosInformation.cs @@ -6,29 +6,38 @@ namespace KidsPos.Setting { public class PosInformation { - public string Year { get;private set; } - private StaffObject CurrentStaff { get;set; } private static readonly PosInformation Instance = new PosInformation(); - private PosInformation() { } + + private PosInformation() + { + } + + public string Year { get; private set; } + private StaffObject CurrentStaff { get; set; } + public static PosInformation GetInstance() { return Instance; } + public void Init(Form context) { Year = DateTime.Now.ToString("yyyy").Substring(2); } + public void SetStaff(StaffObject staffObject) { CurrentStaff = staffObject; } + public string GetStaffName() { return CurrentStaff == null ? "" : CurrentStaff.Name; } + public string GetStaffBarcode() { return CurrentStaff == null ? "" : CurrentStaff.Barcode; } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Util/Barcode.cs b/KidsPosDLL/Sources/Util/Barcode.cs index 4f39b76..5c09313 100644 --- a/KidsPosDLL/Sources/Util/Barcode.cs +++ b/KidsPosDLL/Sources/Util/Barcode.cs @@ -8,14 +8,13 @@ public static string CreateCheckDigit(string barcode) var odd = 0; for (var i = 0; i < barcode.Length; i++) - { if (i == 0 || i % 2 == 0) odd += int.Parse(barcode[i].ToString()); else even += int.Parse(barcode[i].ToString()); - } - var checkDigit = 10 - (even * 3 + odd) % 10; if (checkDigit == 10) checkDigit = 0; + var checkDigit = 10 - (even * 3 + odd) % 10; + if (checkDigit == 10) checkDigit = 0; return checkDigit.ToString(); } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Util/CSV.cs b/KidsPosDLL/Sources/Util/CSV.cs index 019d479..8ef4bcb 100644 --- a/KidsPosDLL/Sources/Util/CSV.cs +++ b/KidsPosDLL/Sources/Util/CSV.cs @@ -12,14 +12,6 @@ namespace KidsPos.Util public class Csv { public const string ConfigPath = "config.csv"; - public static class ConfigHead - { - public const string StoreNum = "#StoreNum"; - public const string TargetIp = "#TargetIP"; - public const string TargetPort = "#TargetPort"; - public const string Mode = "#Mode"; - public const string PrintEnable = "#PrintReceipt"; - } public void LoadConfig() { @@ -44,6 +36,7 @@ public void LoadConfig() sw.WriteLine("-- 接続先ポート (基本的に変えない)"); sw.WriteLine(ConfigHead.TargetPort + ", 10800"); } + MessageBox.Show("設定ファイルが見つかりませんでした。" + Environment.NewLine + "新しくファイルを作成しました。"); Config.GetInstance().Init(0, 10800, new Hashtable()); } @@ -73,24 +66,34 @@ public void LoadConfig() break; } } + Config.GetInstance().Init(storeNum, targetHost, table); } + private static List LoadCsv(string path) { var ret = new List(); if (!File.Exists(path)) return ret; using (var sr = new StreamReader(path, Encoding.GetEncoding("Shift_JIS"))) { - while (!sr.EndOfStream) - { - ret.Add(sr.ReadLine()?.Replace(" ","").Replace("\t","")); - } + while (!sr.EndOfStream) ret.Add(sr.ReadLine()?.Replace(" ", "").Replace("\t", "")); } + return ret; } + public static void RunNotePad() { - Process.Start("Notepad", Environment.CurrentDirectory + "\\" +ConfigPath); + Process.Start("Notepad", Environment.CurrentDirectory + "\\" + ConfigPath); + } + + public static class ConfigHead + { + public const string StoreNum = "#StoreNum"; + public const string TargetIp = "#TargetIP"; + public const string TargetPort = "#TargetPort"; + public const string Mode = "#Mode"; + public const string PrintEnable = "#PrintReceipt"; } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Util/Database.cs b/KidsPosDLL/Sources/Util/Database.cs index b1e6483..f1473ca 100644 --- a/KidsPosDLL/Sources/Util/Database.cs +++ b/KidsPosDLL/Sources/Util/Database.cs @@ -14,10 +14,12 @@ public bool Insert(T obj) where T : RecordObject { return QueryImpl(obj.Db, obj.QueryInsert); } + public bool Insert(List obj) where T : RecordObject { return InsertImpl(obj); } + public void CreateTable() { QueryImpl(DbPath.Item, DbQueryCreate.Item); @@ -26,6 +28,7 @@ public void CreateTable() QueryImpl(DbPath.Store, DbQueryCreate.Store); QueryImpl(DbPath.Staff, DbQueryCreate.Staff); } + public List GetItem(string barcode) { return SelectMulti(); @@ -37,6 +40,7 @@ public T SelectSingle(string where = "") where T : RecordObject DbPath.GetPath(), "SELECT * FROM " + TableList.GetTableName() + " " + where); } + public List SelectMulti(string where = "") where T : RecordObject { return QuerySelectImpl( @@ -55,8 +59,10 @@ public int Count(string where = "") command.CommandText = "SELECT COUNT(*) FROM " + TableList.GetTableName() + " " + where; ret = int.Parse(command.ExecuteScalar().ToString()); } + conn.Close(); } + return ret; } @@ -65,11 +71,13 @@ public StoreObject find_store(int id) var ret = SelectSingle($"WHERE id = '{id}'"); return ret; } + public int find_store(string storeName) { var ret = SelectSingle($"WHERE name = '{storeName}'"); return ret?.Id ?? -1; } + public int find_ganre(string genre, int storeNum) { var ret = SelectSingle($"WHERE name = '{genre}' AND store = '{storeNum}'"); @@ -82,6 +90,7 @@ public int find_item(string itemName, int price, int storeNum) $"WHERE name = '{itemName}' AND price = '{price}' AND shop = '{storeNum}'"); return ret?.Id ?? -1; } + public void UpdateItem(ItemObject item) { QueryImpl(item.Db, "UPDATE " + TableList.Item + @@ -102,8 +111,10 @@ private bool QueryImpl(string db, string query) com.CommandText = query; com.ExecuteNonQuery(); } + sqlt.Commit(); } + conn.Close(); } } @@ -111,8 +122,10 @@ private bool QueryImpl(string db, string query) { return false; } + return true; } + private T QuerySelectImplSingle(string db, string where) where T : RecordObject { T ret = null; @@ -125,17 +138,17 @@ private T QuerySelectImplSingle(string db, string where) where T : RecordObje { com.CommandText = where; var reader = com.ExecuteReader(); - while (reader.Read()) - { - ret = (T)Activator.CreateInstance(typeof(T), reader); - } + while (reader.Read()) ret = (T)Activator.CreateInstance(typeof(T), reader); com.Dispose(); } } + conn.Close(); } + return ret; } + private static List QuerySelectImpl(string db, string where) where T : RecordObject { var ret = new List(); @@ -148,17 +161,17 @@ private static List QuerySelectImpl(string db, string where) where T : Rec { com.CommandText = where; var reader = com.ExecuteReader(); - while (reader.Read()) - { - ret.Add((T)Activator.CreateInstance(typeof(T), reader)); - } + while (reader.Read()) ret.Add((T)Activator.CreateInstance(typeof(T), reader)); com.Dispose(); } } + conn.Close(); } + return ret; } + private static bool InsertImpl(IList tbl) where T : RecordObject { if (1 > tbl.Count) return true; @@ -177,8 +190,10 @@ private static bool InsertImpl(IList tbl) where T : RecordObject com.ExecuteNonQuery(); } } + sqlt.Commit(); } + conn.Close(); } } @@ -187,23 +202,27 @@ private static bool InsertImpl(IList tbl) where T : RecordObject Console.WriteLine(e.Message); return false; } + return true; } + public bool UpdateItem(int id, string name, int price) { return QueryImpl(DbPath.Item, "UPDATE " + TableList.Item + $" SET name = '{name}', price = '{price}' WHERE id = '{id}'"); } + // Insertview public void InsertView(DataTable dt, string query = "") where T : RecordObject { using (var con = new SQLiteConnection("Data Source=" + DbPath.GetPath())) { using (var adapter = new SQLiteDataAdapter( - (query.Equals("")) ? "SELECT * FROM " + TableList.GetTableName() : query, con)) + query.Equals("") ? "SELECT * FROM " + TableList.GetTableName() : query, con)) { adapter.Fill(dt); } + con.Dispose(); } } @@ -211,16 +230,19 @@ public void InsertView(DataTable dt, string query = "") where T : RecordObjec public class SqLiteItem { - private SQLiteDataReader Reader { get; set; } public SqLiteItem(SQLiteDataReader reader) { Reader = reader; } + + private SQLiteDataReader Reader { get; } + public string GetString(string item) { if (Reader?[item] == null || Reader[item].Equals("")) return ""; return Reader[item].ToString(); } + public int GetInt(string item) { if (Reader?[item] == null || Reader[item].Equals("")) return 0; @@ -231,10 +253,18 @@ public int GetInt(string item) public class DbQueryCreate { - public const string Item = "CREATE TABLE " + TableList.Item + "(id INTEGER PRIMARY KEY AUTOINCREMENT, barcode INTEGER UNIQUE, name TEXT, price INTEGER, shop INT, genre TEXT)"; - public const string ItemGenre = "CREATE TABLE " + TableList.ItemGenre + "(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, store TEXT)"; - public const string Sale = "CREATE TABLE " + TableList.Sale + "(id INTEGER PRIMARY KEY AUTOINCREMENT, barcode TEXT UNIQUE, created_at TEXT, points INTEGER, price INTEGER, items TEXT, store INTEGER, staff INTEGER)"; - public const string Store = "CREATE TABLE " + TableList.Store + "(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)"; + public const string Item = "CREATE TABLE " + TableList.Item + + "(id INTEGER PRIMARY KEY AUTOINCREMENT, barcode INTEGER UNIQUE, name TEXT, price INTEGER, shop INT, genre TEXT)"; + + public const string ItemGenre = "CREATE TABLE " + TableList.ItemGenre + + "(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, store TEXT)"; + + public const string Sale = "CREATE TABLE " + TableList.Sale + + "(id INTEGER PRIMARY KEY AUTOINCREMENT, barcode TEXT UNIQUE, created_at TEXT, points INTEGER, price INTEGER, items TEXT, store INTEGER, staff INTEGER)"; + + public const string Store = "CREATE TABLE " + TableList.Store + + "(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)"; + public const string Staff = "CREATE TABLE " + TableList.Staff + "(barcode INTEGER PRIMARY KEY, name TEXT)"; } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Util/Print.cs b/KidsPosDLL/Sources/Util/Print.cs index 317048e..ddd9e41 100644 --- a/KidsPosDLL/Sources/Util/Print.cs +++ b/KidsPosDLL/Sources/Util/Print.cs @@ -13,8 +13,16 @@ namespace KidsPos.Util public class Print { private static readonly Print Instance = new Print(); - private Print(){} - public static Print GetInstance() { return Instance; } + + private Print() + { + } + + public static Print GetInstance() + { + return Instance; + } + public void PrintItemBarcode(PrintItemObject obj, bool drawGrid, PrintPageEventArgs e) { // 縦横の印刷数 @@ -37,63 +45,60 @@ public void PrintItemBarcode(PrintItemObject obj, bool drawGrid, PrintPageEventA // グリッド線を印刷のチェックが入っている時 if (drawGrid) - { //線引いてみる for (var j = 0; j < rowNum + 1; j++) + for (var i = 0; i < colNum + 1; i++) { - for (var i = 0; i < colNum + 1; i++) - { - // 線の太さ - var penSize = 0.1f; - //横の線 - graphics.DrawLine(new Pen(Brushes.Black, penSize), - new Point((int)marginPageLeft, (int)(marginPageTop + marginPrintHeight * i)), - new Point((int)(marginPageLeft + (marginPrintWeight * rowNum)), (int)(marginPageTop + (marginPrintHeight * i)))); - - //縦の線 - graphics.DrawLine(new Pen(Brushes.Black, penSize), - new Point((int)(marginPageLeft + (marginPrintWeight * j)), (int)marginPageTop), - new Point((int)(marginPageLeft + (marginPrintWeight * j)), (int)(marginPageTop + (marginPrintHeight * colNum)))); - } + // 線の太さ + var penSize = 0.1f; + //横の線 + graphics.DrawLine(new Pen(Brushes.Black, penSize), + new Point((int)marginPageLeft, (int)(marginPageTop + marginPrintHeight * i)), + new Point((int)(marginPageLeft + marginPrintWeight * rowNum), + (int)(marginPageTop + marginPrintHeight * i))); + + //縦の線 + graphics.DrawLine(new Pen(Brushes.Black, penSize), + new Point((int)(marginPageLeft + marginPrintWeight * j), (int)marginPageTop), + new Point((int)(marginPageLeft + marginPrintWeight * j), + (int)(marginPageTop + marginPrintHeight * colNum))); } - } var barcode = obj.Barcode.GetBitmap(); //バーコードの印刷 for (var j = 0; j < rowNum; j++) + for (var i = 0; i < colNum; i++) { - for (var i = 0; i < colNum; i++) - { - var hei = i * marginPrintHeight; - var wei = j * marginPrintWeight; - graphics.DrawImage( - barcode, - marginPageLeft + wei + 3.2f, - marginPageTop + hei + 7f, - barcode.Width * 0.3f, barcode.Height * 0.14f - ); - - graphics.DrawString( - obj.ItemName, - new Font("MS UI Gothic", 9), - Brushes.Black, - new PointF( - marginPageLeft + wei + 1f, - marginPageTop + hei + 0.2f - ) - ); - - graphics.DrawString( - "おみせ: " + obj.StoreName, - new Font("MS UI Gothic", 8), Brushes.Black, - new PointF( - marginPageLeft + wei + 1f, - marginPageTop + hei + 3.5f - ) - ); - } + var hei = i * marginPrintHeight; + var wei = j * marginPrintWeight; + graphics.DrawImage( + barcode, + marginPageLeft + wei + 3.2f, + marginPageTop + hei + 7f, + barcode.Width * 0.3f, barcode.Height * 0.14f + ); + + graphics.DrawString( + obj.ItemName, + new Font("MS UI Gothic", 9), + Brushes.Black, + new PointF( + marginPageLeft + wei + 1f, + marginPageTop + hei + 0.2f + ) + ); + + graphics.DrawString( + "おみせ: " + obj.StoreName, + new Font("MS UI Gothic", 8), Brushes.Black, + new PointF( + marginPageLeft + wei + 1f, + marginPageTop + hei + 3.5f + ) + ); } } + public void PrintReceipt(ListView itemList, string deposit, PrintPageEventArgs e, string accountCode) { var marginMin = 3; @@ -127,10 +132,12 @@ public void PrintReceipt(ListView itemList, string deposit, PrintPageEventArgs e for (var i = 0; i < itemList.Items.Count; i++) { var lvi = itemList.Items[i]; - DrawString(graphics, fontBig, lvi.SubItems[0].Text + " " + lvi.SubItems[1].Text, marginMin, drawHeightPosition); + DrawString(graphics, fontBig, lvi.SubItems[0].Text + " " + lvi.SubItems[1].Text, marginMin, + drawHeightPosition); DrawString(graphics, fontBig, "\t\t\\" + lvi.SubItems[3].Text, marginMin + 15, drawHeightPosition); drawHeightPosition += lineHeight; } + graphics.DrawLine(new Pen(Brushes.Black), new Point(marginMin, drawHeightPosition), new Point(marginMax, drawHeightPosition)); @@ -156,7 +163,8 @@ public void PrintReceipt(ListView itemList, string deposit, PrintPageEventArgs e DrawString(graphics, fontBig, "おみせ: " + Config.GetInstance().Store.Name, marginMin, drawHeightPosition); drawHeightPosition += lineHeight; - DrawString(graphics, fontBig, "れじのたんとう: " + PosInformation.GetInstance().GetStaffName(), marginMin, drawHeightPosition); + DrawString(graphics, fontBig, "れじのたんとう: " + PosInformation.GetInstance().GetStaffName(), marginMin, + drawHeightPosition); drawHeightPosition += lineHeight + 5; @@ -168,7 +176,8 @@ public void PrintReceipt(ListView itemList, string deposit, PrintPageEventArgs e var barcode = new BarcodeObject(accountCode).GetBitmap(); - graphics.DrawImage(barcode, alignCenter - 13, drawHeightPosition, barcode.Width * 0.34f, barcode.Height * 0.14f); + graphics.DrawImage(barcode, alignCenter - 13, drawHeightPosition, barcode.Width * 0.34f, + barcode.Height * 0.14f); drawHeightPosition += lineHeight + 10; graphics.DrawLine(new Pen(Brushes.Black), @@ -177,31 +186,15 @@ public void PrintReceipt(ListView itemList, string deposit, PrintPageEventArgs e e.HasMorePages = false; } - private class PrintConfigSystemBarcode - { - public int DrawHeightPosition; - public readonly Graphics Graphics; - public readonly int MarginMin = 3; - public readonly int MarginMax = 70; - public readonly int AlignCenter = 27; - public readonly int LineHeight = 7; - public readonly Font Font = new Font("MS UI Gothic", 10); - public readonly Font FontBig = new Font("MS UI Gothic", 13); - public PrintConfigSystemBarcode(Graphics g) - { - Graphics = g; - g.PageUnit = GraphicsUnit.Millimeter; - g.DrawImage(Image.FromFile(@"Kids.jpg"), 3, 3, 67, 20); - } - } public void PrintSystemBarcode(object sender, PrintPageEventArgs e) { var config = new PrintConfigSystemBarcode(e.Graphics); config.DrawHeightPosition += config.LineHeight + 22; - DrawString(config.Graphics, config.FontBig, "<システムバーコード>", config.AlignCenter - 20, config.DrawHeightPosition); + DrawString(config.Graphics, config.FontBig, "<システムバーコード>", config.AlignCenter - 20, + config.DrawHeightPosition); config.DrawHeightPosition += config.LineHeight + 3; @@ -225,6 +218,7 @@ public void PrintSystemBarcode(object sender, PrintPageEventArgs e) e.HasMorePages = false; } + public void PrintDummyUserBarcode(object sender, PrintPageEventArgs e) { var config = new PrintConfigSystemBarcode(e.Graphics); @@ -256,6 +250,7 @@ private void DrawString(Graphics g, Font f, string s, int x, int y) { g.DrawString(s, f, Brushes.Black, new PointF(x, y)); } + private void DrawBarcode( string sysName, string sysCode, ref PrintConfigSystemBarcode c) { @@ -263,9 +258,11 @@ private void DrawBarcode( c.DrawHeightPosition += c.LineHeight - 3; var barcode = new BarcodeObject(sysCode).GetBitmap(); - c.Graphics.DrawImage(barcode, c.AlignCenter - 13, c.DrawHeightPosition, barcode.Width * 0.34f, barcode.Height * 0.14f); + c.Graphics.DrawImage(barcode, c.AlignCenter - 13, c.DrawHeightPosition, barcode.Width * 0.34f, + barcode.Height * 0.14f); c.DrawHeightPosition += c.LineHeight + 10; } + public static bool PingToPrinter(string printerIp) { var mo = new ManagementObject($"Win32_PingStatus.address='{printerIp}'"); @@ -273,5 +270,24 @@ public static bool PingToPrinter(string printerIp) mo.Dispose(); return ret; } + + private class PrintConfigSystemBarcode + { + public readonly int AlignCenter = 27; + public readonly Font Font = new Font("MS UI Gothic", 10); + public readonly Font FontBig = new Font("MS UI Gothic", 13); + public readonly Graphics Graphics; + public readonly int LineHeight = 7; + public readonly int MarginMax = 70; + public readonly int MarginMin = 3; + public int DrawHeightPosition; + + public PrintConfigSystemBarcode(Graphics g) + { + Graphics = g; + g.PageUnit = GraphicsUnit.Millimeter; + g.DrawImage(Image.FromFile(@"Kids.jpg"), 3, 3, 67, 20); + } + } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Util/SocketBase.cs b/KidsPosDLL/Sources/Util/SocketBase.cs index 3cab720..326fd60 100644 --- a/KidsPosDLL/Sources/Util/SocketBase.cs +++ b/KidsPosDLL/Sources/Util/SocketBase.cs @@ -6,51 +6,58 @@ namespace KidsPos.Util { public class SocketBase { - public Encoding EcUni = Encoding.GetEncoding("utf-16"); public Encoding EcSjis = Encoding.GetEncoding("shift-jis"); - public Thread Thread = null; + public Encoding EcUni = Encoding.GetEncoding("utf-16"); public SocketListener Listener; + public Thread Thread = null; public void Init(SocketListener listener) { Listener = listener; } } + public enum SocketCloseType { Error, Correct } + public abstract class SocketListener { private readonly Form _context; - private delegate void ReceiveDelegate(string json); - - private delegate void CloseDelegate(SocketCloseType closeType); - protected SocketListener(Form context) { _context = context; } + public void Receive(string text) { - _context.BeginInvoke(new ReceiveDelegate(OnReceive),text); + _context.BeginInvoke(new ReceiveDelegate(OnReceive), text); } + public void Close(SocketCloseType closeType) { _context.BeginInvoke(new CloseDelegate(OnClose), closeType); } + public Form GetContext() { return _context; } + /// - /// データを受信したときの処理 受信例: reveice,barcode,1000150001,山田 + /// データを受信したときの処理 受信例: reveice,barcode,1000150001,山田 /// /// public abstract void OnReceive(string text); + public abstract void OnClose(SocketCloseType closeType); + + private delegate void ReceiveDelegate(string json); + + private delegate void CloseDelegate(SocketCloseType closeType); } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Util/SocketClient.cs b/KidsPosDLL/Sources/Util/SocketClient.cs index 7bc18c8..c3f0a34 100644 --- a/KidsPosDLL/Sources/Util/SocketClient.cs +++ b/KidsPosDLL/Sources/Util/SocketClient.cs @@ -11,15 +11,20 @@ namespace KidsPos.Util public class SocketClient : SocketBase { private static readonly SocketClient Instance = new SocketClient(); + + private TcpClient _client; + + private string _ip; + + private SocketClient() + { + } + public static SocketClient GetInstance() { return Instance; } - private TcpClient _client; - private SocketClient() { } - - private string _ip; public bool ClientStart(string targetIp) { try @@ -41,7 +46,6 @@ private void ClientListen() var stream = _client.GetStream(); var bytes = new byte[100]; while (true) - { try { if (stream != null) @@ -62,7 +66,7 @@ private void ClientListen() { stream.Close(); stream = null; - Thread.Sleep(20);//これを入れないとNullReferenceExceptionが起きる + Thread.Sleep(20); //これを入れないとNullReferenceExceptionが起きる MessageBox.Show(@"何らかの原因で登録できませんでした。"); StopSock(); } @@ -72,12 +76,13 @@ private void ClientListen() { return; } - } } + public void StopSock(SocketCloseType type = SocketCloseType.Correct) { CloseClient(type); } + private void CloseClient(SocketCloseType type) { try @@ -88,6 +93,7 @@ private void CloseClient(SocketCloseType type) { // ignored } + if (_client != null && _client.Connected) { _client.Close(); @@ -96,6 +102,7 @@ private void CloseClient(SocketCloseType type) Thread?.Abort(); } + public void SendData(string dataText) { var data = EcSjis.GetBytes(dataText); @@ -109,15 +116,17 @@ public void SendData(string dataText) MessageBox.Show(e + Environment.NewLine + "送信できませんでした。", "送信エラー"); } } + public void RegistUser(StaffObject staff) { if (_client != null) SendData($"staff,{staff.Name},{staff.Barcode}"); new Database().Insert(staff); } + public void RestartServer() { StopSock(); ClientStart(_ip); } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Util/SocketServer.cs b/KidsPosDLL/Sources/Util/SocketServer.cs index cfc3a76..9e12535 100644 --- a/KidsPosDLL/Sources/Util/SocketServer.cs +++ b/KidsPosDLL/Sources/Util/SocketServer.cs @@ -9,18 +9,22 @@ namespace KidsPos.Util { - public class SocketServer :SocketBase + public class SocketServer : SocketBase { private static readonly SocketServer Instance = new SocketServer(); + private readonly List _hClient = new List(); + + private TcpListener _tcpClient; + + private SocketServer() + { + } + public static SocketServer GetInstance() { return Instance; } - private TcpListener _tcpClient; - private readonly List _hClient = new List(); - private SocketServer() { } - public bool ServerStart() { try @@ -34,6 +38,7 @@ public bool ServerStart() return false; } } + private void ServerListen() { _tcpClient = new TcpListener(IPAddress.Any, Config.GetInstance().TargetPort); @@ -53,18 +58,18 @@ private void ServerListen() // ignored } } + public List GetClient() { return _hClient; } + private void DeleteClient(ClientHandler cl) { Console.WriteLine("クライアントが抜けました"); - if (_hClient.Any(handler => handler == cl)) - { - _hClient.Remove(cl); - } + if (_hClient.Any(handler => handler == cl)) _hClient.Remove(cl); } + public void CloseServer() { if (_tcpClient != null) @@ -73,6 +78,7 @@ public void CloseServer() Thread.Sleep(20); _tcpClient = null; } + if (Thread == null) return; Thread.Abort(); Thread = null; @@ -80,12 +86,12 @@ public void CloseServer() public class ClientHandler { - private readonly SocketServer _parent; private readonly byte[] _buffer; - private Socket _socket; - private NetworkStream _networkStream; private readonly AsyncCallback _callbackRead; private readonly AsyncCallback _callbackWrite; + private readonly SocketServer _parent; + private NetworkStream _networkStream; + private Socket _socket; public ClientHandler(SocketServer parent, Socket socketForClient) { @@ -116,9 +122,9 @@ private void OnReadComplete(IAsyncResult ar) var getByte = new byte[bytesRead]; for (var i = 0; i < bytesRead; i++) getByte[i] = _buffer[i]; - _parent.Listener.OnReceive(_parent.EcUni.GetString(Encoding.Convert(_parent.EcSjis, _parent.EcUni, getByte))); + _parent.Listener.OnReceive( + _parent.EcUni.GetString(Encoding.Convert(_parent.EcSjis, _parent.EcUni, getByte))); StartRead(); - } else { @@ -136,14 +142,16 @@ private void OnReadComplete(IAsyncResult ar) // ignored } } + public void WriteString(byte[] buffer) { _networkStream.BeginWrite(buffer, 0, buffer.Length, _callbackWrite, null); } + private void OnWriteComplete(IAsyncResult ar) { _networkStream.EndWrite(ar); } } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/Sources/Util/Time.cs b/KidsPosDLL/Sources/Util/Time.cs index ee5cec6..890785f 100644 --- a/KidsPosDLL/Sources/Util/Time.cs +++ b/KidsPosDLL/Sources/Util/Time.cs @@ -6,6 +6,7 @@ namespace KidsPos.Util public class Time { private readonly Hashtable _dow = new Hashtable(); + public Time() { _dow.Add(DayOfWeek.Sunday, "日"); @@ -23,4 +24,4 @@ public string GetTime() return dt.ToString("yyyy年MM月dd日(" + _dow[dt.DayOfWeek] + ") HH時mm分ss秒"); } } -} +} \ No newline at end of file diff --git a/KidsPosDLL/packages.config b/KidsPosDLL/packages.config index f9da4f7..36367a7 100644 --- a/KidsPosDLL/packages.config +++ b/KidsPosDLL/packages.config @@ -1,9 +1,9 @@  - - - - - - + + + + + + \ No newline at end of file diff --git a/PosSystem.sln b/PosSystem.sln index 7dd2ea3..a89780a 100644 --- a/PosSystem.sln +++ b/PosSystem.sln @@ -39,6 +39,7 @@ Global {A10E6D7A-8166-4792-8178-6899564E7ECB}.Release|Mixed Platforms.Build.0 = Release|x86 {A10E6D7A-8166-4792-8178-6899564E7ECB}.Release|x86.ActiveCfg = Release|x86 {A10E6D7A-8166-4792-8178-6899564E7ECB}.Release|x86.Build.0 = Release|x86 + {A10E6D7A-8166-4792-8178-6899564E7ECB}.Debug|Any CPU.Build.0 = Debug|x86 {DD100C66-DDB6-4A3F-A421-8A02A9E92484}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DD100C66-DDB6-4A3F-A421-8A02A9E92484}.Debug|Any CPU.Build.0 = Debug|Any CPU {DD100C66-DDB6-4A3F-A421-8A02A9E92484}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU diff --git a/PosSystem/PosSystem.csproj b/PosSystem/PosSystem.csproj index 36292c1..2cdd977 100644 --- a/PosSystem/PosSystem.csproj +++ b/PosSystem/PosSystem.csproj @@ -1,216 +1,243 @@  - - - Debug - x86 - 8.0.30703 - 2.0 - {369FE5A3-61B1-4E97-B8B4-63B70B62BD4F} - WinExe - Properties - PosSystem - PosSystem - v4.0 - 512 - - - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - x86 - true - full - false - output\ - DEBUG;TRACE - prompt - 4 - - - x86 - pdbonly - true - output\ - TRACE - prompt - 4 - - - PosSystem.Program - - - - ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.dll - - - ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.SqlServer.dll - - - - - - - - - ..\packages\System.Data.SQLite.Core.1.0.105.2\lib\net40\System.Data.SQLite.dll - - - ..\packages\System.Data.SQLite.EF6.1.0.105.2\lib\net40\System.Data.SQLite.EF6.dll - - - ..\packages\System.Data.SQLite.Linq.1.0.105.2\lib\net40\System.Data.SQLite.Linq.dll - - - - - - - - - - ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.dll - - - ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.presentation.dll - - - - - - - Form - - - Account.cs - - - Form - - - AccountChange.cs - - - Form - - - MainForm.cs - - - Form - - - ItemList.cs - - - Form - - - Sales.cs - - - Form - - - SalesList.cs - - - Form - - - StaffRegistWindow.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - Account.cs - - - AccountChange.cs - - - MainForm.cs - Designer - - - ItemList.cs - - - Sales.cs - - - SalesList.cs - - - StaffRegistWindow.cs - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - {dd100c66-ddb6-4a3f-a421-8a02a9e92484} - KidsPosDLL - - - - - False - .NET Framework 3.5 SP1 - false - - - - - - - - - + - このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。 + Debug + x86 + 8.0.30703 + 2.0 + {369FE5A3-61B1-4E97-B8B4-63B70B62BD4F} + WinExe + Properties + PosSystem + PosSystem + v4.8 + 512 + + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true - - - + + x86 + true + full + false + output\ + DEBUG;TRACE + prompt + 4 + false + + + x86 + pdbonly + true + output\ + TRACE + prompt + 4 + false + + + PosSystem.Program + + + + ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.dll + + + ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.SqlServer.dll + + + ..\packages\Microsoft.Data.Sqlite.Core.7.0.10\lib\netstandard2.0\Microsoft.Data.Sqlite.dll + + + + + + ..\packages\SQLitePCLRaw.bundle_e_sqlite3.2.1.6\lib\net461\SQLitePCLRaw.batteries_v2.dll + + + ..\packages\SQLitePCLRaw.core.2.1.6\lib\netstandard2.0\SQLitePCLRaw.core.dll + + + ..\packages\SQLitePCLRaw.provider.dynamic_cdecl.2.1.6\lib\netstandard2.0\SQLitePCLRaw.provider.dynamic_cdecl.dll + + + + ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + + + ..\packages\System.Data.SQLite.Core.1.0.105.2\lib\net40\System.Data.SQLite.dll + + + ..\packages\System.Data.SQLite.EF6.1.0.105.2\lib\net40\System.Data.SQLite.EF6.dll + + + ..\packages\System.Data.SQLite.Linq.1.0.105.2\lib\net40\System.Data.SQLite.Linq.dll + + + ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + + + + + + + + + ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.dll + + + ..\packages\ZXing.Net.0.15.0\lib\net40\zxing.presentation.dll + + + + + + + Form + + + Account.cs + + + Form + + + AccountChange.cs + + + Form + + + MainForm.cs + + + Form + + + ItemList.cs + + + Form + + + Sales.cs + + + Form + + + SalesList.cs + + + Form + + + StaffRegistWindow.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + Account.cs + + + AccountChange.cs + + + MainForm.cs + Designer + + + ItemList.cs + + + Sales.cs + + + SalesList.cs + + + StaffRegistWindow.cs + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + {dd100c66-ddb6-4a3f-a421-8a02a9e92484} + KidsPosDLL + + + + + False + .NET Framework 3.5 SP1 + false + + + + + + + + + + + このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。 + + + + \ No newline at end of file diff --git a/PosSystem/Program.cs b/PosSystem/Program.cs index 9e4a838..aed1a17 100644 --- a/PosSystem/Program.cs +++ b/PosSystem/Program.cs @@ -7,7 +7,7 @@ namespace PosSystem internal static class Program { /// - /// アプリケーションのメイン エントリ ポイントです。 + /// アプリケーションのメイン エントリ ポイントです。 /// [STAThread] private static void Main() @@ -17,4 +17,4 @@ private static void Main() Application.Run(new Form1()); } } -} +} \ No newline at end of file diff --git a/PosSystem/Properties/AssemblyInfo.cs b/PosSystem/Properties/AssemblyInfo.cs index 505d099..a4bb95e 100644 --- a/PosSystem/Properties/AssemblyInfo.cs +++ b/PosSystem/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ // 既定値にすることができます: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/PosSystem/Properties/Resources.Designer.cs b/PosSystem/Properties/Resources.Designer.cs index 74057a7..0c3e489 100644 --- a/PosSystem/Properties/Resources.Designer.cs +++ b/PosSystem/Properties/Resources.Designer.cs @@ -1,50 +1,44 @@ //------------------------------------------------------------------------------ // -// このコードはツールによって生成されました。 -// ランタイム バージョン:4.0.30319.18063 +// This code was generated by a tool. // -// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 -// コードが再生成されるときに損失したりします。 +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ -using System.CodeDom.Compiler; -using System.ComponentModel; -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using System.Globalization; -using System.Resources; -using System.Runtime.CompilerServices; - namespace PosSystem.Properties { + using System; + + /// - /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。 + /// A strongly-typed resource class, for looking up localized strings, etc. /// - // このクラスは StronglyTypedResourceBuilder クラスが ResGen - // または Visual Studio のようなツールを使用して自動生成されました。 - // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に - // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。 - [GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [DebuggerNonUserCode()] - [CompilerGenerated()] + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { - private static ResourceManager resourceMan; + private static global::System.Resources.ResourceManager resourceMan; - private static CultureInfo resourceCulture; + private static global::System.Globalization.CultureInfo resourceCulture; - [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal Resources() { } /// - /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。 + /// Returns the cached ResourceManager instance used by this class. /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - internal static ResourceManager ResourceManager { + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { get { - if (ReferenceEquals(resourceMan, null)) { - var temp = new ResourceManager("PosSystem.Properties.Resources", typeof(Resources).Assembly); + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PosSystem.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; @@ -52,11 +46,11 @@ internal static ResourceManager ResourceManager { } /// - /// 厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、 - /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。 + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - internal static CultureInfo Culture { + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } diff --git a/PosSystem/Properties/Resources.resx b/PosSystem/Properties/Resources.resx index af7dbeb..3627ee6 100644 --- a/PosSystem/Properties/Resources.resx +++ b/PosSystem/Properties/Resources.resx @@ -1,117 +1,123 @@  - - - - - - + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PosSystem/Properties/Settings.Designer.cs b/PosSystem/Properties/Settings.Designer.cs index 216104f..106ff64 100644 --- a/PosSystem/Properties/Settings.Designer.cs +++ b/PosSystem/Properties/Settings.Designer.cs @@ -1,25 +1,20 @@ //------------------------------------------------------------------------------ // -// このコードはツールによって生成されました。 -// ランタイム バージョン:4.0.30319.18063 +// This code was generated by a tool. // -// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 -// コードが再生成されるときに損失したりします。 +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ -using System.CodeDom.Compiler; -using System.Configuration; -using System.Runtime.CompilerServices; - namespace PosSystem.Properties { - [CompilerGenerated()] - [GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] - internal sealed partial class Settings : ApplicationSettingsBase { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - private static Settings defaultInstance = ((Settings)(Synchronized(new Settings()))); + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); public static Settings Default { get { diff --git a/PosSystem/Properties/Settings.settings b/PosSystem/Properties/Settings.settings index 3964565..796d34b 100644 --- a/PosSystem/Properties/Settings.settings +++ b/PosSystem/Properties/Settings.settings @@ -1,7 +1,7 @@  - - - - + + + + diff --git a/PosSystem/Sources/Account.cs b/PosSystem/Sources/Account.cs index ab9b623..a7f54bd 100644 --- a/PosSystem/Sources/Account.cs +++ b/PosSystem/Sources/Account.cs @@ -5,13 +5,13 @@ namespace PosSystem.Source { public partial class Account : Form { + private readonly ListView _mainList; + //フォームの名前 public string FormName = "かいけい"; - private readonly ListView _mainList; public Account(ListView mainList) { - InitializeComponent(); Form1.InitializeListView(reg_goods_list); reg_goods_list_SizeChanged(reg_goods_list, new EventArgs()); @@ -23,13 +23,13 @@ public Account(ListView mainList) reg_goods_sum.Text = Form1.RegItemPriceSum.ToString(); ActiveControl = received_money; - } private void Account_Load(object sender, EventArgs e) { copy_listview(_mainList); } + private void copy_listview(ListView seme) { for (var icnt = 0; icnt < seme.Items.Count; icnt++) @@ -40,8 +40,28 @@ private void copy_listview(ListView seme) } } + private void button1_Click(object sender, EventArgs e) + { + var check = 0 >= int.Parse(reg_goods_sum.Text) - int.Parse(received_money.Text); + if (reg_goods_sum.Text != "" && received_money.Text != "" && check) + { + var ac = new AccountChange(received_money.Text, reg_goods_list, Form1.ItemList); + Form1.ItemList = ""; + ac.ShowDialog(); + ac.Dispose(); + Dispose(); + } + } + + private void Account_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) button1.PerformClick(); + } + #region リストのカラム幅調整 + private bool _resizing; + private void reg_goods_list_SizeChanged(object sender, EventArgs e) { if (!_resizing) @@ -58,34 +78,15 @@ private void reg_goods_list_SizeChanged(object sender, EventArgs e) for (var i = 0; i < listView.Columns.Count; i++) { - var colPercentage = (Convert.ToInt32(listView.Columns[i].Tag) / totalColumnWidth); + var colPercentage = Convert.ToInt32(listView.Columns[i].Tag) / totalColumnWidth; listView.Columns[i].Width = (int)(colPercentage * listView.ClientRectangle.Width); } } } - _resizing = false; - } - #endregion - private void button1_Click(object sender, EventArgs e) - { - var check = 0 >= (int.Parse(reg_goods_sum.Text) - int.Parse(received_money.Text)); - if (reg_goods_sum.Text != "" && received_money.Text != "" && check) - { - var ac = new AccountChange(received_money.Text, reg_goods_list, Form1.ItemList); - Form1.ItemList = ""; - ac.ShowDialog(); - ac.Dispose(); - Dispose(); - } + _resizing = false; } - private void Account_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Enter) - { - button1.PerformClick(); - } - } + #endregion } -} +} \ No newline at end of file diff --git a/PosSystem/Sources/Account.resx b/PosSystem/Sources/Account.resx index 7080a7d..07f66d5 100644 --- a/PosSystem/Sources/Account.resx +++ b/PosSystem/Sources/Account.resx @@ -1,120 +1,126 @@  - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PosSystem/Sources/AccountChange.cs b/PosSystem/Sources/AccountChange.cs index eaa26c0..ddc4fda 100644 --- a/PosSystem/Sources/AccountChange.cs +++ b/PosSystem/Sources/AccountChange.cs @@ -12,6 +12,7 @@ public partial class AccountChange : Form { private readonly ListView _itemList; private readonly SaleObject _sale; + public AccountChange(string recMoney, ListView recPoints, string recItems) { InitializeComponent(); @@ -22,7 +23,7 @@ public AccountChange(string recMoney, ListView recPoints, string recItems) reg_goods_sum.Text = Form1.RegItemPriceSum.ToString(); received_money.Text = recMoney; - change.Text = (int.Parse(received_money.Text) - int.Parse(reg_goods_sum.Text)).ToString(); + change.Text = (int.Parse(received_money.Text) - int.Parse(reg_goods_sum.Text)).ToString(); _itemList = recPoints; @@ -46,6 +47,7 @@ private void Account_change_Load(object sender, EventArgs e) pd.Print(); } } + private void Account_change_KeyDown(object sender, KeyEventArgs e) { Close(); @@ -56,4 +58,4 @@ private void printDocument1_PrintPage(object sender, PrintPageEventArgs e) Print.GetInstance().PrintReceipt(_itemList, received_money.Text, e, _sale.Barcode); } } -} +} \ No newline at end of file diff --git a/PosSystem/Sources/AccountChange.resx b/PosSystem/Sources/AccountChange.resx index db65bc8..e39cc8c 100644 --- a/PosSystem/Sources/AccountChange.resx +++ b/PosSystem/Sources/AccountChange.resx @@ -1,300 +1,310 @@  - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 189, 17 - - - - - AAABAAYAICAQAAAAAADoAgAAZgAAABAQEAAAAAAAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA - CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA - /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIoiI - iIiIiIiIiIiIiIiIiIiCIigiIiIozMzMzMzMyCIogiIoIiIiKM7m5ubm5sgiKIIiKCIiIijObm5ubm7I - IiiCIigiIiIozubm5ubmyCIogiIoIiIiKM5ubm5ubsgiKIIiKCIiIijO5ubm5ubIIiiIiIiIiIiIzm5u - bm5uyCIogRERERERGM7u7u7u7sgiKIHZWVlZWRjMzMzMzMzIIiiB1ZWVlZUYiIiIiIiIiIiIgdlZWVlZ - GDMzMzMzMzMzOIHVlZWVlRg/uLi4uLi4uDiB2VlZWVkYP7uLi4uLi4s4gdWVlZWVGD+4uLi4uLi4OIHZ - WVlZWRg/u4uLi4uLiziB1ZWVlZUYP7i4uLi4uLg4gdlZWVlZGD+7i4uLi4uLOIHVlZWVlRg/uLi4uLi4 - uDiB3d3d3d0YP7uLi4uLi4s4gRERERERGD+4uLi4uLi4OIiIiIiIiIg/u4uLi4uLiziCIiIiIiIoP7i4 - uLi4uLg4giIiIiIiKD+7i4uLi4uLOIIiIiIiIig/uLi4uLi4uDiCIiIiIiIoP7u7u7u7u7s4giIiIiIi - KD//////////OIIiIiIiIigzMzMzMzMzMziIiIiIiIiIiIiIiIiIiIiIIiIiIiIiIiIiIiIiIiIiIv// - ////////AAAAAHv4AA57+AAOe/gADnv4AA57+AAOe/gADgAAAA4AAAAOAAAADgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/4AAB/+AAAf/gAAH/4AAB/+AAAf/gAAAAA - AAD/////KAAAABAAAAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACA - gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIoiI - iIiIiIiIgigijMzMyCiCKCKM5mbIKIiIiIzu7sgogRERjMzMyCiB2ZGIiIiIiIHZkYMzMzM4gdmRg/u7 - uziB3dGD+7u7OIEREYP7u7s4iIiIg/u7uziCIiKD+7u7OIIiIoP///84giIigzMzMziIiIiIiIiIiP// - KCIAACjObALm5mwCIigAAoiIAAKIzgAAbm4AACIoAAAREQAAGM4AAO7uAAAiKHwAWVl8ABjMfADMzAAA - IigoAAAAIAAAAEAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA - AACAAIAAgIAAAICAgADA3MAA8MqmAKo/KgD/PyoAAF8qAFVfKgCqXyoA/18qAAB/KgBVfyoAqn8qAP9/ - KgAAnyoAVZ8qAKqfKgD/nyoAAL8qAFW/KgCqvyoA/78qAADfKgBV3yoAqt8qAP/fKgAA/yoAVf8qAKr/ - KgD//yoAAABVAFUAVQCqAFUA/wBVAAAfVQBVH1UAqh9VAP8fVQAAP1UAVT9VAKo/VQD/P1UAAF9VAFVf - VQCqX1UA/19VAAB/VQBVf1UAqn9VAP9/VQAAn1UAVZ9VAKqfVQD/n1UAAL9VAFW/VQCqv1UA/79VAADf - VQBV31UAqt9VAP/fVQAA/1UAVf9VAKr/VQD//1UAAAB/AFUAfwCqAH8A/wB/AAAffwBVH38Aqh9/AP8f - fwAAP38AVT9/AKo/fwD/P38AAF9/AFVffwCqX38A/19/AAB/fwBVf38Aqn9/AP9/fwAAn38AVZ9/AKqf - fwD/n38AAL9/AFW/fwCqv38A/79/AADffwBV338Aqt9/AP/ffwAA/38AVf9/AKr/fwD//38AAACqAFUA - qgCqAKoA/wCqAAAfqgBVH6oAqh+qAP8fqgAAP6oAVT+qAKo/qgD/P6oAAF+qAFVfqgCqX6oA/1+qAAB/ - qgBVf6oAqn+qAP9/qgAAn6oAVZ+qAKqfqgD/n6oAAL+qAFW/qgCqv6oA/7+qAADfqgBV36oAqt+qAP/f - qgAA/6oAVf+qAKr/qgD//6oAAADUAFUA1ACqANQA/wDUAAAf1ABVH9QAqh/UAP8f1AAAP9QAVT/UAKo/ - 1AD/P9QAAF/UAFVf1ACqX9QA/1/UAAB/1ABVf9QAqn/UAP9/1AAAn9QAVZ/UAKqf1AD/n9QAAL/UAFW/ - 1ACqv9QA/7/UAADf1ABV39QAqt/UAP/f1AAA/9QAVf/UAKr/1AD//9QAVQD/AKoA/wAAH/8AVR//AKof - /wD/H/8AAD//AFU//wCqP/8A/z//AABf/wBVX/8Aql//AP9f/wAAf/8AVX//AKp//wD/f/8AAJ//AFWf - /wCqn/8A/5//AAC//wBVv/8Aqr//AP+//wAA3/8AVd//AKrf/wD/3/8AVf//AKr//wD/zMwA/8z/AP// - MwD//2YA//+ZAP//zAAAfwAAVX8AAKp/AAD/fwAAAJ8AAFWfAACqnwAA/58AAAC/AABVvwAAqr8AAP+/ - AAAA3wAAVd8AAKrfAAD/3wAAVf8AAKr/AAAAACoAVQAqAKoAKgD/ACoAAB8qAFUfKgCqHyoA/x8qAAA/ - KgBVPyoA8Pv/AKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAAAAAAD//wAA////AP39/f39/f39/f39/f39 - /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39 - /f39/f39/f39/f39/f39/f39/f39/f39qoYIqoYIhqoIqgiqCaoIqgiqhqqGhoYIhoYIqv39/f0I/f39 - /ar9/f39/YY2Ng4yDg4ODgoOCgoKCgqG/f39/Yb9/f39CP39/f39qjY7Ozs3Nzc3NjMSMjIOCqr9/f39 - qv39/f2G/f39/f0IN19fOzs3Nzc3NjcODg4KCP39/f0I/f39/ar9/f39/ao6X19fXzs7Ozc3NzY3NgqG - /f39/Yb9/f39CP39/f39hl9jY19jX187Ozs7Nzc3Dqr9/f39qv39/f2G/f39/f0IOodjh19jX19fXztf - OzcOCP39/f0ICAmqCAiqCKoICapfCYdjh2ODY19fXzs7Ow6q/f39/QhITEwoSCUoKSQoqmMJCYcJCWNj - Y2NfY19fNgj9/f39qkyZmZmYmJRwlCmqX19fXl9fX186WzY3Njc2gv39/f0JcJ2dmZmZlJmUJAmqCaoJ - hggIqggICKoIqggI/f39/YZwnp2dnZmZmJVMqnx8fHx8fFR8VHhUVFRUVKr9/f39CHChoZ2dnZ2ZmUwJ - fKSkxqSkxqSkpKSkpKBUCP39/f2qcKLDoqGdnZ2ZTKp8ysakxqSkxqSkxqSkpFSq/f39/QiUpqbDoqHE - nZ1Mq3ykqMakyqSkxqSkpKSkVAj9/f39hpTIyKbHoqGhoXAIfMrLpMqkxqSkxqTGpKRUqv39/f0IlMym - yKbIpcShcAh8y6jKpMqkxsqkpKSkxlQI/f39/aqUzMzMyKbIpqJwqnzLy8qpxsqkpMakxqSkeAj9/f39 - CJSUlJSUlJSUlJQJgMupy8qpysqkyqSkxqRUqv39/f2GCKoIqgiqCKoIhgigrcvPqcuoy8qkxsqkxnyG - /f39/ar9/f39/f39/f39qnzPz6nLy8uoyqnKpKTKVAj9/f39CP39/f39/f39/f0IfNDPz8+py8upyqjG - yqR8hv39/f2G/f39/f39/f39/Qik0K7P0M+ty8vLy6jKpXyq/f39/ar9/f39/f39/f39CHzQ09Ctz8/P - qcupy6jKeAj9/f39CP39/f39/f39/f2qoNPQ0NPQ0M/Qz8vLy6l8CP39/f2G/f39/f39/f39/QmkfKR8 - oHx8fHx8fHx8fHyG/f39/aoIqgiqCKoIqgiqCKoIqgiqCKoIqgiqCKoIqgj9/f39/f39/f39/f39/f39 - /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3///////////// - ///AAAAD3vgAA974AAPe+AAD3vgAA974AAPe+AADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA - AAPAAAADwAAAA8AAAAPAAAADwAAAA9/4AAPf+AAD3/gAA9/4AAPf+AAD3/gAA8AAAAP//////////ygA - AAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA - gACAgAAAgICAAMDcwADwyqYAqj8qAP8/KgAAXyoAVV8qAKpfKgD/XyoAAH8qAFV/KgCqfyoA/38qAACf - KgBVnyoAqp8qAP+fKgAAvyoAVb8qAKq/KgD/vyoAAN8qAFXfKgCq3yoA/98qAAD/KgBV/yoAqv8qAP// - KgAAAFUAVQBVAKoAVQD/AFUAAB9VAFUfVQCqH1UA/x9VAAA/VQBVP1UAqj9VAP8/VQAAX1UAVV9VAKpf - VQD/X1UAAH9VAFV/VQCqf1UA/39VAACfVQBVn1UAqp9VAP+fVQAAv1UAVb9VAKq/VQD/v1UAAN9VAFXf - VQCq31UA/99VAAD/VQBV/1UAqv9VAP//VQAAAH8AVQB/AKoAfwD/AH8AAB9/AFUffwCqH38A/x9/AAA/ - fwBVP38Aqj9/AP8/fwAAX38AVV9/AKpffwD/X38AAH9/AFV/fwCqf38A/39/AACffwBVn38Aqp9/AP+f - fwAAv38AVb9/AKq/fwD/v38AAN9/AFXffwCq338A/99/AAD/fwBV/38Aqv9/AP//fwAAAKoAVQCqAKoA - qgD/AKoAAB+qAFUfqgCqH6oA/x+qAAA/qgBVP6oAqj+qAP8/qgAAX6oAVV+qAKpfqgD/X6oAAH+qAFV/ - qgCqf6oA/3+qAACfqgBVn6oAqp+qAP+fqgAAv6oAVb+qAKq/qgD/v6oAAN+qAFXfqgCq36oA/9+qAAD/ - qgBV/6oAqv+qAP//qgAAANQAVQDUAKoA1AD/ANQAAB/UAFUf1ACqH9QA/x/UAAA/1ABVP9QAqj/UAP8/ - 1AAAX9QAVV/UAKpf1AD/X9QAAH/UAFV/1ACqf9QA/3/UAACf1ABVn9QAqp/UAP+f1AAAv9QAVb/UAKq/ - 1AD/v9QAAN/UAFXf1ACq39QA/9/UAAD/1ABV/9QAqv/UAP//1ABVAP8AqgD/AAAf/wBVH/8Aqh//AP8f - /wAAP/8AVT//AKo//wD/P/8AAF//AFVf/wCqX/8A/1//AAB//wBVf/8Aqn//AP9//wAAn/8AVZ//AKqf - /wD/n/8AAL//AFW//wCqv/8A/7//AADf/wBV3/8Aqt//AP/f/wBV//8Aqv//AP/MzAD/zP8A//8zAP// - ZgD//5kA///MAAB/AABVfwAAqn8AAP9/AAAAnwAAVZ8AAKqfAAD/nwAAAL8AAFW/AACqvwAA/78AAADf - AABV3wAAqt8AAP/fAABV/wAAqv8AAAAAKgBVACoAqgAqAP8AKgAAHyoAVR8qAKofKgD/HyoAAD8qAFU/ - KgDw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAAAAAAAP//AAD///8A/f39/f39/f39/f39/f39/f0I - hgiqCKoICKoICKaGCP39qv39hv2GNg4ODjII/ar9/Yb9/ar9qjdjXzsOCP2G/f0IhquGCAleCWNfNob9 - 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 - bv+3d0n/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/FRqE/0dN1v8/RNL/Nz3Q/y40zv8nLcz/ISfK/xwh - yf8WHMf/GxJh/8K/wf/gr3r/4K96/+Cvev/gr3r/3614/9yqdf/apnL/16Nw/9Sea//Rmmj/zZZk/8qR - X//GjFz/w4dW/7+CUv/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8SHZD/WF3a/05U1/9FS9X/PUPS/zU7 - 0P8uM83/JyzL/yAmyf8aFGn/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/ - wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/xAfnP9obt7/YGTc/1Zb - 2f9NU9f/RUrU/ztB0v80OdD/LDHO/xgWcv/Cv8H/Dn+n/w18pP8MeqH/DHie/wt1m/8Kc5j/CXGV/wlv - k/8JbJD/CGqN/wdpi/8HZ4j/BmWH/wZkhf8GYoP/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/DiKp/3l+ - 4/9vdeH/Zmze/11i2/9UWtn/S1HW/0NI1P86P9H/Fhh9/8K/wf8Ogar/Barp/wGo6P8Apef/AKPm/wCi - 5P8An+L/AJ7h/wCd3/8AnN7/AJnc/wCY2/8AmNn/AJbX/wZjhP/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/ - wf8MJbX/iI7n/4CF5v93fOP/bnPg/2Vr3f9bYdv/UljY/0lP1v8UGoj/wr/B/w+Erf8Lrur/Bqvq/wOo - 6f8Apuf/AKTm/wCi5f8AoOT/AJ/i/wCd4f8AnN//AJrd/wCZ2/8AmNr/BmWH/8K/wf8AAAAAAAAAAAAA - AAAAAAAAwr/B/wkowP+WnOz/jpTq/4aL6P9+hOX/dXri/2xx4P9jaN3/WV/b/xEek//Cv8H/EIaw/xay - 7P8Or+z/Cavr/wWq6v8Bp+j/AKbn/wCj5f8AoeT/AJ/j/wCe4f8AnOD/AJve/wCa3f8HZ4n/wr/B/wAA - AAAAAAAAAAAAAAAAAADCv8H/CCrK/6Ko7/+coe7/lZrr/42T6f+Fiub/fIHl/3N54v9rcN//ECGg/8K/ - wf8QiLP/I7nu/xq07f8Ssez/C63r/war6v8Cqen/AKbo/wCk5v8AouX/AKHk/wCf4f8AneH/AJzf/who - i//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8GLNP/q7Hy/6as8P+hpu//mp/u/5OY6/+LkOj/g4nm/3qA - 5P8NI6z/wr/B/xCKtv8xvvD/J7rv/x627f8Vsuz/Dq/s/wmr6/8Equn/Aafo/wCl5/8Ao+X/AKHk/wCf - 4v8AnuH/CGqO/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wUu2/+vtPP/r7Tz/6qv8v+mq/D/oKXv/5me - 7f+Sl+v/io/p/wsmt//Cv8H/Eo24/0HF8f82wfD/LLzv/yK47v8atO3/EbHs/wut6/8Gq+r/A6np/wCm - 6P8Apeb/AKLl/wCh5P8IbJD/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/BC/h/wQv3/8FL9z/BS3Z/wYt - 1v8GLNL/ByvP/wgqy/8IKcb/CSnC/8K/wf8Sjrv/Uszy/0fH8f87w/H/Mb7v/ye67/8et+7/FbPt/w6v - 6/8IrOv/BKnp/wGo6P8Apef/AKPl/wluk//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf/Cv8H/wr/B/8K/ - wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/xKRvf9j0/P/WM/z/0zK8f9BxfH/N8Hw/yy8 - 7/8iuO7/GbTt/xGx7P8Lruv/Bqrq/wOo6f8Apuf/CnGV/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCv8H/E5LA/3Ta8/9q1fP/XtHz/1LM - 8v9Hx/H/O8Pw/zG+7/8nu+//Hrbt/xay7f8Or+v/CKzq/wSq6f8Kc5j/wr/B/wAAAAAAAAAAAAAAAAAA - AADCv8H/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/wf8UlMH/hOD1/3rc - 9f9v2PP/ZNTy/1jO8v9NyvH/Qsbx/zbB8P8svO//I7ju/xm07f8SsOz/C67r/wt2m//Cv8H/AAAAAAAA - AAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwr/B/xSW - w/+T5vb/iuL1/3/e9P912vT/adbz/13R8/9SzPL/R8jx/zzD8P8xvvD/J7rv/x627v8Vsuz/C3ie/8K/ - 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 - - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + 17, 17 + + + 189, 17 + + + + + AAABAAYAICAQAAAAAADoAgAAZgAAABAQEAAAAAAAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA + CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA + /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIoiI + iIiIiIiIiIiIiIiIiIiCIigiIiIozMzMzMzMyCIogiIoIiIiKM7m5ubm5sgiKIIiKCIiIijObm5ubm7I + IiiCIigiIiIozubm5ubmyCIogiIoIiIiKM5ubm5ubsgiKIIiKCIiIijO5ubm5ubIIiiIiIiIiIiIzm5u + bm5uyCIogRERERERGM7u7u7u7sgiKIHZWVlZWRjMzMzMzMzIIiiB1ZWVlZUYiIiIiIiIiIiIgdlZWVlZ + GDMzMzMzMzMzOIHVlZWVlRg/uLi4uLi4uDiB2VlZWVkYP7uLi4uLi4s4gdWVlZWVGD+4uLi4uLi4OIHZ + WVlZWRg/u4uLi4uLiziB1ZWVlZUYP7i4uLi4uLg4gdlZWVlZGD+7i4uLi4uLOIHVlZWVlRg/uLi4uLi4 + uDiB3d3d3d0YP7uLi4uLi4s4gRERERERGD+4uLi4uLi4OIiIiIiIiIg/u4uLi4uLiziCIiIiIiIoP7i4 + uLi4uLg4giIiIiIiKD+7i4uLi4uLOIIiIiIiIig/uLi4uLi4uDiCIiIiIiIoP7u7u7u7u7s4giIiIiIi + KD//////////OIIiIiIiIigzMzMzMzMzMziIiIiIiIiIiIiIiIiIiIiIIiIiIiIiIiIiIiIiIiIiIv// + ////////AAAAAHv4AA57+AAOe/gADnv4AA57+AAOe/gADgAAAA4AAAAOAAAADgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/4AAB/+AAAf/gAAH/4AAB/+AAAf/gAAAAA + AAD/////KAAAABAAAAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACA + gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIoiI + iIiIiIiIgigijMzMyCiCKCKM5mbIKIiIiIzu7sgogRERjMzMyCiB2ZGIiIiIiIHZkYMzMzM4gdmRg/u7 + uziB3dGD+7u7OIEREYP7u7s4iIiIg/u7uziCIiKD+7u7OIIiIoP///84giIigzMzMziIiIiIiIiIiP// + KCIAACjObALm5mwCIigAAoiIAAKIzgAAbm4AACIoAAAREQAAGM4AAO7uAAAiKHwAWVl8ABjMfADMzAAA + IigoAAAAIAAAAEAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA + AACAAIAAgIAAAICAgADA3MAA8MqmAKo/KgD/PyoAAF8qAFVfKgCqXyoA/18qAAB/KgBVfyoAqn8qAP9/ + KgAAnyoAVZ8qAKqfKgD/nyoAAL8qAFW/KgCqvyoA/78qAADfKgBV3yoAqt8qAP/fKgAA/yoAVf8qAKr/ + KgD//yoAAABVAFUAVQCqAFUA/wBVAAAfVQBVH1UAqh9VAP8fVQAAP1UAVT9VAKo/VQD/P1UAAF9VAFVf + VQCqX1UA/19VAAB/VQBVf1UAqn9VAP9/VQAAn1UAVZ9VAKqfVQD/n1UAAL9VAFW/VQCqv1UA/79VAADf + VQBV31UAqt9VAP/fVQAA/1UAVf9VAKr/VQD//1UAAAB/AFUAfwCqAH8A/wB/AAAffwBVH38Aqh9/AP8f + fwAAP38AVT9/AKo/fwD/P38AAF9/AFVffwCqX38A/19/AAB/fwBVf38Aqn9/AP9/fwAAn38AVZ9/AKqf + fwD/n38AAL9/AFW/fwCqv38A/79/AADffwBV338Aqt9/AP/ffwAA/38AVf9/AKr/fwD//38AAACqAFUA + qgCqAKoA/wCqAAAfqgBVH6oAqh+qAP8fqgAAP6oAVT+qAKo/qgD/P6oAAF+qAFVfqgCqX6oA/1+qAAB/ + qgBVf6oAqn+qAP9/qgAAn6oAVZ+qAKqfqgD/n6oAAL+qAFW/qgCqv6oA/7+qAADfqgBV36oAqt+qAP/f + qgAA/6oAVf+qAKr/qgD//6oAAADUAFUA1ACqANQA/wDUAAAf1ABVH9QAqh/UAP8f1AAAP9QAVT/UAKo/ + 1AD/P9QAAF/UAFVf1ACqX9QA/1/UAAB/1ABVf9QAqn/UAP9/1AAAn9QAVZ/UAKqf1AD/n9QAAL/UAFW/ + 1ACqv9QA/7/UAADf1ABV39QAqt/UAP/f1AAA/9QAVf/UAKr/1AD//9QAVQD/AKoA/wAAH/8AVR//AKof + /wD/H/8AAD//AFU//wCqP/8A/z//AABf/wBVX/8Aql//AP9f/wAAf/8AVX//AKp//wD/f/8AAJ//AFWf + /wCqn/8A/5//AAC//wBVv/8Aqr//AP+//wAA3/8AVd//AKrf/wD/3/8AVf//AKr//wD/zMwA/8z/AP// + MwD//2YA//+ZAP//zAAAfwAAVX8AAKp/AAD/fwAAAJ8AAFWfAACqnwAA/58AAAC/AABVvwAAqr8AAP+/ + AAAA3wAAVd8AAKrfAAD/3wAAVf8AAKr/AAAAACoAVQAqAKoAKgD/ACoAAB8qAFUfKgCqHyoA/x8qAAA/ + KgBVPyoA8Pv/AKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAAAAAAD//wAA////AP39/f39/f39/f39/f39 + /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39 + /f39/f39/f39/f39/f39/f39/f39/f39qoYIqoYIhqoIqgiqCaoIqgiqhqqGhoYIhoYIqv39/f0I/f39 + /ar9/f39/YY2Ng4yDg4ODgoOCgoKCgqG/f39/Yb9/f39CP39/f39qjY7Ozs3Nzc3NjMSMjIOCqr9/f39 + qv39/f2G/f39/f0IN19fOzs3Nzc3NjcODg4KCP39/f0I/f39/ar9/f39/ao6X19fXzs7Ozc3NzY3NgqG + /f39/Yb9/f39CP39/f39hl9jY19jX187Ozs7Nzc3Dqr9/f39qv39/f2G/f39/f0IOodjh19jX19fXztf + OzcOCP39/f0ICAmqCAiqCKoICapfCYdjh2ODY19fXzs7Ow6q/f39/QhITEwoSCUoKSQoqmMJCYcJCWNj + Y2NfY19fNgj9/f39qkyZmZmYmJRwlCmqX19fXl9fX186WzY3Njc2gv39/f0JcJ2dmZmZlJmUJAmqCaoJ + hggIqggICKoIqggI/f39/YZwnp2dnZmZmJVMqnx8fHx8fFR8VHhUVFRUVKr9/f39CHChoZ2dnZ2ZmUwJ + fKSkxqSkxqSkpKSkpKBUCP39/f2qcKLDoqGdnZ2ZTKp8ysakxqSkxqSkxqSkpFSq/f39/QiUpqbDoqHE + nZ1Mq3ykqMakyqSkxqSkpKSkVAj9/f39hpTIyKbHoqGhoXAIfMrLpMqkxqSkxqTGpKRUqv39/f0IlMym + yKbIpcShcAh8y6jKpMqkxsqkpKSkxlQI/f39/aqUzMzMyKbIpqJwqnzLy8qpxsqkpMakxqSkeAj9/f39 + CJSUlJSUlJSUlJQJgMupy8qpysqkyqSkxqRUqv39/f2GCKoIqgiqCKoIhgigrcvPqcuoy8qkxsqkxnyG + /f39/ar9/f39/f39/f39qnzPz6nLy8uoyqnKpKTKVAj9/f39CP39/f39/f39/f0IfNDPz8+py8upyqjG + yqR8hv39/f2G/f39/f39/f39/Qik0K7P0M+ty8vLy6jKpXyq/f39/ar9/f39/f39/f39CHzQ09Ctz8/P + qcupy6jKeAj9/f39CP39/f39/f39/f2qoNPQ0NPQ0M/Qz8vLy6l8CP39/f2G/f39/f39/f39/QmkfKR8 + oHx8fHx8fHx8fHyG/f39/aoIqgiqCKoIqgiqCKoIqgiqCKoIqgiqCKoIqgj9/f39/f39/f39/f39/f39 + /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3///////////// + ///AAAAD3vgAA974AAPe+AAD3vgAA974AAPe+AADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA + AAPAAAADwAAAA8AAAAPAAAADwAAAA9/4AAPf+AAD3/gAA9/4AAPf+AAD3/gAA8AAAAP//////////ygA + AAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA + gACAgAAAgICAAMDcwADwyqYAqj8qAP8/KgAAXyoAVV8qAKpfKgD/XyoAAH8qAFV/KgCqfyoA/38qAACf + KgBVnyoAqp8qAP+fKgAAvyoAVb8qAKq/KgD/vyoAAN8qAFXfKgCq3yoA/98qAAD/KgBV/yoAqv8qAP// + KgAAAFUAVQBVAKoAVQD/AFUAAB9VAFUfVQCqH1UA/x9VAAA/VQBVP1UAqj9VAP8/VQAAX1UAVV9VAKpf + VQD/X1UAAH9VAFV/VQCqf1UA/39VAACfVQBVn1UAqp9VAP+fVQAAv1UAVb9VAKq/VQD/v1UAAN9VAFXf + VQCq31UA/99VAAD/VQBV/1UAqv9VAP//VQAAAH8AVQB/AKoAfwD/AH8AAB9/AFUffwCqH38A/x9/AAA/ + fwBVP38Aqj9/AP8/fwAAX38AVV9/AKpffwD/X38AAH9/AFV/fwCqf38A/39/AACffwBVn38Aqp9/AP+f + fwAAv38AVb9/AKq/fwD/v38AAN9/AFXffwCq338A/99/AAD/fwBV/38Aqv9/AP//fwAAAKoAVQCqAKoA + qgD/AKoAAB+qAFUfqgCqH6oA/x+qAAA/qgBVP6oAqj+qAP8/qgAAX6oAVV+qAKpfqgD/X6oAAH+qAFV/ + qgCqf6oA/3+qAACfqgBVn6oAqp+qAP+fqgAAv6oAVb+qAKq/qgD/v6oAAN+qAFXfqgCq36oA/9+qAAD/ + qgBV/6oAqv+qAP//qgAAANQAVQDUAKoA1AD/ANQAAB/UAFUf1ACqH9QA/x/UAAA/1ABVP9QAqj/UAP8/ + 1AAAX9QAVV/UAKpf1AD/X9QAAH/UAFV/1ACqf9QA/3/UAACf1ABVn9QAqp/UAP+f1AAAv9QAVb/UAKq/ + 1AD/v9QAAN/UAFXf1ACq39QA/9/UAAD/1ABV/9QAqv/UAP//1ABVAP8AqgD/AAAf/wBVH/8Aqh//AP8f + /wAAP/8AVT//AKo//wD/P/8AAF//AFVf/wCqX/8A/1//AAB//wBVf/8Aqn//AP9//wAAn/8AVZ//AKqf + /wD/n/8AAL//AFW//wCqv/8A/7//AADf/wBV3/8Aqt//AP/f/wBV//8Aqv//AP/MzAD/zP8A//8zAP// + ZgD//5kA///MAAB/AABVfwAAqn8AAP9/AAAAnwAAVZ8AAKqfAAD/nwAAAL8AAFW/AACqvwAA/78AAADf + AABV3wAAqt8AAP/fAABV/wAAqv8AAAAAKgBVACoAqgAqAP8AKgAAHyoAVR8qAKofKgD/HyoAAD8qAFU/ + KgDw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAAAAAAAP//AAD///8A/f39/f39/f39/f39/f39/f0I + hgiqCKoICKoICKaGCP39qv39hv2GNg4ODjII/ar9/Yb9/ar9qjdjXzsOCP2G/f0IhquGCAleCWNfNob9 + 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 + bv+3d0n/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/FRqE/0dN1v8/RNL/Nz3Q/y40zv8nLcz/ISfK/xwh + yf8WHMf/GxJh/8K/wf/gr3r/4K96/+Cvev/gr3r/3614/9yqdf/apnL/16Nw/9Sea//Rmmj/zZZk/8qR + X//GjFz/w4dW/7+CUv/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8SHZD/WF3a/05U1/9FS9X/PUPS/zU7 + 0P8uM83/JyzL/yAmyf8aFGn/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/ + wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/xAfnP9obt7/YGTc/1Zb + 2f9NU9f/RUrU/ztB0v80OdD/LDHO/xgWcv/Cv8H/Dn+n/w18pP8MeqH/DHie/wt1m/8Kc5j/CXGV/wlv + k/8JbJD/CGqN/wdpi/8HZ4j/BmWH/wZkhf8GYoP/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/DiKp/3l+ + 4/9vdeH/Zmze/11i2/9UWtn/S1HW/0NI1P86P9H/Fhh9/8K/wf8Ogar/Barp/wGo6P8Apef/AKPm/wCi + 5P8An+L/AJ7h/wCd3/8AnN7/AJnc/wCY2/8AmNn/AJbX/wZjhP/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/ + wf8MJbX/iI7n/4CF5v93fOP/bnPg/2Vr3f9bYdv/UljY/0lP1v8UGoj/wr/B/w+Erf8Lrur/Bqvq/wOo + 6f8Apuf/AKTm/wCi5f8AoOT/AJ/i/wCd4f8AnN//AJrd/wCZ2/8AmNr/BmWH/8K/wf8AAAAAAAAAAAAA + AAAAAAAAwr/B/wkowP+WnOz/jpTq/4aL6P9+hOX/dXri/2xx4P9jaN3/WV/b/xEek//Cv8H/EIaw/xay + 7P8Or+z/Cavr/wWq6v8Bp+j/AKbn/wCj5f8AoeT/AJ/j/wCe4f8AnOD/AJve/wCa3f8HZ4n/wr/B/wAA + AAAAAAAAAAAAAAAAAADCv8H/CCrK/6Ko7/+coe7/lZrr/42T6f+Fiub/fIHl/3N54v9rcN//ECGg/8K/ + wf8QiLP/I7nu/xq07f8Ssez/C63r/war6v8Cqen/AKbo/wCk5v8AouX/AKHk/wCf4f8AneH/AJzf/who + i//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8GLNP/q7Hy/6as8P+hpu//mp/u/5OY6/+LkOj/g4nm/3qA + 5P8NI6z/wr/B/xCKtv8xvvD/J7rv/x627f8Vsuz/Dq/s/wmr6/8Equn/Aafo/wCl5/8Ao+X/AKHk/wCf + 4v8AnuH/CGqO/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wUu2/+vtPP/r7Tz/6qv8v+mq/D/oKXv/5me + 7f+Sl+v/io/p/wsmt//Cv8H/Eo24/0HF8f82wfD/LLzv/yK47v8atO3/EbHs/wut6/8Gq+r/A6np/wCm + 6P8Apeb/AKLl/wCh5P8IbJD/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/BC/h/wQv3/8FL9z/BS3Z/wYt + 1v8GLNL/ByvP/wgqy/8IKcb/CSnC/8K/wf8Sjrv/Uszy/0fH8f87w/H/Mb7v/ye67/8et+7/FbPt/w6v + 6/8IrOv/BKnp/wGo6P8Apef/AKPl/wluk//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf/Cv8H/wr/B/8K/ + wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/xKRvf9j0/P/WM/z/0zK8f9BxfH/N8Hw/yy8 + 7/8iuO7/GbTt/xGx7P8Lruv/Bqrq/wOo6f8Apuf/CnGV/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCv8H/E5LA/3Ta8/9q1fP/XtHz/1LM + 8v9Hx/H/O8Pw/zG+7/8nu+//Hrbt/xay7f8Or+v/CKzq/wSq6f8Kc5j/wr/B/wAAAAAAAAAAAAAAAAAA + AADCv8H/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/wf8UlMH/hOD1/3rc + 9f9v2PP/ZNTy/1jO8v9NyvH/Qsbx/zbB8P8svO//I7ju/xm07f8SsOz/C67r/wt2m//Cv8H/AAAAAAAA + AAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwr/B/xSW + w/+T5vb/iuL1/3/e9P912vT/adbz/13R8/9SzPL/R8jx/zzD8P8xvvD/J7rv/x627v8Vsuz/C3ie/8K/ + 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 + + \ No newline at end of file diff --git a/PosSystem/Sources/ItemList.cs b/PosSystem/Sources/ItemList.cs index dccbf48..447f718 100644 --- a/PosSystem/Sources/ItemList.cs +++ b/PosSystem/Sources/ItemList.cs @@ -17,10 +17,11 @@ public ItemList() MaximizeBox = !MaximizeBox; MinimizeBox = !MinimizeBox; FormBorderStyle = FormBorderStyle.FixedSingle; - + mGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; mGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; } + protected override void OnLoad(EventArgs e) { mGridView.DataSource = _table; @@ -30,9 +31,10 @@ protected override void OnLoad(EventArgs e) private void ItemList_Load(object sender, EventArgs e) { new Database().InsertView(_table, - "SELECT il.barcode AS バーコード,il.Name AS 商品名,il.price AS 値段,sk.Name AS お店 FROM " - + TableList.Item + " AS il," - + TableList.ItemGenre + " AS ig," + TableList.Store +" AS sk WHERE il.genre = ig.id AND il.shop = sk.id;"); + "SELECT il.barcode AS バーコード,il.Name AS 商品名,il.price AS 値段,sk.Name AS お店 FROM " + + TableList.Item + " AS il," + + TableList.ItemGenre + " AS ig," + TableList.Store + + " AS sk WHERE il.genre = ig.id AND il.shop = sk.id;"); } } -} +} \ No newline at end of file diff --git a/PosSystem/Sources/ItemList.resx b/PosSystem/Sources/ItemList.resx index 1af7de1..d4ad6f2 100644 --- a/PosSystem/Sources/ItemList.resx +++ b/PosSystem/Sources/ItemList.resx @@ -1,120 +1,126 @@  - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PosSystem/Sources/MainForm.cs b/PosSystem/Sources/MainForm.cs index bc6d340..0c56ceb 100644 --- a/PosSystem/Sources/MainForm.cs +++ b/PosSystem/Sources/MainForm.cs @@ -11,15 +11,18 @@ namespace PosSystem.Source { public partial class Form1 : Form { + public static string ItemList = ""; + + public static int RegItemPriceSum; + + private bool _resizing; + //フォームの名前 public string FormName = "POSシステム"; - public static string ItemList = ""; + public int InputCount; //読み取った数値格納 public string[] ReadTextArray = new string[BarcodeConfig.BarcodeNum]; - public int InputCount; - - public static int RegItemPriceSum; public Form1() { @@ -34,6 +37,7 @@ public void Init() PosInformation.GetInstance().Init(this); new Csv().LoadConfig(); } + private void Form1_Load(object sender, EventArgs e) { WindowState = FormWindowState.Maximized; @@ -54,7 +58,7 @@ private void Form1_Load(object sender, EventArgs e) { MessageBox.Show(@"config.csvの " + Csv.ConfigHead.TargetIp + @" の値が正しくありません。 ソフトウェアを終了します。", - @"読み込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Error); + @"読み込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Error); Csv.RunNotePad(); Environment.Exit(0); } @@ -65,15 +69,16 @@ private void Form1_Load(object sender, EventArgs e) { var builder = new StringBuilder(); builder.Append("192.168.0.100 にあるプリンターに到達出来ませんでした\n"); - builder.Append("ネットワーク接続を確認するか、config.csvの " + Csv.ConfigHead.Mode + " と " + - Csv.ConfigHead.PrintEnable + " の項目を確認してください\n"); + builder.Append("ネットワーク接続を確認するか、config.csvの " + Csv.ConfigHead.Mode + " と " + + Csv.ConfigHead.PrintEnable + " の項目を確認してください\n"); builder.Append("ソフトウェアを終了します。"); MessageBox.Show(builder.ToString(), - @"読み込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Error); + @"読み込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Error); Csv.RunNotePad(); Environment.Exit(0); } } + SetToolMenuItem(); SocketServer.GetInstance().Init(new StreamCallback(this)); SocketClient.GetInstance().Init(new StreamCallback(this)); @@ -94,15 +99,10 @@ private void Form1_Load(object sender, EventArgs e) public void SetToolMenuItem() { - foreach (string key in Config.GetInstance().TargetIp.Keys) - { - 接続先ToolStripMenuItem.DropDownItems.Add(key); - } - foreach (ToolStripDropDownItem item in 接続先ToolStripMenuItem.DropDownItems) - { - item.Click += 接続する; - } + foreach (string key in Config.GetInstance().TargetIp.Keys) 接続先ToolStripMenuItem.DropDownItems.Add(key); + foreach (ToolStripDropDownItem item in 接続先ToolStripMenuItem.DropDownItems) item.Click += 接続する; } + public static void InitializeListView(ListView listview) { // ListViewコントロールのプロパティを設定 @@ -126,7 +126,7 @@ public static void InitializeListView(ListView listview) goodsOrder.Width = 100; goodsOrder.Tag = 4; goodsOrder.TextAlign = HorizontalAlignment.Center; - + goodsItem.Text = "個数"; goodsItem.Width = 60; goodsItem.Tag = 1; @@ -137,9 +137,10 @@ public static void InitializeListView(ListView listview) goodsPrice.Tag = 2; goodsPrice.TextAlign = HorizontalAlignment.Right; - ColumnHeader[] colHeaderRegValue = {goodsId, goodsOrder, goodsItem, goodsPrice }; + ColumnHeader[] colHeaderRegValue = { goodsId, goodsOrder, goodsItem, goodsPrice }; listview.Columns.AddRange(colHeaderRegValue); } + public void InitializeReg() { tItemList.Items.Clear(); @@ -157,7 +158,8 @@ public void OnReadItem(string itemBarcode) { lScanItemName.Text = item.Name; lScanItemPrice.Text = item.Price.ToString(); - tItemList.Items.Add(new ListViewItem(new[] { (item.Id.ToString()), item.Name, "1", item.Price.ToString(), "×" })); + tItemList.Items.Add(new ListViewItem(new[] + { item.Id.ToString(), item.Name, "1", item.Price.ToString(), "×" })); RegItemPriceSum += item.Price; tSumItemPrice.Text = RegItemPriceSum.ToString(); } @@ -166,40 +168,35 @@ public void OnReadItem(string itemBarcode) MessageBox.Show(@"何らかの原因で登録できませんでした。"); } } - + //タイマー ステータスバーの日付等更新 private void display_timer_Tick(object sender, EventArgs e) { disp_now_time.Text = new Time().GetTime(); - } - + } + private void reg_clear_Click(object sender, EventArgs e) { InitializeReg(); } + private void 会計() { if (tSumItemPrice.Text != "" && tSumItemPrice.Text != "0") { var builder = new StringBuilder(); - foreach (ListViewItem item in tItemList.Items) - { - builder.Append(item.SubItems[0].Text).Append(","); - } + foreach (ListViewItem item in tItemList.Items) builder.Append(item.SubItems[0].Text).Append(","); var items = builder.ToString(); - if (items.IndexOf(',') > -1) - { - items = items.Substring(0, items.Length - 1); - } + if (items.IndexOf(',') > -1) items = items.Substring(0, items.Length - 1); ItemList = items; var ac = new Account(tItemList); ac.ShowDialog(this); ac.Dispose(); } + InitializeReg(); } - private bool _resizing; private void OnSizeChangedReadItemList(object sender, EventArgs e) { if (!_resizing) @@ -216,11 +213,12 @@ private void OnSizeChangedReadItemList(object sender, EventArgs e) for (var i = 0; i < listView.Columns.Count; i++) { - var colPercentage = (Convert.ToInt32(listView.Columns[i].Tag) / totalColumnWidth); + var colPercentage = Convert.ToInt32(listView.Columns[i].Tag) / totalColumnWidth; listView.Columns[i].Width = (int)(colPercentage * listView.ClientRectangle.Width); } } } + _resizing = false; } @@ -237,13 +235,13 @@ private void Form1_KeyDown(object sender, KeyEventArgs e) { var bar = GenBarcode(ReadTextArray); init_input(); - var barHead = bar.Substring(BarcodeConfig.Prefix.Length, BarcodeConfig.PrefixLength - BarcodeConfig.Prefix.Length); + var barHead = bar.Substring(BarcodeConfig.Prefix.Length, + BarcodeConfig.PrefixLength - BarcodeConfig.Prefix.Length); - Database db = new Database(); + var db = new Database(); switch (barHead) { - case BarcodeConfig.Item: OnReadItem(bar); break; @@ -276,17 +274,13 @@ private void Form1_KeyDown(object sender, KeyEventArgs e) case BarcodeConfig.ChangeVisibleToolbar: if (Config.IsClient) - { toolMenuClient.Visible = !toolMenuClient.Visible; - } else - { toolMenuServer.Visible = !toolMenuServer.Visible; - } break; } } - else if(InputCount > BarcodeConfig.BarcodeNum) + else if (InputCount > BarcodeConfig.BarcodeNum) { init_input(); } @@ -297,27 +291,27 @@ public void init_input() ReadTextArray = new string[BarcodeConfig.BarcodeNum]; InputCount = 0; } + public bool KeyCheck(KeyEventArgs e) { return BarcodeConfig.Prefix.Length > InputCount - && !e.KeyCode.ToString().Equals("D" + BarcodeConfig.Prefix[InputCount]); + && !e.KeyCode.ToString().Equals("D" + BarcodeConfig.Prefix[InputCount]); } public string GenBarcode(string[] readValueArray) { var ret = ""; - for (var i = 0; i < BarcodeConfig.BarcodeNum; i++) - { - ret += readValueArray[i][1]; - } + for (var i = 0; i < BarcodeConfig.BarcodeNum; i++) ret += readValueArray[i][1]; return ret; } + private void OpenItemList() { var il = new ItemList(); il.ShowDialog(this); il.Dispose(); } + private void OpenSalesList() { var sll = new SalesList(); @@ -338,19 +332,21 @@ private void 売上リストToolStripMenuItem_Click(object sender, EventArgs e) sl.ShowDialog(); sl.Dispose(); } + private void 接続する(object sender, EventArgs e) { if (sender.GetType() == 接続先ToolStripMenuItem.GetType()) { - string targetIp = Config.GetInstance().TargetIp[((ToolStripItem)sender).Text].ToString(); - if (!SocketClient.GetInstance().ClientStart(targetIp)) MessageBox.Show(@"何らかの原因で登録できませんでした。"); + var targetIp = Config.GetInstance().TargetIp[((ToolStripItem)sender).Text].ToString(); + if (!SocketClient.GetInstance().ClientStart(targetIp)) + { + MessageBox.Show(@"何らかの原因で登録できませんでした。"); + } else { Text += ((ToolStripItem)sender).Text + @" へ接続中"; for (var i = 0; i < 接続先ToolStripMenuItem.DropDownItems.Count; i++) - { 接続先ToolStripMenuItem.DropDownItems[i].Enabled = false; - } } } } @@ -377,25 +373,6 @@ private void OnReadStaff(string barcode) staffRegist.Dispose(); } } - public class StreamCallback : SocketListener - { - public StreamCallback(Form context) : base(context) { } - public override void OnReceive(string text) - { - var data = text.Split(','); - switch (data[0]) - { - // staff, [name], [barcode] - case "staff": - new Database().Insert(new StaffObject(data[2], data[1])); - break; - } - } - public override void OnClose(SocketCloseType closeType) - { - //MessageBox.Show("接続解除"); - } - } private void 商リストToolStripMenuItem_Click(object sender, EventArgs e) { @@ -428,9 +405,13 @@ private void サーバーを建てるToolStripMenuItem_Click(object sender, Even { ServerStart(); } + private void ServerStart() { - if (!SocketServer.GetInstance().ServerStart()) MessageBox.Show(@"何らかの原因で登録できませんでした。"); + if (!SocketServer.GetInstance().ServerStart()) + { + MessageBox.Show(@"何らかの原因で登録できませんでした。"); + } else { Text += " サーバー起動中"; @@ -465,5 +446,29 @@ private void ダミーユーザ印刷ToolStripMenuItem_Click(object sender, Even pdlg.Document = pd; pd.Print(); } + + public class StreamCallback : SocketListener + { + public StreamCallback(Form context) : base(context) + { + } + + public override void OnReceive(string text) + { + var data = text.Split(','); + switch (data[0]) + { + // staff, [name], [barcode] + case "staff": + new Database().Insert(new StaffObject(data[2], data[1])); + break; + } + } + + public override void OnClose(SocketCloseType closeType) + { + //MessageBox.Show("接続解除"); + } + } } -} +} \ No newline at end of file diff --git a/PosSystem/Sources/MainForm.resx b/PosSystem/Sources/MainForm.resx index 292e439..6e27dfd 100644 --- a/PosSystem/Sources/MainForm.resx +++ b/PosSystem/Sources/MainForm.resx @@ -1,138 +1,150 @@  - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 155, 17 - - - 268, 17 - - - 401, 17 - - - 691, 17 - - - 542, 17 - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + 17, 17 + + + 155, 17 + + + 268, 17 + + + 401, 17 + + + 691, 17 + + + 542, 17 + \ No newline at end of file diff --git a/PosSystem/Sources/Sales.cs b/PosSystem/Sources/Sales.cs index 0f9234f..ea41097 100644 --- a/PosSystem/Sources/Sales.cs +++ b/PosSystem/Sources/Sales.cs @@ -8,6 +8,7 @@ namespace PosSystem.Source public partial class Sales : Form { private readonly SaleObject _sale; + public Sales(SaleObject sale) { InitializeComponent(); @@ -21,10 +22,11 @@ public Sales(SaleObject sale) private void Sales_Load(object sender, EventArgs e) { buy_time.Text = _sale.CreatedAt; - scan_goods(_sale.Items.Split(new[]{","}, StringSplitOptions.RemoveEmptyEntries)); - StaffObject staff = new Database().SelectSingle(string.Format("WHERE barcode = '{0}'", _sale.StaffId)); - if(staff != null) sale_staff_name.Text = staff.Name; + scan_goods(_sale.Items.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries)); + var staff = new Database().SelectSingle(string.Format("WHERE barcode = '{0}'", _sale.StaffId)); + if (staff != null) sale_staff_name.Text = staff.Name; } + public static void InitializeListView(ListView listview) { // ListViewコントロールのプロパティを設定 @@ -65,21 +67,17 @@ public static void InitializeListView(ListView listview) public void scan_goods(string[] itemNum) { - Database db = new Database(); + var db = new Database(); for (var i = 0; i < itemNum.Length; i++) { - ItemObject item = db.SelectSingle($"where id = '{itemNum[i]}'"); + var item = db.SelectSingle($"where id = '{itemNum[i]}'"); if (item != null) - { - sales_list.Items.Add(new ListViewItem(new[] {item.Id.ToString(), item.Name, "1", item.Price.ToString(), "×"})); - } + sales_list.Items.Add(new ListViewItem(new[] + { item.Id.ToString(), item.Name, "1", item.Price.ToString(), "×" })); else - { - MessageBox.Show(@"現在は登録されていない商品がありました + MessageBox.Show(@"現在は登録されていない商品がありました [" + itemNum[i] + "]", @"読み込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } - } } -} +} \ No newline at end of file diff --git a/PosSystem/Sources/Sales.resx b/PosSystem/Sources/Sales.resx index 7080a7d..07f66d5 100644 --- a/PosSystem/Sources/Sales.resx +++ b/PosSystem/Sources/Sales.resx @@ -1,120 +1,126 @@  - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PosSystem/Sources/SalesList.cs b/PosSystem/Sources/SalesList.cs index 3c03c72..a8ba337 100644 --- a/PosSystem/Sources/SalesList.cs +++ b/PosSystem/Sources/SalesList.cs @@ -13,6 +13,7 @@ public partial class SalesList : Form { private readonly DataTable _table = new DataTable(); private List _list = new List(); + public SalesList() { InitializeComponent(); @@ -22,6 +23,7 @@ public SalesList() mGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; mGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; } + protected override void OnLoad(EventArgs e) { mGridView.DataSource = _table; @@ -30,7 +32,7 @@ protected override void OnLoad(EventArgs e) private void Sales_List_Load(object sender, EventArgs e) { - Database db = new Database(); + var db = new Database(); db.InsertView(_table, $"SELECT barcode, created_at, price, points FROM {TableList.Sale} WHERE store ='{Config.GetInstance().Store.Id}'"); _list = db.SelectMulti(string.Format("WHERE store = '{0}'", Config.GetInstance().Store.Id)); @@ -40,10 +42,7 @@ private void Sales_List_Load(object sender, EventArgs e) public string calc_turnover() { var sum = 0; - foreach (SaleObject item in _list) - { - sum += item.Price; - } + foreach (var item in _list) sum += item.Price; return sum.ToString(); } @@ -52,9 +51,8 @@ private void mGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs var sl = new Sales( new Database().SelectSingle( $"WHERE barcode = '{mGridView[0, mGridView.CurrentCell.RowIndex].Value}'")); - sl.ShowDialog(this); + sl.ShowDialog(this); sl.Dispose(); } - } -} +} \ No newline at end of file diff --git a/PosSystem/Sources/SalesList.resx b/PosSystem/Sources/SalesList.resx index 1af7de1..d4ad6f2 100644 --- a/PosSystem/Sources/SalesList.resx +++ b/PosSystem/Sources/SalesList.resx @@ -1,120 +1,126 @@  - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PosSystem/Sources/StaffRegistWindow.cs b/PosSystem/Sources/StaffRegistWindow.cs index 0c9ff9f..e04cb27 100644 --- a/PosSystem/Sources/StaffRegistWindow.cs +++ b/PosSystem/Sources/StaffRegistWindow.cs @@ -9,6 +9,7 @@ namespace PosSystem.Source public partial class StaffRegistWindow : Form { private readonly string _barcode; + public StaffRegistWindow(string barcode) { InitializeComponent(); @@ -20,17 +21,19 @@ public StaffRegistWindow(string barcode) private void Staff_Regist_Load(object sender, EventArgs e) { - label2.Text = @"スタッフ名を追加します。"+ Environment.NewLine +@"入力が終わったらEnterキー。"; + label2.Text = @"スタッフ名を追加します。" + Environment.NewLine + @"入力が終わったらEnterキー。"; textBox2.Text = _barcode; } + private void Staff_Regist_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter && textBox1.Text != "") { - var result = MessageBox.Show(@"このなまえでとうろくしますか?"+Environment.NewLine+textBox1.Text, @"読み込みエラー", MessageBoxButtons.YesNo, MessageBoxIcon.Information); + var result = MessageBox.Show(@"このなまえでとうろくしますか?" + Environment.NewLine + textBox1.Text, @"読み込みエラー", + MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (result == DialogResult.Yes) { - StaffObject staff = new StaffObject(_barcode, textBox1.Text); + var staff = new StaffObject(_barcode, textBox1.Text); SocketClient.GetInstance().RegistUser(staff); PosInformation.GetInstance().SetStaff(staff); Close(); @@ -42,4 +45,4 @@ private void Staff_Regist_KeyDown(object sender, KeyEventArgs e) } } } -} +} \ No newline at end of file diff --git a/PosSystem/Sources/StaffRegistWindow.resx b/PosSystem/Sources/StaffRegistWindow.resx index 1af7de1..d4ad6f2 100644 --- a/PosSystem/Sources/StaffRegistWindow.resx +++ b/PosSystem/Sources/StaffRegistWindow.resx @@ -1,120 +1,126 @@  - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PosSystem/app.config b/PosSystem/app.config index c38b993..977549b 100644 --- a/PosSystem/app.config +++ b/PosSystem/app.config @@ -1,35 +1,49 @@  - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PosSystem/packages.config b/PosSystem/packages.config index 07ddef7..9e1cf64 100644 --- a/PosSystem/packages.config +++ b/PosSystem/packages.config @@ -1,8 +1,18 @@  - - - - - + + + + + + + + + + + + + + + \ No newline at end of file