private bool AddDocSNRule(IDatabase db, ModelDocNo Model) { string sql = "INSERT INTO sys_DataSN(DocCode,DocName,DocHeader,Separate,DocType,[Length]) VALUES(@DocCode,@DocName,@DocHeader,@Seperate,@DocType,@Length)"; SqlParameterProvider p = new SqlParameterProvider(); p.AddParameter("@DocCode", SqlDbType.VarChar, Model.DocCode); p.AddParameter("@DocName", SqlDbType.VarChar, Model.DocName); p.AddParameter("@DocHeader", SqlDbType.VarChar, Model.DocHeader ?? ""); p.AddParameter("@Seperate", SqlDbType.VarChar, Model.Separate ?? ""); p.AddParameter("@DocType", SqlDbType.VarChar, Model.DocRule); p.AddParameter("@Length", SqlDbType.Int, Model.Length); return(db.ExecuteNonQuery(sql, p) > 0); }
public string DoGetDocSN(IDatabase db, ModelDocNo Model) { SqlParameterProvider p = new SqlParameterProvider(); p.AddParameter("@DocCode", SqlDbType.VarChar, 50, Model.DocCode); string sql = "SELECT * FROM sys_DataSN WHERE DocCode=@DocCode"; DataTable dt = db.GetTable(sql, "", p); string DocHeader = ""; string DocType = ""; string Separate = ""; int Length = 0; if (dt.Rows.Count > 0) { DocHeader = ConvertLib.ToString(dt.Rows[0][sys_DataSN.DocHeader]); DocType = ConvertLib.ToString(dt.Rows[0][sys_DataSN.DocType]); Separate = ConvertLib.ToString(dt.Rows[0][sys_DataSN.Separate]); Length = ConvertLib.ToInt(dt.Rows[0][sys_DataSN.Length]); } else { AddDocSNRule(db, Model); DocHeader = Model.DocHeader; DocType = Model.DocRule; Separate = Model.Separate; Length = Model.Length; } string DocSeed = ""; switch (DocType.ToUpper()) { case "YEAR": DocSeed = DateTime.Now.Year.ToString(); DocHeader = DocHeader + DocSeed; break; case "YEAR-MONTH": DocSeed = DateTime.Now.ToString("yyyyMM"); DocHeader = DocHeader + DocSeed; break; case "YEAR-MONTH-DD": DocSeed = DateTime.Now.ToString("yyyyMMdd"); DocHeader = DocHeader + DocSeed; break; case "UP": DocSeed = Model.DocCode; break; case "CUSTOMER": DocSeed = Model.CustomerSeed; break; } int snindex = 0; string sql2 = "SELECT * FROM sys_DataSNDetail WHERE DocCode=@DocCode AND Seed=@Seed"; SqlParameterProvider p2 = new SqlParameterProvider(); p2.AddParameter("@DocCode", SqlDbType.VarChar, 50, Model.DocCode); p2.AddParameter("@Seed", SqlDbType.VarChar, 50, DocSeed); DataTable datasn = db.GetTable(sql2, "t", p2); if (datasn.Rows.Count > 0) { snindex = ConvertLib.ToInt(datasn.Rows[0]["MaxID"]); snindex = ValidateSN(snindex + 1); string sql3 = "UPDATE sys_DataSNDetail SET MaxID=@Value WHERE DocCode=@DocCode AND Seed=@Seed"; SqlParameterProvider p3 = new SqlParameterProvider(); p3.AddParameter("@Value", SqlDbType.Int, snindex); p3.AddParameter("@DocCode", SqlDbType.VarChar, 50, Model.DocCode); p3.AddParameter("@Seed", SqlDbType.VarChar, 50, DocSeed); db.ExecuteNonQuery(sql3, p3); } else { snindex = ValidateSN(1); string sql4 = "INSERT INTO sys_DataSNDetail(DocCode,Seed,MaxID) VALUES(@DocCode, @Seed, @Value)"; SqlParameterProvider p4 = new SqlParameterProvider(); p4.AddParameter("@Value", SqlDbType.Int, snindex); p4.AddParameter("@DocCode", SqlDbType.VarChar, 50, Model.DocCode); p4.AddParameter("@Seed", SqlDbType.VarChar, 50, DocSeed); db.ExecuteNonQuery(sql4, p4); } string snvalue = snindex.ToString().PadLeft(Length, '0'); if (DocType.ToUpper() == "CUSTOMER") { return(DocHeader + snvalue); } else { return(DocHeader + Separate + snvalue); } }