zrg
2024-03-11 7ff36a7bef22bade6d8a91dd6755f09556bf925b
Pub_Class/CustomerCls/ClsPub.cs
@@ -897,6 +897,76 @@
        }
        //得到最大基础资料的流水号 HNumber
        public static string CreateHNumber(string BillCode,string HName,string TableName, ref string sReturn, bool Add)
        {
            Int64 Glida;
            Int32 CodeLen;
            string sBillNumber = "";
            char c = Convert.ToChar("0");
            string sKjYear = DateTime.Today.Year.ToString();
            string sPeriod = DateTime.Today.Month.ToString();
            string sDay = DateTime.Today.Day.ToString();
            //得到单据号表 信息
            ClsSqlHelper oCn = new ClsSqlHelper();
            DataSet Ds = new DataSet();
            DataSet Dss = new DataSet();
            //第一次查询数据是否存在  不存在就添加
            Ds = oCn.RunProcReturn("Select * from Gy_MaxNumber where BillName='" + HName.Trim() + "'", "Gy_MaxNumber");
            //插入新记录    表名,表名称,当前id
            if (Ds.Tables[0].Rows.Count == 0)
            {
                oCn.RunProc("insert into Gy_MaxNumber(BillType,BillName,IDNow) values('" + TableName.Trim() + "','" + HName.Trim() + "',1)");
            }
            //第二次查询 是查询插入的新数据
            Dss = oCn.RunProcReturn("Select * from Gy_MaxNumber where BillName='" + HName.Trim() + "'", "Gy_MaxNumber");
            if (Dss.Tables[0].Rows.Count != 0)
            {
                Glida = ClsPub.isLong(Dss.Tables[0].Rows[0]["Glida"].ToString());
                CodeLen = ClsPub.isInt(Dss.Tables[0].Rows[0]["CodeLen"].ToString());
            }
            else
            {
                return "";
            }
            string sStr;
            switch (Glida)
            {
                case 0://纯流水号
                    Ds = oCn.RunProcReturn("Select * from Gy_MaxNumber where BillName='" + HName.Trim() + "'", "Gy_MaxNumber");
                    if (Ds.Tables[0].Rows.Count != 0)
                    {
                        sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["IDNow"].ToString()).Length);
                        sBillNumber = BillCode.Trim() + sStr + Ds.Tables[0].Rows[0]["IDNow"].ToString().Trim();
                    }
                    if (Add == true)
                    {
                        oCn.RunProc("update Gy_MaxNumber set IDNow=IDNow+1 where BillName='" + HName.Trim() + "'");
                    }
                    return sBillNumber;
                case 1://根据 YY年+MM月 日 + 流水号  生成单据号 (日 采用了 仓库的字段)
                    return sBillNumber;
                case 2:      //根据年+月+日  生成单据号
                    return sBillNumber;
                case 3: //根据 乔一 (S + 年(23)+五位流水号)实例:S2300001
                    return sBillNumber;
                case 4: //根据 乔一 工序流转卡号改成年+月+四位流水号(23050001)
                    return sBillNumber;
                default:
                    return sBillNumber;
            }
            oCn.CnClose();
            oCn.CnDispose();
            oCn = null;
        }
        //判断是否存在权限,并写入日志
        public static bool Security_Log(string gnsy, int LogTF, bool Msg,string CurUserName)
        {