@robcole84 What you want can solved through standard functionality of Blanket Purchase Orders (you need to get the Advanced Purchasing module). No custom code/ development needed - you do need to be disciplined about getting the Blanket PO's, quantities, dates etc setup correctly upfront.