Invoice Based on Material
Hi Experts,
I have a new customer requirement, Customer does not want invoices based on the order They want invoices on monthly basis and based on the material means like they want the invoice for all the orders with material A for the month of April 2011.
I tried to search something logical in forum but was not able to find it, any suggestions will be appreciated.
Regards,
Jain
HI
Better you go for yr customised programme where u can have option to enter material and check delivery table and get all delivery no for that particular material and then do billing and invoice. Take help of your ABAPer give him your requirement with logic for monthly billing and sure he will be able to write a customised programme to fulfill yr requirement.
In short, Here is the way..... Get a customised programme where you select all dliveries for a partuicular period by date range, from delivery table based on material and call VF01 ( as u know billing is based on payer. Payer must be same for all deliveries. U can add to check payer criteria as well with material) and then invoice.
Have a nice day!
Thanks
DK:)
Edited by: Dwarkesh Thakkar on Jun 24, 2011 12:17 PM
Similar Messages
-
Excise Invoice- Based on Billing Plan
Dear All,
Here in my client's place, we have a requirement like,
For a project-XYZ we create one sales order with materials A,B & C.
For this sales order we maintain billing plan 50% = X1 Rupees ,
25% = X2 Rupees ,
and 25% = X3 Rupees.
When project is finished 50% we create billing with X1 amount with reference of sales order and then we create excise invoice based on this billing document (NO delivery) and send it with material.
And for second billing for X2 amount SAP is not allowing to create excise invoice and throws message like modvat utilization has been done already.
Kindly suggest how to proceed and how to create excise invoice for remaining two amounts.
Thanks & RegardsHi ,
Thanks for your responce...
Is there any transaction code for removing the billing block automatically in the sales order and how can i indentify the date category as per billing plan..
Thank you very much..
Thanks in advance.
Regards,
KV -
Creation of Invoice based on Qty wise
Hi SD Experts,
I want to know how to split invoice based on quantity?
--Sales order A material is 5 qty
--Delivery is created with qty 5
--Now I need to create 5 invoices for a qty of 1 each.
Regards
PradeepHi Pradeep,
Go Vov7 and select the item category for which you want the invoice split. There select the appropriate billing quantity option (I guess it should be K, please recheck as i am not accessing the system now). After this when you will create the invoice you can change the invoice quantity.
If you need the process auto mated then create new copy control routine with the help of abaper by copying the standard routine.
Hope this will help you.
Do revert back to the forum if have some concerns.
Thanks and Regards,
Atulkumar Dagade -
Excise Invoice Capturing thru Material Document
Hi Gurus,
When i am trying to capture Excise Based on Material document i am getting a Error
"PLA-AT2 amount 18.05.2009 is greater than available amount".
How to rectify.
Thanks in advance
Ganapathy.VHi Vikas,
I made a PO for a material with excise.
At the time of GR i have not recd the Excise Copy from the Vendor.
So i made the GR by Selecting create with Excise Entry.
Now i rece the Excise Copy.
I want to do the part 1-Capturing of Excise in J1iex Capture Excise
After that my Excise department will Check and Post the Part2 in J1iex Post the Excise invoice.
This is the Scenario.
Now i am getiing the Error in Capturing Stage.
Tks/Rgds
Ganapathy. -
Billing Copy control-invoice split by material document
Splitting the invoice based on the material Document(ekbe-belnr). Suppose i have 3 material documents for one Purchase order. Based on the 3 material documents, it shpould create 3 invoices. So for this i created a routine. Its for billing document copy control. But my routine is combining all the material document quantities and it creating only one invoice but i required multiple invoices based on no of material document. i wrote code like this. Its urgent..
FORM daten_kopieren_901.
TABLES: kna1.
DATA : v_kunnr TYPE kunag,
v_katr2 TYPE katr2,
v_belnr TYPE ekbe-belnr,
v_bewtp TYPE ekbe-bewtp.
DATA: BEGIN OF it_zuk1,
modul(3) VALUE '904',
vtweg LIKE vbak-vtweg,
spart LIKE vbak-spart,
belnr LIKE ekbe-belnr,
vgbel LIKE vbrp-vgbel,
END OF it_zuk1.
TYPES:BEGIN OF t_ekbe,
belnr TYPE ekbe-belnr,
bewtp TYPE ekbe-bewtp,
flag TYPE c, "Rajiv
END OF t_ekbe.
TYPES:BEGIN OF t_vbap,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
END OF t_vbap.
TYPES:BEGIN OF t_vbep,
banfn TYPE vbep-banfn,
END OF t_vbep.
TYPES:BEGIN OF t_eban,
ebeln TYPE eban-ebeln,
ebelp TYPE eban-ebelp,
END OF t_eban.
STATICS:i_ekbe TYPE STANDARD TABLE OF t_ekbe.
DATA: wa_ekbe TYPE t_ekbe.
DATA: i_vbap TYPE STANDARD TABLE OF t_vbap.
DATA: i_vbep TYPE STANDARD TABLE OF t_vbep.
DATA: i_eban TYPE STANDARD TABLE OF t_eban.
SELECT vbeln posnr FROM vbap INTO TABLE i_vbap
WHERE vbeln = vbak-vbeln.
IF sy-subrc = 0.
SELECT banfn FROM vbep INTO TABLE i_vbep
FOR ALL ENTRIES IN i_vbap
WHERE vbeln = i_vbap-vbeln
AND posnr = i_vbap-posnr.
ENDIF.
IF sy-subrc = 0.
SELECT ebeln ebelp FROM eban INTO TABLE i_eban
FOR ALL ENTRIES IN i_vbep
WHERE banfn = i_vbep-banfn.
ENDIF.
IF sy-subrc = 0.
SELECT belnr bewtp FROM ekbe INTO TABLE i_ekbe
FOR ALL ENTRIES IN i_eban
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp.
endif.
LOOP AT i_ekbe INTO wa_ekbe WHERE flag NE 'X'.
IF ( ( wa_ekbe-bewtp = 'E' ) OR ( wa_ekbe-bewtp = 'R' ) OR
( wa_ekbe-bewtp = 'Q' ) ).
it_zuk1-vtweg = vbak-vtweg.
it_zuk1-spart = vbak-spart.
it_zuk1-belnr = wa_ekbe-belnr.
it_zuk1-vgbel = vbrp-vgbel.
wa_ekbe-flag = 'X'.
MODIFY i_ekbe FROM wa_ekbe TRANSPORTING flag.
vbrk-zukri = it_zuk1.
EXIT.
ENDIF.
ENDLOOP.
REFRESH: i_vbap,i_vbep,i_eban,i_ekbe.
ENDFORM.Hi Ramana,
I'm afraid this is not possible. Correct me if I'm wrong: You have a TPO scenario in which you create a purchase order for a sales order item. This purchase order may have multiple GR? As billing is based on the sales order position (which is only one) there is no way to split this one position into multiple lines for each GR. This would only work if there is a 1:1 relation between sales order item and GR!
Regards,
John. -
How to make invoicing based on GRN
Dear All,
How can we create Invoice Based on GRN...normally when we go to MIRO the option..we see under
PO Reference
- Purchase Order / Schel. Agr.
- Delivery Note
Can we create invoice based on GRN (Material Document)...???
cheersHI
Enter the delivery note number while doing the GR in MIGO.
While doing the invoice select the delivery note as reference and give the delivery number which you have given in the MIGO.
system will propose all the details of the material document in the invoive.
Regards
Srinivas. -
Creation of A/R Down Payment Invoice based on Sales Order not logical
When creating a A/R Down Payment Invoice based on a Sales Order you
have the option to create multible ones. Which by itself could be
usefull to create one of 50 % for a certain day and decide they need to
pay another 25 % at a later date.
But SBO does not track what already have been posted. Therefore you can
create a sum more then a 100% without warning or blockage.
Tested this in SBO 2007 A SP:00 PL:00
Scenario:
Sales - AR>Sales Order
Create and post a Sales Order
Sales - AR>A/R Down Payment Invoice
Create an A/R Down Payment
Select the BP and copy the Sales Order
Set DPM to 40%
Post the A/R Down Payment
Sales - AR>A/R Down Payment Invoice
Create an A/R Down Payment
Select the BP and copy the Sales Order
Set DPM to 100%
Post the A/R Down Payment
Sales - AR>A/R Down Payment Invoice
Create an A/R Down Payment
Select the BP and copy the Sales Order
Set DPM to 70%
Post the A/R Down Payment
Making the total for the Sales Order 210% worth of Down Payment
Invoices without warning/blocking. I would expected that you would only
be able to set the rest sum %. For instance first scenario I entered
60% therefore setting the second Down Payment Invoice to a max of 40%
Untill you have used up the 100% and you cannot select the Sales Order
in question..
If multible users do the same work, SBO doesn't show that it has
already been done. Same if you forgot you already created it you can
still create one. Plus sometimes it will happenyou create the Down
Payment Invoice and not paying attention you create the first one with
a 100% and later with the intended percentage..Hello Petronella,
you are right that B1 is not checking the total value of DP created from the Sales Order.
The logic and checking procedure here is only between Sales Order -> Delivery/Invoice.
DP Invoice is considered as transaction related to document the receipt of the money (parallel to the sales process). Between the moment of basing of DP to Sales Order it is still possibility to adjust Sales Order as there is no posting behind Sales Order.
The question is what would be a checking procedure in case that on Sales Order there is based Delivery and DP? What would be the system priority to take into a consideration?
Regards,
Martin Slavik
Regional Solution Manager -
How to generat multiple invoices based on per employee/contractor/services?
Hello Experts / Dina,
I am in situation where customer is in business of body shopping and charges to his final customer based on individual invoice / per employee /contracor & customer services. This was happening in legacy system but after the implementation of Oracle Project costing and Oracle Project billing, customer is not able to generate invoices per employee services. Rather consolidated invoices are getting generated.
How to achieve this functionality in oracle project billing?
Lets take example - On Project P1 for customer ABC, 3 below employees are working on different task for 3 months.
Now after one month employees have been billed as shown below.
Emp 1 - 1000 USD - for 100 Hrs
Emp 2 - 2000 USD - for 200 Hrs
Emp 3 - 1000 USD - for 50 hrs
Now @ end of the month when invoice is getting generated is 1 invoice including 3 lines of amount total 4000 USD. There is problem; customer wants that there should be 3 different invoices per employee shoud generated based on above mentiond 3 diff lines for customer ABC.
I guess with oracle projects billing - You can split the invoice based on Accrue through date ( which is not possible in this case ) and agreement ( which is also not possible in this case ) and different currency ( which is again not possible in this case) - I may be wrong when saying it is not possible. plz correct me if I am wrong.
even I guess billing extension wont work. So is there any way to achive this?
Right now only option i am thinking is let single invoice of 4000 USD with 3 different lines should pass to AR and while priniting the invoice customer can create 3 diff prints which includes individual lines. and while applying receipts on the single invoice in the system, customer can apply the receipts to indivual lines.
but I am not sure about AUDIT issues.. Can some one think about any AUDIT issues comes to this approch or issues with TAX rounding amount issues ?
Infact I would like to solve this issue with the help of Oracle Projects billing and not with custom invoice print program. I guess someone from you experts can figure it out to generate muiltple invoice based on employees / suppliers / contractors / materials etc.
A suggestion on Extension / customization / seeded functionality of Oracle Project billing on thi issue would be gr8 help.
Please help.
Thanks
Edited by: oracle_samba on Jan 7, 2013 1:06 AM
Edited by: oracle_samba on Jan 7, 2013 1:07 AMHi Dina,
First of all thanks for your update :-) Your solution looks much promising.
I thought of using billing extension but rejected on the ground that I would end up in generating events based on employee for their corsponding billig amounts so finally generating a consolidated invoice only in One GDI run. But what i was missing was pre-processing extension and running the extention in loop based on employee count.
I am fully sure business would not have any issues of auto approving and releasing invoice upon generation. But my question is "is it possible to just approve the invoice & not release it using auto approve and release extension?" The reason is I think when GDI runs it only deletes Unapproved invoice & spare Approve invoices. - So please suggest.
Also please validate my understanding about your solution with an existing example -
As with the current example, there are 3 EMP presents so need to run GDI 3 times and develop pre-processing ext in a such a way that at each time it will put on hold on all the billable items except EMP1, and EMP2 and EMP3 on each consecutive run respectivly. And ensure that Auto Approve and release extension should be used in order to avoid overriding previously generated invoice? Am I right ?
Many Many thanks for solution !!!
Regards,
:-) -
QC Activity based on Material Production Version
Hi,
Normally, we perform QC activity based on Material Code, i.e. in Material Master we maintain inspection type in QM View for material which needs QC activation during Good Receipt from Production
Is it possible to perform QC Activity based on Production Version of a material i.e.
For Example
Product A having 2 Production Versions
IF Product A with Production Version 1 then No QC required during goods receipt from production
IF Product A with Production Version 2 then QC required during goods receipt from production
So please tell me what feasible solution possible from your side
With Regards,
Kunal ShethDear Sap User,
Production version is nothing just a combination of Master recipe/Routing and BOM used for particular production or process.
If you are having so many production version then you have to choose which you want to choose but if you are having a single production version then it will be chosen automatically.
Do it once and revert in case of any query.
Rgrds,
Dheeraj Rawal
Edited by: Dheeraj89 on Feb 9, 2012 6:13 AM -
Creating an invoice based on a delivery via DI API
Hi,
Each time a user creates a delivery (not always based on a sales order), the add on I have developed creates an invoice based on it. This happens without any issue in most cases but I am receiving the following two errors on the client site and have not been able to recreate the issue here...
One of the base documents has already been closed [INV1.BaseEntry][line: 1]
Number of items drawn is greater than open quantity , 'Item A'
Does anyone have any idea what could be causing this?
Thans for any help,
RobinHi Thomas,
Thanks for teh reply but unfortunately this is not the case - for example...
A delivery which is returning this error for Item A, has a quantity of 20 but has 7400 in stock, so it is not going into a negative quantity.
The only way I could get this error ("Number of items drawn is greater than open quantity"), not using the add on but working within B1, was to create a delivery note, then create an invoice based on it, increase the quantity of the item on the invoice, and the error displays in B1 on the info bar at the bottom.
I cannot see how the user can affect this, as when they are creating the Delivery, the Invoice creation is automatic (triggers on the add button after the Delivery has been successfully added), and they don't even see the Invoice form.
Robin -
HOW TO FIND LAST DOCUMENT DATE BASED ON MATERIAL NUMBER
Hi,
I want to know how to find the last document details based on material number.
Is there any Functional modulle or BAPI programe?
i,e, I want know last goods receipt details (MIGO) based on material number.
Can u please anybody tell me.
Thanks,
S.Muthu.
Edited by: Subramaniyan Marimuthu on Jan 2, 2008 9:07 AMHello.
Check the BAPI_GOODSMVT_GETITEMS
-example--
Get GRs after a specific date for a specific plant/ storage location and movement types
wa_budats-sign = 'I'.
wa_budats-option = 'GE'.
wa_budats-low = '20071201'.
APPEND wa_budats TO budats.
wa_plants-sign = 'I'.
wa_plants-option = 'EQ'.
wa_plants-low = '1000'.
APPEND wa_plants TO plants.
wa_stlocs-sign = 'I'.
wa_stlocs-option = 'EQ'.
wa_stlocs-low = '0001'.
APPEND wa_stlocs TO stlocs.
wa_mvts-sign = 'I'.
wa_mvts-option = 'EQ'.
wa_mvts-low = '101'.
APPEND wa_mvts TO mvts.
wa_mvts-low = '901'.
APPEND wa_mvts TO mvts.
wa_mvts-low = '123'.
APPEND wa_mvts TO mvts.
CALL FUNCTION 'BAPI_GOODSMVT_GETITEMS'
TABLES
plant_ra = plants
stge_loc_ra = stlocs
move_type_ra = mvts
pstng_date_ra = budats
goodsmvt_header = header
goodsmvt_items = item
return = return.
Reward if helpful.
Cheers,
George -
Intercompany Invoice Based on Goods Receipt
Hello,
I am running the following intercompany scenario : Purchase order - replenishment delivery - internal billing document.
- Ordering organization : Cpy A / Sales org A / Plant A
- Supplying organization : Cpy B / Sales org B / Plant B
Standard SAP issues an invoice based on the goods issue, which makes perfect sense. My client's requirement is to trigger the intercompany invoice from the goods receipt at Plant A.Hi
Please check the VTFL Copy control settings.In VTFL check Data VBRK/VBRP routine feild.For your requirement you may have to change the subroutine
If standard subroutines are not meeting your requirement,you may have to add new logic to the subroutine with the help of your ABAP team.
Regards
Srinath -
List of stocks based on material types
Hi,
I need a list of stocks overview based on material types.
Ex:
Need a list of current stocks for finished materials.
Kindly help reg this.
sathyaHi,
Check in MC.9 transaction to get the list of stocks based on the Material types along with materials & material description with Value & stocks
The Report will give you all the details with respect to material types, Material group etc. for a particular period or as on period also.
rgds
gsc -
Po's based on material created
hi,
please help me out in generation of the below report.
<b>display the PO's based on material created by the user.</b>
you can send your views on ' [email protected]'.
thanks in advance.
-Muraly.Hi
Check this report
REPORT ZCOMMITMENT.
*DATA: ED TYPE F.
DATA : ED(15) TYPE N .
TABLES: EKKO, EKBE, EKPO, KONH , KONV ,LFA1 ,ESLL.
TYPE-POOLS: SLIS.
DATA: val1 like konh-vakey.
Data:GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
G_REPID LIKE SY-REPID,
G_GRID_TITLE TYPE LVC_TITLE.
Data:G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
DATA:G_TABNAME TYPE SLIS_TABNAME VALUE 'ITAB1',
G_SAVE .
DATA:GS_VARIANT LIKE DISVARIANT.
DATA:LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA:GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
G_SAVE = 'A'.
DATA: BEGIN OF ITAB OCCURS 10,
EBELN LIKE EKKO-EBELN,
* LIFNR like p_vendor,
LIFNR LIKE EKKO-LIFNR,
NAME1 LIKE LFA1-NAME1,
NAME2 LIKE LFA1-NAME2,
* EBELP LIKE EKBE-EBELP,
BELNR LIKE EKBE-BELNR,
VGABE LIKE EKBE-VGABE,
GJAHR LIKE EKBE-GJAHR,
KNUMV LIKE EKKO-KNUMV,
EKORG LIKE EKKO-EKORG,
BEDAT LIKE EKKO-BEDAT,
* VAKEY LIKE KONH-VAKEY,
END OF ITAB.
DATA: BEGIN OF ITAB1 OCCURS 10,
NAME1 LIKE LFA1-NAME1,
NAME2 LIKE LFA1-NAME2,
EBELN LIKE EKPO-EBELN,
LIFNR LIKE EKKO-LIFNR,
EBELP LIKE EKPO-EBELP,
* EBELP LIKE EKBE-EBELP,
KNUMH LIKE KONH-KNUMH,
BELNR LIKE EKBE-BELNR,
MATNR LIKE EKPO-MATNR,
TXZ01 LIKE EKPO-TXZ01,
PS_PSP_PNR LIKE EKKN-PS_PSP_PNR,
EXTROW LIKE ESLL-EXTROW,
SRVPOS LIKE ESLL-SRVPOS,
KTEXT1 LIKE ESLL-KTEXT1,
KOSTL LIKE EKKN-KOSTL,
NETPR LIKE EKPO-NETPR,
NETWR LIKE EKPO-NETWR,
ED1 TYPE p decimals 2,
KBETR2 LIKE KONV-KBETR,
KBETR1 LIKE KONV-KBETR,
KBETR LIKE KONV-KBETR,
* KBETR3 LIKE KONV-KBETR,
KWERT LIKE KONV-KWERT, " THIS IS FOR FREIGHT
KWERT1 LIKE KONV-KWERT, " THIS IS FOR PBXX OR PB00
KWERT2 LIKE KONV-KWERT, " THIS FOR OTHER CONDITION
MENGE LIKE EKPO-MENGE,
* TOTAL(15) type .
TOTAL TYPE p decimals 2,
VAKEY LIKE KONH-VAKEY,
WERKS LIKE EKPO-WERKS,
MWSKZ LIKE EKPO-MWSKZ,
PACKNO LIKE EKPO-PACKNO,
KNUMV LIKE KONV-KNUMV,
SUB_PACKNO LIKE ESLL-SUB_PACKNO,
GJAHR LIKE RSEG-GJAHR,
END OF ITAB1.
DATA: BEGIN OF ITAB2 OCCURS 10,
EBELN LIKE EKKN-EBELN,
EBELP LIKE EKKN-EBELP,
PS_PSP_PNR LIKE EKKN-PS_PSP_PNR,
KOSTL LIKE EKKN-KOSTL,
END OF ITAB2.
data: begin of itab3 occurs 10,
KNUMH LIKE KONH-KNUMH,
KSCHL LIKE KONH-KSCHL,
end of itab3.
data: begin of itab4 occurs 10,
KBETR LIKE KONP-KBETR,
end of itab4.
data: begin of itab5 occurs 10,
KPOSN LIKE KONV-KPOSN,
KNUMV LIKE KONV-KNUMV,
KSCHL LIKE KONV-KSCHL,
KBETR LIKE KONV-KBETR,
KWERT LIKE KONV-KWERT, " THIS IS FOR FREIGHT
* KAWRT LIKE KONV-KAWRT,
end of itab5.
DATA: BEGIN OF ITAB6 OCCURS 10,
* PACKNO LIKE EKPO-PACKNO,
SUB_PACKNO LIKE ESLL-SUB_PACKNO,
END OF ITAB6.
DATA: BEGIN OF ITAB7 OCCURS 10,
BELNR LIKE RSEG-BELNR,
GJAHR LIKE RSEG-GJAHR,
END OF ITAB7.
DATA: BEGIN OF ITAB8 OCCURS 10,
SUB_PACKNO LIKE ESLL-SUB_PACKNO,
SRVPOS LIKE ESLL-SRVPOS,
EXTROW LIKE ESLL-EXTROW,
KTEXT1 LIKE ESLL-KTEXT1,
END OF ITAB8.
*selection-screen
*SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
*SELECTION-SCREEN SKIP 2.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT 25(23) text-002.
**SELECT-OPTIONS: s_lifnr FOR ekko-lifnr.
*PARAMETERS:p_lifnr LIKE ekko-lifnr obligatory.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
PERFORM get_data.
* PERFORM field_catalog.
* PERFORM display_data.
END-OF-SELECTION.
**& Form display_data
** text
*FORM display_data.
*data: new(15) TYPE N.
* CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
* EXPORTING
* i_callback_program = sy-repid
* it_fieldcat = int_cat[]
* TABLES
* t_outtab = int_out
* EXCEPTIONS
* program_error = 1
* OTHERS = 2.
*ENDFORM. "display_data
PERFORM GET_DATA.
PERFORM CALL_ALV_GRID.
FORM CALL_ALV_GRID.
PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_repid
I_CALLBACK_USER_COMMAND = G_USER_COMMAND
I_GRID_TITLE = G_GRID_TITLE
IT_FIELDCAT = GT_FIELDCAT[]
I_DEFAULT = 'X'
I_SAVE = G_SAVE
IS_VARIANT = Gs_VARIANT
TABLES
T_OUTTAB = ITAB1.
ENDFORM.
FORM FIELDCAT_INIT
USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-seltext_l = 'Vendo No'.
LS_FIELDCAT-FIELDNAME = 'LIFNR'.
LS_FIELDCAT-REF_FIELDNAME = 'LIFNR'.
LS_FIELDCAT-REF_TABNAME = 'EKKO'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'Vendor Name'.
LS_FIELDCAT-FIELDNAME = 'NAME1'.
LS_FIELDCAT-REF_FIELDNAME = 'NAME1'.
LS_FIELDCAT-REF_TABNAME = 'LFA1'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-FIELDNAME = 'NAME2'.
* LS_FIELDCAT-REF_FIELDNAME = 'NAME2'.
* LS_FIELDCAT-REF_TABNAME = 'LFA1'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-seltext_l = 'Purchase Document No'.
LS_FIELDCAT-FIELDNAME = 'EBELN'.
LS_FIELDCAT-REF_FIELDNAME = 'EBELN'.
LS_FIELDCAT-REF_TABNAME = 'EKKO'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-FIELDNAME = 'VGABE'.
* LS_FIELDCAT-REF_FIELDNAME = 'VGABE'.
* LS_FIELDCAT-REF_TABNAME = 'EKBE'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'Item No'.
LS_FIELDCAT-FIELDNAME = 'EBELP'.
LS_FIELDCAT-REF_FIELDNAME = 'EBELP'.
LS_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-FIELDNAME = 'BELNR'.
* LS_FIELDCAT-REF_FIELDNAME = 'BELNR'.
* LS_FIELDCAT-REF_TABNAME = 'EKBE'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'Document Con'.
LS_FIELDCAT-FIELDNAME = 'KNUMH'.
LS_FIELDCAT-REF_FIELDNAME = 'KNUMH'.
LS_FIELDCAT-REF_TABNAME = 'KONH'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-SELTEXT_L = 'Service/Material No'.
* LS_FIELDCAT-FIELDNAME = 'MATNR'.
* LS_FIELDCAT-REF_FIELDNAME = 'MATNR'.
* LS_FIELDCAT-REF_TABNAME = 'EKPO'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-SELTEXT_L = 'Service / Material description' .
* LS_FIELDCAT-FIELDNAME = 'TXZ01'.
* LS_FIELDCAT-REF_FIELDNAME = 'TXZ01'.
* LS_FIELDCAT-REF_TABNAME = 'EKPO'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-SELTEXT_L = 'WBS Element' .
* LS_FIELDCAT-FIELDNAME = 'PS_PSP_PNR'.
* LS_FIELDCAT-REF_FIELDNAME = 'PS_PSP_PNR'.
* LS_FIELDCAT-REF_TABNAME = 'EKKN'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-SELTEXT_L = 'Serial Number' .
* LS_FIELDCAT-FIELDNAME = 'EXTROW'.
* LS_FIELDCAT-REF_FIELDNAME = 'PACKNO'.
* LS_FIELDCAT-REF_TABNAME = 'ESLL'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-SELTEXT_L = 'Service Number' .
* LS_FIELDCAT-FIELDNAME = 'SRVPOS'.
* LS_FIELDCAT-REF_FIELDNAME = 'SRVPOS'.
* LS_FIELDCAT-REF_TABNAME = 'ESLL'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-SELTEXT_L = 'Dscription' .
* LS_FIELDCAT-FIELDNAME = 'KTEXT1'.
* LS_FIELDCAT-REF_FIELDNAME = 'KTEXT1'.
* LS_FIELDCAT-REF_TABNAME = 'ESLL'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-SELTEXT_L = 'Cost Center'.
* LS_FIELDCAT-FIELDNAME = 'KOSTL'.
* LS_FIELDCAT-REF_FIELDNAME = 'KOSTL'.
* LS_FIELDCAT-REF_TABNAME = 'EKKN'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-FIELDNAME = 'NETWR'.
LS_FIELDCAT-FIELDNAME = 'NETPR'.
LS_FIELDCAT-reptext_ddic = 'Basic'.
* LS_FIELDCAT-SELTEXT_L = 'Basic'.
LS_FIELDCAT-REF_FIELDNAME = 'NETPR'.
LS_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-FIELDNAME = 'NETWR'.
* LS_FIELDCAT-FIELDNAME = 'NETPR'.
* LS_FIELDCAT-reptext_ddic = ''.
* LS_FIELDCAT-SELTEXT_L = 'Basic'.
LS_FIELDCAT-REF_FIELDNAME = 'NETWR'.
LS_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'Excise'.
LS_FIELDCAT-FIELDNAME = 'ED1'.
LS_FIELDCAT-REF_FIELDNAME = 'ED1'.
* LS_FIELDCAT-REF_TABNAME = 'EKKN'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'Insurance'.
LS_FIELDCAT-FIELDNAME = 'KBETR2'.
LS_FIELDCAT-REF_FIELDNAME = 'KBETR'.
LS_FIELDCAT-REF_TABNAME = 'KONV'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'Frieght'.
LS_FIELDCAT-FIELDNAME = 'KWERT'.
LS_FIELDCAT-REF_FIELDNAME = 'KWERT'.
LS_FIELDCAT-REF_TABNAME = 'KONV'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-SELTEXT_L = '' .
* LS_FIELDCAT-FIELDNAME = 'KBETR1'.
* LS_FIELDCAT-REF_FIELDNAME = 'KBETR'.
* LS_FIELDCAT-REF_TABNAME = 'KONV'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
*CLEAR LS_FIELDCAT.
* LS_FIELDCAT-TABNAME = G_TABNAME.
* LS_FIELDCAT-SELTEXT_L = 'PBXX'.
* LS_FIELDCAT-FIELDNAME = 'KWERT1'.
* LS_FIELDCAT-REF_FIELDNAME = 'KWERT'.
* LS_FIELDCAT-REF_TABNAME = 'KONV'.
* APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'VAT/ST '.
LS_FIELDCAT-FIELDNAME = 'KBETR'.
LS_FIELDCAT-REF_FIELDNAME = "KBETR".
LS_FIELDCAT-REF_TABNAME = 'KONV'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'OTHER '.
LS_FIELDCAT-FIELDNAME = 'KWERT2'.
LS_FIELDCAT-REF_FIELDNAME = "KWERT".
LS_FIELDCAT-REF_TABNAME = 'KONV'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'TOTAL'.
LS_FIELDCAT-FIELDNAME = 'TOTAL'.
LS_FIELDCAT-REF_FIELDNAME = 'TOTAL'.
* LS_FIELDCAT-REF_TABNAME = 'EKKN'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
ENDFORM. " FIELDCAT_INIT
FORM GET_DATA.
SELECT A~EBELN A~LIFNR A~EKORG A~KNUMV B~VGABE B~GJAHR B~BELNR
L~NAME1 L~NAME2
FROM EKKO AS A
INNER JOIN EKBE AS B ON B~EBELN = A~EBELN
INNER JOIN LFA1 AS L ON L~LIFNR = A~LIFNR
INTO CORRESPONDING
FIELDS OF TABLE ITAB.
* WHERE B~VGABE = '2'.
SELECT EKPO~EBELN EKPO~EBELP EKPO~MATNR EKPO~TXZ01 EKPO~WERKS
EKPO~NETWR EKPO~MENGE EKPO~MWSKZ EKPO~NETPR EKPO~PACKNO
FROM EKPO
INTO CORRESPONDING FIELDS OF TABLE ITAB1
FOR ALL ENTRIES IN ITAB
WHERE EKPO~EBELN = ITAB-EBELN and
EKPO~BUKRS = 'GSPL'.
SELECT EKKN~EBELN EKKN~EBELP EKKN~KOSTL EKKN~PS_PSP_PNR
FROM EKKN
INTO CORRESPONDING FIELDS OF TABLE ITAB2
FOR ALL ENTRIES IN ITAB1
WHERE EKKN~EBELN = ITAB1-EBELN AND
EKKN~EBELP = ITAB1-EBELP.
SELECT KONV~KNUMV KONV~KSCHL KONV~KBETR KONV~KWERT KONV~KWERT
KONV~KPOSN
FROM KONV
INTO CORRESPONDING FIELDS OF TABLE ITAB5
WHERE KONV~KNUMV = ITAB1-KNUMV AND
KONV~KPOSN = ITAB1-EBELP.
* SELECT LFA1~NAME1 LFA1~NAME2 FROM LFA1
* INTO CORRESPONDING FIELDS OF TABLE ITAB1
* WHERE LFA1~LIFNR = ITAB-LIFNR.
* SELECT ESLL~SUB_PACKNO ESLL~SRVPOS
* ESLL~EXTROW ESLL~KTEXT1 FROM ESLL
* INTO CORRESPONDING FIELDS OF TABLE ITAB6
* FOR ALL ENTRIES IN ITAB1
* WHERE ESLL~PACKNO = ITAB1-PACKNO .
** SELECT ESLL~SUB_PACKNO FROM ESLL
** INTO CORRESPONDING FIELDS OF TABLE ITAB6
** FOR ALL ENTRIES IN ITAB1
** WHERE ESLL~PACKNO = ITAB1-PACKNO.
* SELECT ESLL~SUB_PACKNO ESLL~SRVPOS
* ESLL~EXTROW ESLL~KTEXT1 FROM ESLL
* INTO CORRESPONDING FIELDS OF TABLE ITAB8
* FOR ALL ENTRIES IN ITAB6
* WHERE ESLL~PACKNO = ITAB6-SUB_PACKNO .
* SELECT RSEG~BELNR RSEG~GJAHR FROM RSEG
* INTO CORRESPONDING FIELDS OF TABLE ITAB7
* FOR ALL ENTRIES IN ITAB
* WHERE RSEG~BELNR = ITAB-BELNR AND
* RSEG~GJAHR = ITAB-GJAHR.
*LOOP AT ITAB1.
LOOP AT ITAB.
READ TABLE ITAB1 WITH KEY EBELN = ITAB-EBELN.
* IF ITAB1-EBELN = ITAB-EBELN.
IF sy-subrc eq 0.
* ITAB1-EBELN = ITAB-EBELN.
ITAB1-LIFNR = ITAB-LIFNR.
* ITAB1-EBELP = ITAB-EBELP.
ITAB1-BELNR = ITAB-BELNR.
ITAB1-KNUMV = ITAB-KNUMV.
ITAB1-NAME1 = ITAB-NAME1.
ITAB-NAME2 = ITAB-NAME2.
ITAB1-GJAHR = ITAB-GJAHR.
modify itab1 index sy-tabix.
ENDIF.
ENDLOOP.
*LOOP AT ITAB2.
* READ TABLE ITAB1 WITH KEY EBELN = ITAB2-EBELN.
* IF sy-subrc eq 0.
* ITAB1-EBELN = ITAB2-EBELN.
* ITAB1-PS_PSP_PNR = ITAB2-PS_PSP_PNR.
* ITAB1-KOSTL = ITAB2-KOSTL.
* modify itab1 transporting ps_psp_pnr kostl
* where ebeln = Itab2-ebeln AND EBELP = ITAB2-EBELP.
* ENDIF.
*ENDLOOP.
LOOP AT ITAB1.
**ON CHANGE OF ITAB1-ebeln or itab1-ebelp.
* concatenate itab1-werks itab1-lifnr itab1-matnr
* into val1.
* MOVE VAL1 TO ITAB1-VAKEY.
* MODIFY ITAB1.
* SELECT KONH~KNUMH KONH~KSCHL FROM KONH
* INTO CORRESPONDING FIELDS OF TABLE ITAB3
* FOR ALL ENTRIES IN ITAB1
* WHERE KONH~VAKEY = ITAB1-VAKEY.
**endon.
** sort Itab3 by kschl descending.
** Select konp-kbetr from konp into itab4 where
** KONP~KNUMH = ITAB3-KNUMH AND KONP~KSCHL = ITAB3-KSCHL.
**ON CHANGE OF ITAB1-ebelp.
**LOOP AT ITAB3
** ON CHANGE OF ITAB1-ebelp.
* itab1-knumh = itab3-knumh.
** SELECT KONP~KBETR FROM KONP INTO CORRESPONDING FIELDS
** OF TABLE ITAB4
** FOR ALL ENTRIES IN ITAB3 WHERE
** KONP~KNUMH = ITAB3-KNUMH AND KONP~KSCHL = ITAB3-KSCHL .
** IF ITAB3-KSCHL = 'JMOP' .
** ED = ITAB4-KBETR / 1000 * ITAB1-NETWR .
** ENDIF.
** IF ITAB3-KSCHL = 'JEC1'.
** Itab1-ed1 = ITAB4-KBETR / 1000 * ED.
** ADD ED TO ITAB1-ED1.
** modify ITAB1 transporting ed1.
** ENDIF.
* IF ITAB3-KSCHL = 'JMOP' .
* ED = 16 / 100 * ITAB1-NETWR .
* ENDIF.
* IF ITAB3-KSCHL = 'JEC1'.
* Itab1-ed1 = 2 / 100 * ED.
* ADD ED TO ITAB1-ED1.
* modify ITAB1 transporting ed1.
* ENDIF.
** ENDLOOP.
**endon.
modify ITAB1.
*endon.
LOOP AT ITAB5.
IF ITAB5-KSCHL = 'NAVS' OR ITAB5-KSCHL = 'NAVM'.
ITAB1-KBETR = ITAB5-KBETR.
modify ITAB1 transporting KBETR
where KNUMV = ITAB1-KNUMV AND EBELP = ITAB1-EBELP .
ELSEIF ITAB5-KSCHL = 'FRA1' OR ITAB5-KSCHL = 'FRC1' OR
ITAB5-KSCHL = 'FRB1'.
ITAB1-KWERT = ITAB5-KWERT .
modify ITAB1 transporting KWERT
where KNUMV = ITAB1-KNUMV AND EBELP = ITAB1-EBELP
* IF ITAB5-KSCHL = 'FRA1'.
* ITAB1-KBETR1 = ITAB5-KBETR / 1000 * ITAB1-NETWR .
* modify ITAB1 transporting KBETR1
* where KNUMV = ITAB1-KNUMV AND EBELP = ITAB1-EBELP
* ELSEIF ITAB5-KSCHL = 'FRC1' .
* ITAB1-KBETR1 = ITAB5-KBETR * ITAB1-MENGE .
* modify ITAB1 transporting KBETR1
* where KNUMV = ITAB1-KNUMV AND EBELP = ITAB1-EBELP
* ELSEIF ITAB5-KSCHL = 'FRB1' .
* ITAB1-KBETR1 = ITAB5-KBETR .
* modify ITAB1 transporting KBETR1
* where KNUMV = ITAB1-KNUMV AND EBELP = ITAB1-EBELP
* ENDIF.
* **THIS CODE IS FOR iNSURANCE CONDITION
ELSEIF ITAB5-KSCHL = 'ZGIN' OR ITAB5-KSCHL = 'ZIN2'.
ITAB1-KBETR2 = ITAB5-KBETR.
modify ITAB1 transporting KBETR2
where KNUMV = ITAB1-KNUMV AND EBELP = ITAB1-EBELP
* **THIS CODE IS FOR PBXX OR PB00 CONDITION
* ELSEIF ITAB5-KSCHL = 'PBXX' OR ITAB5-KSCHL = 'PB00'.
* ITAB1-KWERT1 = ITAB5-KWERT1.
* modify ITAB1 transporting KWERT1
* where KNUMV = ITAB1-KNUMV AND EBELP = ITAB1-EBELP
** ELSEIF ITAB5-KSCHL = 'JOCM' OR ITAB5-KSCHL = 'RA00' OR
** ITAB5-KSCHL = 'RA01' OR ITAB5-KSCHL = 'RB00' OR
** ITAB5-KSCHL = 'RC00' OR
**THIS CODE IS FOR OTHER CONDITION
ELSEIF ITAB5-KSCHL = 'RL01' OR ITAB5-KSCHL = 'ZA00' OR
ITAB5-KSCHL = 'ZA01' OR ITAB5-KSCHL = 'ZAE1' OR
ITAB5-KSCHL = 'ZAED' OR
ITAB5-KSCHL = 'ZAFR' OR ITAB5-KSCHL = 'ZB00' OR
ITAB5-KSCHL = 'ZBCH' OR ITAB5-KSCHL = 'ZBED' OR
ITAB5-KSCHL = 'ZC00' OR
ITAB5-KSCHL = 'ZCEX' OR ITAB5-KSCHL = 'ZCIF' OR
ITAB5-KSCHL = 'ZHC1' OR ITAB5-KSCHL = 'ZHC2' OR
ITAB5-KSCHL = 'ZHCT' OR
ITAB5-KSCHL = 'ZHCV' OR ITAB5-KSCHL = 'ZJOC' OR
ITAB5-KSCHL = 'ZOTH' OR ITAB5-KSCHL = 'ZOTP' OR
ITAB5-KSCHL = 'ZOTT' OR
ITAB5-KSCHL = 'ZPK1' OR ITAB5-KSCHL = 'ZPK2' OR
ITAB5-KSCHL = 'ZPK3' OR ITAB5-KSCHL = 'ZPK4' OR
ITAB5-KSCHL = 'ZRPO' OR
ITAB5-KSCHL = 'ZSE1' OR ITAB5-KSCHL = 'ZSED' OR
ITAB5-KSCHL = 'ZSFR' OR ITAB5-KSCHL = 'ZSTX' OR
ITAB5-KSCHL = 'ZTPI' OR
ITAB5-KSCHL = 'ZTPV' OR ITAB5-KSCHL = 'ZTRD' OR
ITAB5-KSCHL = 'ZWCT'.
ITAB1-KWERT2 = ITAB5-KWERT.
modify ITAB1 transporting KWERT2
where KNUMV = ITAB1-KNUMV AND EBELP = ITAB1-EBELP
modify itab1.
ENDIF.
ENDLOOP .
ITAB1-TOTAL = ITAB1-NETWR + ITAB1-KWERT2 + ITAB1-KWERT + ITAB1-KBETR.
* ITAB1-TOTAL = ITAB1-NETWR + ITAB1-ED1 + ITAB1-KBETR2 +
* ITAB1-KBETR1 + ITAB1-KBETR + ITAB1-KWERT .
modify ITAB1 transporting TOTAL.
LOOP AT ITAB6.
ITAB1-SUB_PACKNO = ITAB6-SUB_PACKNO.
* modify ITAB1.
ENDLOOP.
LOOP AT ITAB7.
ITAB1-BELNR = ITAB7-BELNR.
ITAB1-GJAHR = ITAB7-GJAHR.
ENDLOOP.
LOOP AT ITAB8.
ITAB1-SUB_PACKNO = ITAB8-SUB_PACKNO.
ITAB1-SRVPOS = ITAB8-SRVPOS.
ITAB1-EXTROW = ITAB8-EXTROW.
ITAB1-KTEXT1 = ITAB8-KTEXT1.
modify ITAB1.
ENDLOOP.
* SELECT ESLL~PACKNO ESLL~SUB_PACKNO ESLL~SRVPOS ESLL~KTEXT1
* FROM ESLL
* INTO CORRESPONDING FIELDS OF TABLE ITAB6
* WHERE ESLL~PACKNO = ITAB1-PACKNO.
** delete adjacent duplicates from itab1 comparing EBELN .
modify ITAB1.
endloop.
sort Itab1 by EBELN Ascending.
SELECT KONV~KBETR FROM KONV
INTO ITAB1-KBETR
WHERE KONV~KSCHL = 'NAVS' OR KONV~KSCHL = 'NAVM'.
ENDSELECT.
ITAB1-KBETR = ITAB5-KBETR.
*ENDLOOP.
*ENDLOOP.
*ENDLOOP.
ENDFORM.
Reward all helpfull answers
Regards
Pavan -
Third Party - multiple invoices based on dummy Goods Receipt
In Third party sales scenario (without shipping notification) we want to create an invoice based on each dummy Goods Receipt which corresponds to individual shipment made by vendor to customer.
Ex. Sales order qty = 10. It is split in the PO to 2, 4, 3 and 1 in the delivery schedule. Vendor ships qty 2, and then 4. There is a trace # associated with each vendor shipment to the customer. Vendor invoice is entered for qty 2 and 4.
We want to bill 2 invoices one for two vendor shipments of 2 and 4. In VF04 order based billing for the sales order, SAP combines these 2 vendor invoices (2 + 4) and will propose qty 6 in ONE invoice. If there a way get 2 Invoice proposals (i.e. 2 lines) in VF04 one for qty 2 and another for qty 4?
TIA.Hello Ramani
In the Copying control (I am guessing it is for Sales document to billing document, T Code: VTFA), set up a custom routine in the field 'Data VBRK/VBRP' for the requisite item category ( TAS or equivalent) by copying standard routine '01'- FV60C001- and adding a splitting criterion, may be GR #. The challenge would be whether GR# would be available at that time and if not how to get it.
If it is Delivery based billing for some reason , then you can use standard routine '3' there. T code: VTFL: Copying control: Delivery document to billing document.
Hope this helps.
Maybe you are looking for
-
Hi All, There is an A/P Invoice, with no line Items. But the Document Total is Rs. 100000/- When I check the Base Document there are 10 Line Items in GR(PO). Surprised to see this..............How is it possible. And when i open A/P Invo
-
Any ideas how to get contacts to sync?
Hi - I have my calendar etc working between my imac, mac book air and iphone but address book is not updating. Have hte updated version on my imac but this has not fed thruogh to my iphone or macbook air. appreciate the help.... F
-
How to make configure output...?
Hey Everibody I want to knew if si ani way to configure my 530 g laptops soundcar which is an intel Hygh Definition runing hardver to set the two slots on my laptop to bi both output ... Now is Imput for microphones and outpu for hedphones etc... Th
-
HT1977 Can I return an app that doesn't work?
K
-
Firefox new homepage is ugly without the firefox logo and too complex to adjust
The original Firefox homepage: http://www.google.co.uk/firefox keeps telling me to update when it is up to date. The new one: http://uk.foxstart.com/?rls=en:uk:zz is unacceptable because it is ugly and shows no Firefox logo. Your original young fans