From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。

---
 HotelPms.SourceFactory/Util/CommonFunc.cs |  523 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 523 insertions(+), 0 deletions(-)

diff --git a/HotelPms.SourceFactory/Util/CommonFunc.cs b/HotelPms.SourceFactory/Util/CommonFunc.cs
new file mode 100644
index 0000000..58323cf
--- /dev/null
+++ b/HotelPms.SourceFactory/Util/CommonFunc.cs
@@ -0,0 +1,523 @@
+using HotelPms.Share.Util;
+using System;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HotelPms.SourceFactory.Util
+{
+    public class CommonFunc
+    {
+        /// <summary>
+        /// cs�̌^��Proto3Type
+        /// </summary>
+        /// <param name="type">cs�̌^</param>
+        /// <returns></returns>
+        public static string ToProto3Type(string type)
+        {
+            if (type.ToLower() == "int") { return "int32"; }
+            else if (type.ToLower() == "bytestring") { return "bytes"; }
+            else if (type.ToLower() == "long") { return "int64"; }
+            else if (type.ToLower() == "datetime") { return "google.protobuf.Timestamp"; }
+            else if (type.ToLower() == "timestamp") { return "google.protobuf.Timestamp"; }
+            else if (type.ToLower() == "decimal") { return "customTypes.DecimalValue"; }
+            else if (type.ToLower() == "decimalvalue") { return "customTypes.DecimalValue"; }
+            else if (type.ToLower() == "date") { return "customTypes.Date"; }
+            else { return type.ToLower(); }
+        }
+
+        /// <summary>
+        /// �ϐ����SQL���̍쐬
+        /// </summary>
+        /// <param name="type">CS�̌^</param>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public static string ToSqlValue(string type, string name)
+        {
+            if ("bool".Equals(type))
+            {
+                return "{(" + (name + " ? 1 : 0") + ")}";
+            }
+            else if ("decimal".Equals(type) || "int".Equals(type) || "float".Equals(type))
+            {
+                return "{" + name + "}";
+            }
+            else if ("DateTime".Equals(type))
+            {
+                return "{" + "CConvert.ToSqlValue(" + name + ")" + "}";
+            }
+            else if ("Timestamp".Equals(type))
+            {
+                return "{(" + name + " == null ? \"NULL\" : " + "CConvert.ToSqlValue(" + name + ".ToDateTime())" + ")}";
+            }
+            else if ("DecimalValue".Equals(type))
+            {
+                return "{(" + name + " == null ? \"0\" : " + name + ".ToSqlValue()" + ")}";
+            }
+            else if ("Date".Equals(type))
+            {
+                return "{(" + name + " == null ? \"NULL\" : " + name + ".ToSqlValue()" + ")}";
+            }
+            else
+            {
+                return "N'{" + name + "}'";
+            }
+        }
+
+        public static string ToInputChar(string sqlType)
+        {
+            switch (sqlType)
+            {
+                case "int":
+                case "tinyint":
+                case "smallint":
+                case "decimal":
+                case "bit":
+                    return "EInputChar.Num";
+                case "float":
+                    return "EInputChar.Num | EInputChar.Dot";
+                case "date":
+                case "smalldatetime":
+                case "datetime":
+                    return "EInputChar.Num | EInputChar.Slash, InputStyle = EInputStyle.Date";
+                default:
+                    return "EInputChar.None";
+            }
+        }
+
+        /// <summary>
+        /// DB�̃^�C�v��CS�^�C�v
+        /// </summary>
+        /// <param name="sqlType"></param>
+        /// <returns></returns>
+        public static string ConvertToCsType(string sqlType)
+        {
+            switch (sqlType)
+            {
+                case "int":
+                case "tinyint":
+                case "smallint":
+                    return "int";
+                case "decimal":
+                    return "DecimalValue";
+                case "bit":
+                    return "bool";
+                case "date":
+                    return "Date";
+                case "smalldatetime":
+                case "datetime":                
+                    return "Timestamp";
+                case "float":
+                    return "float";
+                default:
+                    return "string";
+            }
+        }
+
+        /// <summary>
+        /// SQL�^�C�v�̏����l
+        /// </summary>
+        /// <param name="sqlType"></param>
+        /// <returns></returns>
+        public static string GetDefValue(string sqlType)
+        {
+            switch (sqlType)
+            {
+                case "int":
+                case "tinyint":
+                case "smallint":                
+                    return "0";
+                case "date":
+                    return "Date.Default";
+                case "decimal":
+                case "DecimalValue":
+                case "float":
+                    return "0";
+                case "bit":
+                    return "false";
+                case "smalldatetime":
+                case "datetime":                
+                    return "CConvert.ToTimestamp(DateTime.MinValue)";
+                default:
+                    return "string.Empty";
+            }
+        }
+
+        /// <summary>
+        /// ��`�쐬
+        /// </summary>
+        /// <param name="sqlType"></param>
+        /// <param name="varName"></param>
+        /// <returns></returns>
+        public static  string GetDeclare(string sqlType,string varName)
+        {
+            return new string(' ', 8) + "private " + ConvertToCsType(sqlType) + " " + varName + " = " + GetDefValue(sqlType) + ";" + Environment.NewLine;
+        }
+
+        /// <summary>
+        /// DataGridView�̍��ځ�txt����
+        /// </summary>
+        /// <param name="sqlType"></param>
+        /// <param name="context"></param>
+        /// <returns></returns>
+        public static string GetToTextFunction(string sqlType, string context)
+        {
+            switch (sqlType)
+            {
+                case "int":
+                case "tinyint":
+                case "smallint":
+                    return string.Format("GeneralSub.ToFormText(CConvert.ToInt({0}))", context);
+                case "bit":
+                    return string.Format("CConvert.ToBool({0}) ? \"1\" : \"0\"", context);
+                case "decimal":
+                    return string.Format("CConvert.ToDecimal({0})", context);
+                case "float":
+                    return string.Format("CConvert.ToFloat({0})", context);
+                case "smalldatetime":
+                case "datetime":
+                case "date":
+                    return string.Format("CConvert.ToDateString({0})", context);
+                default:
+                    return string.Format("CConvert.ToString({0})", context);
+            } 
+        }
+
+        /// <summary>
+        /// ShowDetail�p
+        /// DataGridView�̍��ځ�txt����
+        /// </summary>
+        /// <param name="sqlType"></param>
+        /// <param name="field"></param>
+        /// <param name="usingEndKey"></param>
+        /// <returns></returns>
+        public static string GetDataRowToText(string sqlType, string field, bool usingEndKey)
+        {
+            StringBuilder text = new StringBuilder();
+            text.Append(new string(' ', 12));
+
+            string context = string.Format("GetCellValue(\"{0}\")", field);
+            text.AppendFormat("txt{0}.Text = {1};", field, GetToTextFunction(sqlType, context));
+            if (usingEndKey) { text.Append(Environment.NewLine); text.AppendFormat("SetDispName(txt{0});", field); }
+            text.Append(Environment.NewLine);
+            return text.ToString();
+        }
+
+        public static string GetChangeFunction(string sqlType)
+        {
+            switch (sqlType)
+            {
+                case "int":
+                case "tinyint":
+                case "smallint":
+                    return "CConvert.ToInt";
+                case "decimal":
+                    return "CConvert.ToDecimal";
+                case "bit":
+                    return "CConvert.ToBool";
+                case "float":
+                    return "CConvert.ToFloat";
+                case "smalldatetime":
+                case "datetime":
+                case "date":
+                    return "CConvert.ToDateTime";
+                default:
+                    return "CConvert.ToString";
+            }
+        }
+
+        /// <summary>
+        /// ToDataRow�̒l
+        /// </summary>
+        /// <param name="type">cs�̌^</param>
+        /// <param name="fieldName"></param>
+        /// <returns></returns>
+        public static string ToDataRow(string type, string name)
+        {
+            if ("Timestamp".Equals(type))
+            {
+                return $"{name}.ToDateTime()";
+            }
+            else if ("Date".Equals(type))
+            {
+                return $"{name}.ToDateTime()";
+            }
+            else if ("DecimalValue".Equals(type))
+            {
+                return $"{name}.ToDecimal()";
+            }
+            else
+            {
+                return name;
+            }
+        }
+
+
+        /// <summary>
+        /// SetField�p
+        /// ��ʓ��͂���������ŃN���X�֍X�V����
+        /// </summary>
+        /// <param name="type">cs�̌^</param>
+        /// <param name="fieldName"></param>
+        /// <returns></returns>
+        public static string GetConvertValue(string type, string fieldName)
+        {
+            if ("bool".Equals(type))
+            {
+                return $"{fieldName} = CConvert.ToBool(value); ";
+            }
+            else if ("decimal".Equals(type) || "DecimalValue".Equals(type))
+            {
+                return $"{fieldName} = CConvert.ToDecimal(value); ";
+            }
+            else if ("int".Equals(type))
+            {
+                return $"{fieldName} = CConvert.ToInt(value); ";
+            }
+            else if ("float".Equals(type))
+            {
+                return $"{fieldName} = CConvert.ToFloat(value); ";
+            }
+            else if ("string".Equals(type))
+            {
+                return $"{fieldName} = value.ToString(); ";
+            }
+            else if ("DateTime".Equals(type))
+            {
+                return $"{fieldName} = CConvert.ToDateTime(value); ";
+            }
+            else if ("Timestamp".Equals(type))
+            {
+                return $"{fieldName} = CConvert.ToTimestamp(CConvert.ToDateTime(value)); ";
+            }
+            else if ("Date".Equals(type))
+            {
+                return $"{fieldName} = new Date(CConvert.ToDateInt(value)); ";
+            }
+            else
+            {
+                return $"{fieldName} = ({type})value; ";
+            }
+        }
+
+        /// <summary>
+        /// DataRow �� cs�̃N���X��
+        /// </summary>
+        /// <param name="type">cs�̌^</param>
+        /// <param name="fieldName"></param>
+        /// <returns></returns>
+        public static string GetConvertDataRowCode(string type, string fieldName)
+        {
+            string ret = string.Empty;
+            if ("bool".Equals(type))
+            {
+                ret += string.Format("{0} = CConvert.ToBool(row[\"{0}\"]); ", fieldName) + Environment.NewLine;
+            }
+            else if ("decimal".Equals(type) || "DecimalValue".Equals(type))
+            {
+                ret += string.Format("{0} = CConvert.ToDecimal(row[\"{0}\"]); ", fieldName) + Environment.NewLine;
+            }
+            else if ("int".Equals(type))
+            {
+                ret += string.Format("{0} = CConvert.ToInt(row[\"{0}\"],{0}); ", fieldName) + Environment.NewLine;
+            }
+            else if ("float".Equals(type))
+            {
+                ret += string.Format("{0} = CConvert.ToFloat(row[\"{0}\"],{0}); ", fieldName) + Environment.NewLine;
+            }
+            else if ("string".Equals(type))
+            {
+                ret += string.Format("{0} = row[\"{0}\"].ToString(); ", fieldName) + Environment.NewLine;
+            }
+            else if ("DateTime".Equals(type))
+            {
+                ret += string.Format("{0} = row.IsNull(\"{0}\") ? DateTime.MinValue : (System.DateTime)row[\"{0}\"]; ", fieldName) + Environment.NewLine;
+            }
+            else if ("Date".Equals(type))
+            {
+                ret += string.Format("{0} = new Date(row.IsNull(\"{0}\") ? 0 : CConvert.ToDateInt((System.DateTime)row[\"{0}\"])); ", fieldName) + Environment.NewLine;
+            }
+            else if ("Timestamp".Equals(type))
+            {
+                ret += string.Format("{0} = CConvert.ToTimestamp(row.IsNull(\"{0}\") ? DateTime.MinValue : (System.DateTime)row[\"{0}\"]); ", fieldName) + Environment.NewLine;
+            }
+            else
+            {
+                ret += string.Format("{0} = ({1})ConvertDBValue(row[\"{0}\"],{0}); ", fieldName, type) + Environment.NewLine;
+            }
+            return "            " + ret;
+        }
+
+        public static string GetAddSql(DataGridView dgvData, string tableName)
+        {
+            string ret = string.Empty;
+            string fieldList = string.Empty;
+            string indexList = string.Empty;
+            int i = 0;
+            foreach (DataGridViewRow row in dgvData.Rows)
+            {
+                string type = CommonFunc.ConvertToCsType(row.Cells["Type"].Value.ToString());
+                string name = row.Cells["Field"].Value.ToString();
+
+                if (name.Equals("UpdateDate"))
+                {
+                    fieldList += ",UpdateDate";
+                    indexList += ",GETDATE()";
+                }
+                else
+                {
+                    if (i > 0) { fieldList += ","; indexList += ","; ret += ","; }
+                    fieldList += name;
+
+                    if ("bool".Equals(type))
+                    {
+                        indexList += ("{" + i.ToString() + "}");
+                        ret += (name + " ? 1 : 0 ");
+                    }
+                    else if ("decimal".Equals(type) || "int".Equals(type) || "float".Equals(type))
+                    {
+                        indexList += ("{" + i.ToString() + "}");
+                        ret += (name);
+                    }
+                    else if ("DateTime".Equals(type))
+                    {
+                        indexList += ("{" + i.ToString() + "}");
+                        ret += ("CConvert.ToSqlValue(" + name + ".ToDateTime())");
+                    }
+                    else
+                    {
+                        indexList += ("N'{" + i.ToString() + "}'");
+                        ret += (name);
+                    }
+                    i++;
+                }
+            }
+
+            return "return string.Format(@\"" + string.Format("INSERT INTO {0}(", tableName) + fieldList + ") VALUES(" + indexList + ");" + "\"," + ret + ");";
+
+        }
+
+        public static string GetUpdateSql(DataGridView dgvData, string tableName)
+        {
+            string ret = string.Empty;
+            string fieldList = string.Empty;
+            int fieldCount = 0;
+            string whereList = string.Empty;
+            int whereCount = 0;
+            int i = 0;
+            foreach (DataGridViewRow row in dgvData.Rows)
+            {
+                string type = CommonFunc.ConvertToCsType(row.Cells["Type"].Value.ToString());
+                string name = row.Cells["Field"].Value.ToString();
+
+                if (name.Equals("UpdateDate"))
+                {
+                    fieldList += ",UpdateDate = GETDATE()";
+                }
+                else
+                {
+                    if (i > 0) { ret += ","; }
+
+                    //�u����={index}�v�̎�
+                    string item = name + " = ";
+
+                    if ("bool".Equals(type))
+                    {
+                        item += ("{" + i.ToString() + "}");
+                        ret += (name + " ? 1 : 0 ");
+                    }
+                    else if ("decimal".Equals(type) || "int".Equals(type) || "float".Equals(type))
+                    {
+                        item += ("{" + i.ToString() + "}");
+                        ret += name;
+                    }
+                    else if ("DateTime".Equals(type))
+                    {
+                        item += ("{" + i.ToString() + "}");
+                        ret += "CConvert.ToSqlValue(" + name + ".ToDateTime())";
+                    }
+                    else
+                    {
+                        item += ("N'{" + i.ToString() + "}'");
+                        ret += name;
+                    }
+
+
+                    if (CConvert.ToInt(row.Cells["PKFlg"].Value.ToString()) == 1)
+                    {
+                        if (whereCount > 0) { whereList += ","; }
+                        whereList += item;
+                        whereCount++;
+                    }
+                    else
+                    {
+                        if (fieldCount > 0) { fieldList += ","; }
+                        fieldList += item;
+                        fieldCount++;
+                    }
+                    i++;
+                }
+            }
+
+            return "return string.Format(@\"" + string.Format("UPDATE {0} SET ", tableName) + fieldList + " WHERE " + whereList + ";" + "\"," + ret + ");";
+
+        }
+
+        public static string GetConvertReaderCode(string sqlType, string fieldName)
+        {
+            string ret = string.Empty;
+            if ("bigint".Equals(sqlType))
+            {
+                ret = $"{fieldName} = (long)(row.IsDBNull(i) ? 0 : row.GetInt64 (i)); i++;";
+            }
+            else if ("binary".Equals(sqlType))
+            {
+                //ret = $"{fieldName} = (long)(row.IsDBNull(i) ? null : row.GetBytes(i)); i++;";
+            }
+            else if ("bit".Equals(sqlType))
+            {
+                ret = $"{fieldName} = (bool)(row.IsDBNull(i) ? false : row.GetBoolean(i)); i++;";
+            }
+            else if ("date".Equals(sqlType))
+            {
+                ret = $"{fieldName} = new Date(row.IsDBNull(i) ? 0 : CConvert.ToDateInt(row.GetDateTime(i))); i++;";
+            }
+            else if ("datetime".Equals(sqlType) || "datetime2".Equals(sqlType) || "smalldatetime".Equals(sqlType) || "time".Equals(sqlType))
+            {
+                ret = $"{fieldName} = CConvert.ToTimestamp(row.IsDBNull(i) ? DateTime.MinValue : row.GetDateTime(i)); i++;";
+            }
+            else if ("datetimeoffset".Equals(sqlType))
+            {
+                //ret = $"{fieldName} = (DateTimeOffset)(row.IsDBNull(i) ? 0 : row.GetBytes(i)); i++;";
+            }
+            else if ("decimal".Equals(sqlType) || "money".Equals(sqlType) || "numeric".Equals(sqlType) || "smallmoney".Equals(sqlType))
+            {
+                ret = $"{fieldName} = (decimal)(row.IsDBNull(i) ? 0M : row.GetDecimal(i)); i++;";
+            }
+            else if ("float".Equals(sqlType))
+            {
+                ret = $"{fieldName} = (float)(row.IsDBNull(i) ? 0D : row.GetDouble(i)); i++;";
+            }
+            else if ("int".Equals(sqlType))
+            {
+                ret = $"{fieldName} = (int)(row.IsDBNull(i) ? 0 : row.GetInt32(i)); i++;";
+            }
+            else if ("real".Equals(sqlType))
+            {
+                ret = $"{fieldName} = (float)(row.IsDBNull(i) ? 0F : row.GetFloat(i)); i++;";
+            }
+            else if ("smallint".Equals(sqlType))
+            {
+                ret = $"{fieldName} = (int)(row.IsDBNull(i) ? 0 : row.GetInt16(i)); i++;";
+            }
+            else if ("tinyint".Equals(sqlType))
+            {
+                ret = $"{fieldName} = (byte)(row.IsDBNull(i) ? 0x00 : row.GetByte(i)); i++;";
+            }
+            else
+            {
+                ret = $"{fieldName} = (row.IsDBNull(i) ? string.Empty : row.GetString(i)); i++;";
+            }
+            return "            " + ret + Environment.NewLine;
+        }
+    }
+}

--
Gitblit v1.10.0