public static IList <IPO> GetNextPO(long value, POValueType valueType, int facilityNumber = 960) { List <IPO> poList = new List <IPO>(); string whereClause = string.Empty; switch (valueType) { case POValueType.VBU_UNKNOWN: case POValueType.HOVBU: long vbu = GetSFVBU(value, facilityNumber); value = vbu == -1? value : vbu; goto case POValueType.SFVBU; case POValueType.PO: PO tempPO = new PO(value); value = tempPO.ShipFromVBU; goto case POValueType.SFVBU; case POValueType.SFVBU: whereClause = "(((LOWES.W001_PO_DAL_HDR.T063_LCT_NBR)={1}) " + "AND ((LOWES.W001_PO_DAL_HDR.RCP_CD_TXT)='N') " + "AND ((LOWES.W001_PO_DAL_HDR.P028_VND_NBR)={0}) " + "AND ((LOWES.W002_PO_DAL_DTL.RCV_QTY)=0))"; break; case POValueType.ITEM: whereClause = "(((LOWES.W002_PO_DAL_DTL.T063_LCT_NBR)={1}) " + "AND LOWES.W002_PO_DAL_DTL.RCV_QTY = 0 " + "AND ((LOWES.W002_PO_DAL_DTL.T024_ITM_NBR)={0}) " + "AND ((LOWES.W001_PO_DAL_HDR.RCP_CD_TXT)='N'))"; break; default: break; } whereClause = string.Format(whereClause, value, facilityNumber); ADODB.Recordset rs = HostConnection.GetInstance().Recordset(string.Format(Properties.Resources.GetNextAvailPO, whereClause)); if (!(rs.BOF && rs.EOF)) { poList = rs.GetPOsFromList().ToList(); rs.Close(); rs = null; } return(poList); }