/// <summary> /// Hàm trả về số thứ tự mới của giao dịch trong ngày /// </summary> /// <returns></returns> private static string DocumentIdNewSeqRegister() { // tìm số thứ tự lớn nhất của giao dịch trong ngày. string temp_curr_max = BaseParameters.Search("transaction_id_max_seq", true).Value; long seq = Convert.ToInt64(temp_curr_max); // tăng thứ tự thêm 1 seq++; // cập nhật số thứ tự mới BaseParameters.Edit("transaction_id_max_seq", seq.ToString()); return(seq.ToString()); }
/// <summary> /// Hàm sinh số năm giao dịch theo các định dạng /// </summary> /// <param name="formatstr">chuỗi ký tự định dạng</param> /// <returns></returns> private static string Y2Docid(string formatstr) { string restr = ""; switch (formatstr) { case "y": restr = BaseParameters.ToDay().TransDate.Year.ToString().Substring(3, 1); break; case "yy": restr = BaseParameters.ToDay().TransDate.ToString("yy"); break; case "yyyy": restr = BaseParameters.ToDay().TransDate.ToString("yyyy"); break; } return(restr); }
/// <summary> /// Hàm sinh mã chứng từ mới /// </summary> /// <returns>số chứng từ mới</returns> protected string GenerateDocId() { string str_return = ""; StringBuilder returnstr = new StringBuilder(); // ký tự phân cách char[] sp = new char[] { '%' }; //AppSetting ast = new AppSetting(); Parameter_Info pi = BaseParameters.Search("document_id_format"); // lấy định dạng của số chứng từ //string doc_format = ast.GetValue("document_id_format"); string doc_format = pi.Value; if (string.IsNullOrEmpty(doc_format)) { // mặc định nếu không có format định dạng cụ thể thì số // chứng từ sẽ được định dạng là 14 ký tự theo kiểu yyMMdd######## // yyMMdd là ngày tháng // ######## là số thứ tự tăng dần doc_format = ""; str_return = DateTime.Now.ToString("yyMMdd") + Mark2Docid("#6"); } else { foreach (string b in doc_format.Split(sp)) { if (!string.IsNullOrEmpty(b)) { switch (b.Substring(0, 1).ToLower()) { case "y": // ký tự năm returnstr.Append(Y2Docid(b)); break; case "M": // ký tự tháng if (b == "MM") { returnstr.Append(BaseParameters.ToDay().TransDate.ToString("MM")); } else { returnstr.Append(BaseParameters.ToDay().TransDate.ToString("M")); } break; case "d": // ký tự ngày if (b == "dd") { returnstr.Append(BaseParameters.ToDay().TransDate.ToString("dd")); } else { returnstr.Append(BaseParameters.ToDay().TransDate.ToString("d")); } break; case "c": // mã categories code // để dự phòng chưa dùng break; case "#": // số thứ tự tăng dần, 6 ký tự. returnstr.Append(Mark2Docid(b)); break; case "j": // số thứ tự ngày trong năm (julian date) returnstr.Append(BaseParameters.ToDay().TransDate.DayOfYear.ToString().PadLeft(3, '0')); break; default: // Mặc định ký tự returnstr.Append(b); break; } str_return = returnstr.ToString(); } } } return(str_return); }