There is no standard feature that allows to set a purchase line as underdelivered and "close" the order.
If you receive less than expected you can simply post the receipt, update the quantity in the order so that it matches the quantity received and post.
I know there are extensions that allow a warehouse receipt line to be marked as "complete" if the quantity received is less that the quantity in the source document line (it works on sales returns too).