/// <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";
}
联系客服