Меня попросили применить некоторую «умную» логику для оценки дат отгрузки товаров, которые были размещены на последнем заказе. Логика, которую они хотели бы использовать, заключается в следующем:
Пирог в небе
Если у нас больше заказов, чем по какому-либо отдельному заказу на покупку, рассчитайте, какие заказы на продажу будут подтверждать какие входящие заказы на покупку, и отобразите соответствующую дату.
Пример:
Open Sales Orders
SO# 123455 – Req Date 12/15/10 – PN A000123 Backorder 2 pcs.
SO# 123462 – Req Date 12/16/10 – PN A000123 Backorder 7 pcs.
SO# 123941 – Req Date 12/17/10 – PN A000123 Backorder 4 pcs.
Open Purchase Orders
PO# 987654 – Promised 12/29/10 – 5 pcs.
PO# 994258 – Promised 1/15/11 – 15 pcs.
Dates we should be displaying
SO# 123455 – ESD = 12/29/10
SO# 123462 – ESD = 1/15/11
SO# 123941 – ESD = 1/15/11
Я знаю, что мог бы создать временную таблицу для хранения информации об открытом заказе на поставку, а затем с помощью курсора захватить каждый открытый заказ на продажу в порядке запрошенной даты, а затем получить самое раннее заказ на поставку, удовлетворяющий требуемому количеству, и затем уменьшить это количество с этого ПО. Чтобы сделать вещи более интересными, мы отправим частичные заказы, поэтому, если первый заказ был на 7, мы отправили бы 5 и разместили оставшиеся 2 на последующем заказе. Таким образом, это будет что-то вроде «5 отправлено 29.12.10, остальные 2 будут отправлены 15.01.11». Любые рекомендации?