cancel
Showing results for 
Search instead for 
Did you mean: 

Billing block on order with proforma invoice

Former Member
0 Kudos

Hi,

In our process, we take on new customers who need a pro forma invoice to pay us but often the final amount varies from what was initially expected. There is no delivery and the Proforma will create from the order. However, we will correct the order with the final quantity (service time) once the customer visit ends. e.g. an order was $100 and the pro forma invoice was sent for $100. it turns out the final service was for 150 - the customer at the moment pays only 100 but will pay the rest when we send the bill. Once the service is complete the order is corrected to 150. The volume is high so we have billing jobs running to create the invoices from the orders.

Exploring 2 options:

1. To make the correction, we want an automatic billing block put on the order once a proforma is generated. When the order is corrected subsequently, we will remove the block too. If it can't be done automatically, then 2 below:

2. One can't generate the pro-forma if there is no billing block on the order. This is to prevent the person responsible to print it if he/she forgets to put the block

Either of the 2 scenarios will work for us. Is there any user exit which can do this?

Thanks a lot.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

If you are handling these orders with a different order type, then just default the order with a billing block"Review pending" using OVV3, don't assign this block for the Proforma invoice, but assign it to the regular invoice using OVV4 .

Then you can always make sure that a billing block exists on the order before the proforma invoice gets printed.

Option 2. If you are not using specific order type for the process.

In this case think about assigning the billing block for the orders that are being placed by the new customers, try to figure out a logic to identify the new customers..

On the whole, <b> If possible</b> I feel its better to assign the default order block rather than creating a new program to assign the BILLING BLOCKS for all the orders that have Proforma Invoices printed and run this program in Background every day or twice a day when ever required..

Let me know if you need any more help

Regards,

Ajai.

Don't forget to reward points if helpful.

Former Member
0 Kudos

Thanks, Ajai. The fist one i..e default billing block is not an option for us as it is the same order type.

Assuming I have a way to identify the customer (actually we will be using a one time customer for this purpose by changing its address every time for the new order - so account group KNA1-KTOKD will be an option), what can we use to do this? USEREXIT_MOVE_FIELD_TO_VBAK? Or any other?

Former Member
0 Kudos

Thats cool.

So use the exit that you planned to USEREXIT_MOVE_FIELD_TO_VBAK.

In the above exit, for VBAK-KUNNR get the Account number from KNA1 table KNA1-KTOKD and if it is equal to One time customers group.. then.. Assign the billing block to the field VBAK-FAKSK . Make sure this billing block is assigned to the billing document type F2 or which ever you use to create the customer billing document. Use T.Code OVV4. This is to make sure that the billing document will not be created if you assign the billing block to the order.

This will resolve your issue.

Regards,

Ajai.

Don't forget to reward points if userful.