zrg
2025-07-16 b82fd1f99e3a3fc5d56c1930c33a08989571f9ac
WebAPI/DLL/ClsGy_Material_Ctl.cs
@@ -2,6 +2,8 @@
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Reflection;
using System.Linq;
namespace WebAPI.DLL
{
@@ -30,7 +32,7 @@
                    ",HMaterRuleType,HColorNo,HPieceMaxQty,HCommonUseFlag,HAvgStockPrice,HFootPrice,HTaxCost,HNoTaxCost,HOnceRightRate" +
                    ",HHeight_M,HInches_M,HAl1Long_M,HDensity_M,HTela_M,HUnderTela_M,HSizing_M,HQtyDec,HPriceDec,HMoneyDec,HTaxRate,HProfitRate" +
                    ",HLotcardQty" +
                    ",HProjectBillMainID,HDivisionID" +
                    ",HProjectBillMainID,HDivisionID,HCubicleQty,HMakeEmp" +
                    ") " +
                    " Values('" + oModel.HNumber + "','" + oModel.HName + "','" + oModel.HHelpCode + "','" + oModel.HShortNumber + "'," + oModel.HParentID.ToString() +
                    ", " + oModel.HLevel.ToString() + "," + Convert.ToString(oModel.HEndFlag ? 1 : 0) + "," + Convert.ToString(oModel.HStopflag ? 1 : 0) + ",'" + oModel.HRemark + "'" +
@@ -56,6 +58,8 @@
                       "," + oModel.HLotcardQty +
                       ",'" + oModel.HProjectBillMainID +
                       "','" + oModel.HDivisionID +
                       "','" + oModel.HCubicleQty +
                       "','" + oModel.HMakeEmp +
                       "')", ref DBUtility.ClsPub.sExeReturnInfo);
                //修改上级为非末级代码
                oCn.RunProc("Update " + MvarItemKey + " set HEndflag=0 where HItemID=" + oModel.HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
@@ -227,7 +231,8 @@
                    ",HProfitRate=" + oModel.HProfitRate.ToString() +
                    ",HProjectBillMainID='" + oModel.HProjectBillMainID + "'" +
                    ",HDivisionID='" + oModel.HDivisionID + "'" +
                    ",HLotcardQty='" + oModel.HLotcardQty + "'" +
                    ",HLotcardQty='" + oModel.HLotcardQty + "'" +
                    ",HCubicleQty='" + oModel.HCubicleQty + "'" +
                    " Where HItemID=" + sItemID, ref DBUtility.ClsPub.sExeReturnInfo);
                //修改子项目代码
                oCn.RunProc("exec h_p_Gy_UpdateNumber '" + MvarItemKey + "','" + oModel.HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo);
@@ -243,6 +248,65 @@
                throw (e);
            }
        }
        /// <summary>
        /// 根据字段值动态更新数据库
        /// </summary>
        /// <param name="sItemID"></param>
        /// <returns></returns>
        public bool ModifyByIDDynamic(Int64 sItemID)
        {
            var sql = "Update " + MvarItemKey + " set ";
            string[] excludeNames = { "HErpclsID", "HEntryID", "HInterID", "HReadonly", "HItemID", "HModifyEmp"};
            foreach (var fInfo in oModel.GetType().GetFields()
                .Where(field => !excludeNames.Contains(field.Name))
                .ToArray())
            {
                string fieldName = fInfo.Name;
                var fieldValue = fInfo.GetValue(oModel);
                if (fieldValue != null)
                {
                    sql += (fieldName + "='" + fieldValue.ToString() + "',");
                }
            }
            sql = sql.Substring(0, sql.Length - 1);
            sql+= (" Where HItemID = " + sItemID);
            LogService.Write(sql);
            oCn.BeginTran();
            oCn.RunProc(sql, ref DBUtility.ClsPub.sExeReturnInfo);
            //修改子项目代码
            oCn.RunProc("exec h_p_Gy_UpdateNumber '" + MvarItemKey + "','" + oModel.HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo);
            //将上级 为非末级
            oCn.RunProc("Update " + MvarItemKey + " set HEndflag=0 where HItemID=" + oModel.HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
            //
            oCn.Commit();
            return true;
        }
        public bool ModifyByIDListDynamic(string HItemID_List, string paramStr, List<Models.ClsGy_Material_Model> models)
        {
            var sql = "Update " + MvarItemKey + " set ";
            sql += paramStr;
            sql += (" Where HItemID in " + HItemID_List);
            // 输出 修改语句到日志文件
            LogService.Write("Update: " + sql);
            oCn.BeginTran();
            oCn.RunProc(sql, ref DBUtility.ClsPub.sExeReturnInfo);
            foreach (var model in models)
            {
                // 输出 修改前对象 到 日志文件
                LogService.Write(model);
                //修改子项目代码
                oCn.RunProc("exec h_p_Gy_UpdateNumber '" + MvarItemKey + "','" + model.HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo);
                //将上级 为非末级
                oCn.RunProc("Update " + MvarItemKey + " set HEndflag=0 where HItemID=" + model.HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
            }
            oCn.Commit();
            return true;
        }
        //根据代码判断信息
        public override bool HavParentCode(string sCode, Int64 sItemID)
        {