Beispiel #1
0
        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);
        }