Dear Ripon,
There is one option you can explore.. Activity Profiles.
In SPRO-> Logistics Execution-> Transportation -> Define & assign activity Profiles.
In activity Profile, you can set "Carry out billing" as a Further Function.
this creates a automatic bill as soon as Shipment is saved.
You can assign this activity profile to the shipment status you desire.. like shipment end..
Again, this may not be as per your requirement of Single Invoice per Shipment.
But given your invoice splitting criteria and other regular customization settings, it can create one invoice per shipment.
but if you dont want auto billing, you will have to go by Lakshmipati ji's suggestion.
Sunil.