打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
根据某一个字段模糊查询,比如生成合同编号

   /// <summary>
       /// 生成合同编号
       /// </summary>
       /// <param name="context"></param>
       /// <param name="id"></param>
       /// <returns></returns>
       public static string GenerateContractNO(WCMSDATA  context, int id)
       {
           //取得合同
           var contract = context.WOO_CONTRACT.FirstOrDefault(a=>a.ID==id);
           if (!string.IsNullOrEmpty(contract.NO))
               return contract.NO;
           string strFinanceType = contract.FINANCE_TYPE == "付款" ? "01-" : "02-";

           //取得合同类别
           //var cat = context.WOO_TAX_TYPE.FirstOrDefault(t => t.CATEGORY_ID == contract.CATEGORY_ID);
           //string lx = "";
           //if (cat != null)
           //{
           //    lx = cat.REMARK;
           //}
           //取得签约主体
           var department = context.WOO_DEPARTMENT.FirstOrDefault(d => d.ID == contract.DEPARTMENT_ID);
           //取得签约主体简称

           //当前时间
           DateTime now = DateTime.Now;

           string no = "CUPD-" + department.SHORT_NAME + "-" + strFinanceType + DateTime.Now.Year.ToString() + "-";   //合同编号 = 公司名称简写-合同审批通过时间-合同收付款性质-合同流水号
           //按合同编号格式取得合同编号
           var query = context.WOO_CONTRACT;//GetQuery<WOO_CONTRACT>();
           // string like = "%-" + now.Year.ToString().Substring(2, 2) + "-" + strFinanceType + "____";
           string like = "%" + "CUPD-" + department.SHORT_NAME + "-" + strFinanceType + DateTime.Now.Year.ToString() + "-" + "%";
           //var nolist = query.Where(c => System.Data.Objects.SqlClient.SqlFunctions.PatIndex(like, c.NO) > 0).OrderByDescending(c => c.NO).Select(c => c.NO).ToList();
           var nolist = query.Where(p => SqlMethods.Like(p.NO, like)).OrderByDescending(c => c.NO).Select(c => c.NO).ToList();
           // nolist = nolist.ToList();
           //倒序遍历合同编号,看是否符合自动编号规则
           for (int i = 0; i < nolist.Count; i++)
           {
               //没有'-'不符合
               if (nolist[i].IndexOf("-") < 0)
                   continue;
               //取得流水号
               string numstring = nolist[i].Substring(nolist[i].LastIndexOf("-") + 1);
               //流水号不是5位长度,不符合
               if (numstring.Length != 4)
                   continue;
               int num = 0;
               //流水号不是数字格式,不符合
               if (!int.TryParse(numstring, out num))
                   continue;
               //按规则拼接合同编号
               return no + (num + 1).ToString().PadLeft(4, '0');
           }
           return no + "0001";
       }

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
.NET之生成数据库全流程
.net core使用jwt自动续期
CodeSharp.EventSourcing框架介绍-开篇
C# 应用 - 使用 HttpListener 接受 Http 请求
c# – 使用ConstructServicesUsing的AutoMapper自定义类型转换
js获取c#后台方法,变量及session
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服