| | |
| | | } |
| | | return sBillNo; |
| | | |
| | | case 1://根据 YY年+MM月 + 流水号 生成单据号 |
| | | case 1://根据 YY年+MM月 日 + 流水号 生成单据号 (日 采用了 仓库的字段) |
| | | sKjYear = sKjYear.Substring(2, 2); |
| | | sPeriod = "0" + sPeriod; |
| | | sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); |
| | |
| | | oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'"); |
| | | } |
| | | return sBillNo; |
| | | |
| | | case 2: //根据年+月+日 生成单据号 |
| | | Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'", "Gy_MaxNum"); |
| | | if (Ds.Tables[0].Rows.Count != 0) |
| | |
| | | oCn = null; |
| | | } |
| | | |
| | | //得到最大单据号 |
| | | public static string CreateBillCode(string BillCode,string HOrgNumber,Int64 HOrgID,string HWhNumber, ref string sReturn, bool Add) |
| | | { |
| | | Int64 BillCodeMode; |
| | | string Profix; |
| | | Int64 Glida; |
| | | Int32 CodeLen; |
| | | string sBillNo = ""; |
| | | 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(); |
| | | Ds = oCn.RunProcReturn("Select * from Gy_BillNumber where BillCode='" + BillCode.Trim() + "'", "Gy_BillNumber"); |
| | | if (Ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | BillCodeMode = ClsPub.isLong(Ds.Tables[0].Rows[0]["BillCodeMode"].ToString()); |
| | | Profix = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["Profix"].ToString()); |
| | | Glida = ClsPub.isLong(Ds.Tables[0].Rows[0]["Glida"].ToString()); |
| | | CodeLen = ClsPub.isInt(Ds.Tables[0].Rows[0]["CodeLen"].ToString()); |
| | | } |
| | | else |
| | | { |
| | | return ""; |
| | | } |
| | | // |
| | | string sStr; |
| | | switch (BillCodeMode) |
| | | { |
| | | case 0: |
| | | switch (Glida) |
| | | { |
| | | case 0://纯流水号 |
| | | Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "'", "Gy_MaxNum"); |
| | | if (Ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length); |
| | | sBillNo = Profix.Trim() + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim(); |
| | | } |
| | | else //插入新记录 |
| | | { |
| | | sStr = new string(c, CodeLen - 1); |
| | | oCn.RunProc("insert into Gy_MaxNum(BillCode,NowNumber) values('" + BillCode.Trim() + "',1)"); |
| | | sBillNo = Profix.Trim() + sStr + 1; |
| | | } |
| | | if (Add == true) |
| | | { |
| | | oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "'"); |
| | | } |
| | | return sBillNo; |
| | | |
| | | case 1://根据 YY年+MM月 日 + 流水号 生成单据号 (日 采用了 仓库的字段) |
| | | sKjYear = sKjYear.Substring(2, 2); |
| | | sPeriod = "0" + sPeriod; |
| | | sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); |
| | | sDay = ""; |
| | | Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'", "Gy_MaxNum"); |
| | | if (Ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length); |
| | | sBillNo = Profix.Trim() + sKjYear + sPeriod + sDay + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim(); |
| | | } |
| | | else //插入新记录 |
| | | { |
| | | sStr = new string(c, CodeLen - 1); |
| | | oCn.RunProc("insert into Gy_Maxnum(BillCode,Kjyear,Period,whcode,NowNumber) values('" + BillCode.Trim() + "','" + sKjYear + "','" + sPeriod + "','" + sDay + "',1)"); |
| | | sBillNo = Profix.Trim() + sKjYear + sPeriod + sDay + sStr + "1"; |
| | | } |
| | | if (Add == true) |
| | | { |
| | | oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'"); |
| | | } |
| | | return sBillNo; |
| | | case 2: //根据年+月+日 生成单据号 (这功能 好像是作废了) |
| | | Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'", "Gy_MaxNum"); |
| | | if (Ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length); |
| | | sBillNo = Profix.Trim() + sKjYear + ClsPub.isStrNull(("0" + sPeriod)).Substring(ClsPub.isStrNull(("0" + sPeriod)).Length - 2, 2) + ClsPub.isStrNull(("0" + sDay)).Substring(ClsPub.isStrNull(("0" + sDay)).Length - 2, 2) + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim(); |
| | | } |
| | | else //插入新记录 |
| | | { |
| | | sStr = new string(c, CodeLen - 1); |
| | | oCn.RunProc("insert into Gy_Maxnum(BillCode,Kjyear,Period,whcode,NowNumber) values('" + BillCode.Trim() + "','" + sKjYear + "','" + sPeriod + "','" + sDay + "',1)"); |
| | | sBillNo = Profix.Trim() + sKjYear + ClsPub.isStrNull(("0" + sPeriod)).Substring(ClsPub.isStrNull(("0" + sPeriod)).Length - 2, 2) + ClsPub.isStrNull(("0" + sDay)).Substring(ClsPub.isStrNull(("0" + sDay)).Length - 2, 2) + sStr + 1; |
| | | } |
| | | if (Add == true) |
| | | { |
| | | oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'"); |
| | | } |
| | | return sBillNo; |
| | | case 3://根据 前缀+组织+ YY年+MM月 + 流水号 生成单据号 (组织 采用了 仓库的字段) |
| | | sKjYear = sKjYear.Substring(2, 2); |
| | | sPeriod = "0" + sPeriod; |
| | | sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); |
| | | |
| | | Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + HOrgNumber + "'", "Gy_MaxNum"); |
| | | if (Ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length); |
| | | sBillNo = Profix.Trim() + HOrgNumber + sKjYear + sPeriod + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim(); |
| | | } |
| | | else //插入新记录 |
| | | { |
| | | sStr = new string(c, CodeLen - 1); |
| | | oCn.RunProc("insert into Gy_Maxnum(BillCode,Kjyear,Period,whcode,NowNumber) values('" + BillCode.Trim() + "','" + sKjYear + "','" + sPeriod + "','" + HOrgNumber + "',1)"); |
| | | sBillNo = Profix.Trim() + sKjYear + sPeriod + sDay + sStr + "1"; |
| | | } |
| | | if (Add == true) |
| | | { |
| | | oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + HOrgNumber + "'"); |
| | | } |
| | | return sBillNo; |
| | | default: |
| | | return sBillNo; |
| | | |
| | | } |
| | | |
| | | case 1: |
| | | return sBillNo; |
| | | |
| | | default: |
| | | return sBillNo; |
| | | |
| | | } |
| | | oCn.CnClose(); |
| | | oCn.CnDispose(); |
| | | oCn = null; |
| | | } |
| | | |
| | | |
| | | //得到最大单据号2 |
| | | public static string CreateBillCode(string BillCode, ref string sReturn, bool Add,ClsSqlHelper oCn) |