Basically delivery can be done partially at multiple time. Suppose 100$ is initial order then, at time of order creation deposit will be 20 $. Now If delivery is being created then at time of delivey if the delivery is being done first time based on customer request(for 30 $) then we will block delivery for 10 $ extra amount. But if customer wants delivery only for 10 $ then we will deliver goods as he has already made advance payment (deposit) of 20 $ and asking goods only for 10$.
Now his deposit will be reduced to 10 $ and he will also be requested for 8 $ extra deposit. 18 $ should be deposited for 90 $ remaining order. This is being done with GTM module.