public static DB_ChartOfAccountCodeMargin GetChartOfAccountCodeMargin(ChartOfAccountCodeMargin_p chartOfAccountCodeMargin) { if (chartOfAccountCodeMargin == null) { return(DB_ChartOfAccountCodeMargin.None); } return((DB_ChartOfAccountCodeMargin)Convert.ToInt32(chartOfAccountCodeMargin.ID)); }
public static List <ChartOfAccount_cu> GetChartOfAccountOfPreviousCodeMargin(object chartOfAccountCodeMarginID, bool isDebit) { if (chartOfAccountCodeMarginID == null) { return(null); } ChartOfAccountCodeMargin_p codeMargin = ChartOfAccountCodeMargin_p.ItemsList.Find( item => Convert.ToInt32(item.ID).Equals(Convert.ToInt32(chartOfAccountCodeMarginID))); if (codeMargin == null) { return(null); } DB_ChartOfAccountCodeMargin chartOfAccountCodeMargin = (DB_ChartOfAccountCodeMargin)Convert.ToInt32(codeMargin.ID); return(GetChartOfAccountOfPreviousCodeMargin(chartOfAccountCodeMargin, isDebit)); }
public static int GetChartOfAccountCodeMarginNumberOfDigits(object chartOfAccountCodeMarginID) { ChartOfAccountCodeMargin_p chartOfAccountCode = GetChartOfAccountCodeMargin(chartOfAccountCodeMarginID); if (chartOfAccountCode == null) { return(0); } int numberOfDigits = 0; DB_ChartOfAccountCodeMargin chosenAccountCodeMargin = (DB_ChartOfAccountCodeMargin)Convert.ToInt32(chartOfAccountCode.ID); switch (chosenAccountCodeMargin) { case DB_ChartOfAccountCodeMargin.FirstMargin: numberOfDigits = numberOfDigits + chartOfAccountCode.NumberOfDigits; break; case DB_ChartOfAccountCodeMargin.SecondMargin: numberOfDigits = numberOfDigits + Convert.ToInt32(chartOfAccountCode.NumberOfDigits) + GetChartOfAccountCodeMarginNumberOfDigits((int)DB_ChartOfAccountCodeMargin.FirstMargin); break; case DB_ChartOfAccountCodeMargin.ThirdMargin: numberOfDigits = numberOfDigits + Convert.ToInt32(chartOfAccountCode.NumberOfDigits) + GetChartOfAccountCodeMarginNumberOfDigits((int)DB_ChartOfAccountCodeMargin.SecondMargin); break; case DB_ChartOfAccountCodeMargin.FourthMargin: numberOfDigits = numberOfDigits + Convert.ToInt32(chartOfAccountCode.NumberOfDigits) + GetChartOfAccountCodeMarginNumberOfDigits((int)DB_ChartOfAccountCodeMargin.ThirdMargin); break; case DB_ChartOfAccountCodeMargin.FifthMargin: numberOfDigits = numberOfDigits + Convert.ToInt32(chartOfAccountCode.NumberOfDigits) + GetChartOfAccountCodeMarginNumberOfDigits((int)DB_ChartOfAccountCodeMargin.FourthMargin); break; } return(numberOfDigits); }
public static string GetNextChartOfAccountSerial(DB_ChartOfAccountCodeMargin chartOfAccountCodeMargin, object parentChartofAccountID) { string nextSerial = "1"; if (ChartOfAccount_cu.ItemsList.Count == 0) { return(nextSerial); } ChartOfAccount_cu parentChartOfAccount = null; if (parentChartofAccountID != null) { parentChartOfAccount = ChartOfAccount_cu.ItemsList.Find(item => Convert.ToInt32(item.ID).Equals(Convert.ToInt32(parentChartofAccountID))); } long parentSerial = -1; if (parentChartOfAccount != null) { parentSerial = parentChartOfAccount.Serial; } List <ChartOfAccount_cu> chartOfAccountsList = ChartOfAccount_cu.ItemsList.FindAll( item => Convert.ToInt32(item.ChartOfAccountCodeMargin_P_ID).Equals((int)chartOfAccountCodeMargin)); if (parentChartOfAccount != null) { chartOfAccountsList = chartOfAccountsList.FindAll( item => item.ParentChartOfAccount_CU_ID != null && Convert.ToInt32(item.ParentChartOfAccount_CU_ID).Equals(Convert.ToInt32(parentChartofAccountID))); } ChartOfAccountCodeMargin_p chartOfAccountCodeMarginP = ChartOfAccountCodeMargin_p.ItemsList.Find( item => Convert.ToInt32(item.ID).Equals(Convert.ToInt32(chartOfAccountCodeMargin))); long allowedNumerOfDigits = GetChartOfAccountCodeMarginNumberOfDigits(Convert.ToInt32(chartOfAccountCodeMargin)); long previousAllowedNumberOfDigits = 0; long chartOfAccountCodeMarginNumberOfDigits = 0; string numberOfZeros = ""; ChartOfAccount_cu lastChartOfAccount = null; if (chartOfAccountsList.Count > 0) { lastChartOfAccount = chartOfAccountsList.OrderByDescending(item => item.Serial).ToList().First(); } char[] arry = null; int index = 0; switch (chartOfAccountCodeMargin) { #region FirstMargin case DB_ChartOfAccountCodeMargin.FirstMargin: if (chartOfAccountsList.Count == 0) { return(nextSerial); } if (lastChartOfAccount == null) { return(nextSerial); } nextSerial = Convert.ToString(lastChartOfAccount.Serial + 1); if (nextSerial.Length > allowedNumerOfDigits) { return(String.Empty); } break; #endregion #region SecondMargin case DB_ChartOfAccountCodeMargin.SecondMargin: if (chartOfAccountsList.Count == 0) { return("0" + nextSerial); } if (lastChartOfAccount == null) { return("0" + nextSerial); } nextSerial = Convert.ToString(lastChartOfAccount.Serial + 1); previousAllowedNumberOfDigits = GetChartOfAccountCodeMarginNumberOfDigits(Convert.ToInt32(DB_ChartOfAccountCodeMargin.FirstMargin)); arry = nextSerial.ToCharArray(); if (arry.Length == 0) { return(string.Empty); } index = 0; nextSerial = ""; foreach (char character in arry) { index++; if (index > previousAllowedNumberOfDigits) { nextSerial = nextSerial + character; } } if (nextSerial.Length > allowedNumerOfDigits) { return(String.Empty); } break; #endregion #region ThirdMargin case DB_ChartOfAccountCodeMargin.ThirdMargin: if (chartOfAccountsList.Count == 0) { return("0" + nextSerial); } if (lastChartOfAccount == null) { return("0" + nextSerial); } nextSerial = Convert.ToString(lastChartOfAccount.Serial + 1); previousAllowedNumberOfDigits = GetChartOfAccountCodeMarginNumberOfDigits(Convert.ToInt32(DB_ChartOfAccountCodeMargin.SecondMargin)); arry = nextSerial.ToCharArray(); if (arry.Length == 0) { return(string.Empty); } index = 0; nextSerial = ""; foreach (char character in arry) { index++; if (index > previousAllowedNumberOfDigits) { nextSerial = nextSerial + character; } } if (nextSerial.Length > allowedNumerOfDigits) { return(String.Empty); } break; #endregion #region FourthMargin case DB_ChartOfAccountCodeMargin.FourthMargin: if (chartOfAccountsList.Count == 0) { return("0" + nextSerial); } if (lastChartOfAccount == null) { return("0" + nextSerial); } nextSerial = Convert.ToString(lastChartOfAccount.Serial + 1); previousAllowedNumberOfDigits = GetChartOfAccountCodeMarginNumberOfDigits(Convert.ToInt32(DB_ChartOfAccountCodeMargin.ThirdMargin)); arry = nextSerial.ToCharArray(); if (arry.Length == 0) { return(string.Empty); } index = 0; nextSerial = ""; foreach (char character in arry) { index++; if (index > previousAllowedNumberOfDigits) { nextSerial = nextSerial + character; } } if (nextSerial.Length > allowedNumerOfDigits) { return(String.Empty); } break; #endregion #region FifthMargin case DB_ChartOfAccountCodeMargin.FifthMargin: if (chartOfAccountsList.Count == 0) { return("00" + nextSerial); } if (lastChartOfAccount == null) { return("00" + nextSerial); } previousAllowedNumberOfDigits = GetChartOfAccountCodeMarginNumberOfDigits(Convert.ToInt32(DB_ChartOfAccountCodeMargin.FourthMargin)); allowedNumerOfDigits = allowedNumerOfDigits - previousAllowedNumberOfDigits; for (int i = 0; i < allowedNumerOfDigits; i++) { numberOfZeros = numberOfZeros + "0"; } nextSerial = Convert.ToString(chartOfAccountsList.Count + 1); nextSerial = Convert.ToInt64(nextSerial).ToString(numberOfZeros); break; #endregion } return(nextSerial); }