CREDIT DAYS
Dear Experts
As we have come across the problem of CR.Days in SAP. We have found that, if customer having limit of 1 million and 30 CR.Days .
SAP will allowed to buy the goods till 1 million even though if customer has not paid more than 30 days. The system should automatic block, if customer cross the Payment Terms.
looking for sopprt
Dear Gordon
My query is about Credit Limit and Cr.days.For example A cutomer is having limit of 1million and 45 Credit days.And the customer have purchase the good of half million on 1st March.Still he can purchase the goods till 1Million but if he buys the goods on 15 April the System should block the futher transacation because he has cross days but not limit.If he buys the goods before 15 April the stem should allowed.I short the system should look the outstanding invoices which have cross the credit days and block the futher transaction untill customer pays his overdues due to credit days.
hope i am clear this time.
thanks
Parikshit
Similar Messages
-
Credit Days based credit check
1) Credit Check should be according to credit value and No. of credit days
e.g 60 days-90 days-120 days
if credit is available but credit days are crossed the order/delivery should get blocked for above days.
Can this be maintain using any of the facility in OVA8
ThankyouHi,
In OVA8 set the following fields:
Dynamic -Check the Box and put the reaction "C"-->Also check status/Block box
Oldest open item -Check the Box and put the reaction "C"-->Also check status/Block box
Set the credit limit in tcode FD32.
As far as credit days is concerned there is no such functionality in SAP.
The Credit period would be calculated basis the payment term assigned on the customer master.
System would block the sales order either credit limit exceeds or the customer invoice has become due.
This due date would be calculated from Posting date+Period defined in payment terms.
Hope it clarifes the requirement.
Regards
Sanjay -
Credit charges based on the number of credit days offered to the customer
AOA,
I have a scenario.
We have credit charges based on the number of credit days offered to the customer. This scenario will be executed on credit sales only.
Example of pricing, a product mobile is offered to customer A on 20 Days credit
Mobile $1000
10 Days $1000
20 Days $2500
Total $4500 (Invoice Amount)
Any idea how can I acheive this in SAP.Customer A wants to buy product " Mobile "
Scenario is of Credit sales. Pricing is as follows:
Price $1000
10 Days $1000
Total After 10 days $2000
20 Days $2500
Total After 20 days $4500
Gross Amount $4500
The amount of invoice will be $4500.
If customer pays the amount with in 10 days, then customer only pays $1000.
If customer pays the amount with in 20 days, then customer only pays $2000.
If customer pays the amount after 20 days, then customer pays $4500. -
Payment terms - net due date same as credit days?
Dear all,
I need to set up a payment term with 20 credit days, 2%. Invoices should be due also after 20 days.
I would like the payment term to be set up as follow:
Term Percentage No of days
1. 2 20
2. 20
The problem is that the system doesn't let me to set due date to the same number of days as the credit days.
We will have baseline date = invoice date for our payment terms, if that matters.
How could I acheive to have due date 20 days after invoice date (baseline date) and deduct 2% cash discount the whole time?
Thanks and regards,
HeleneHi,
Please create a payment term as below, if your requirement is "I need to set up a payment term with 20 credit days, 2%. Invoices should be due also after 20 days"
Term Percentage No of days
1. 2 20
2. 21
In case your requirement is to give 2% discount if paid within 20days and due net after that:
Term Percentage No of days
1. 2 19
2. 20
Hope this will solve your issue.
Thanks,
Kiran Yelamarthi -
Topped up & now we have no credit days later .we've made no calls!
HI We have a spare emergency phone - we topped up with £5 in May and have not used this phone at all it has been in a drawer we turned it on today to use in an emergency and it says we have 4p credit left - who can we contact to have this checked - why would it just disappear - reluctant now to top up again in case it keeps disappearing? all automated numbers do not have a customer service option for the mobile
Hi
It could be that you have a pack active on the account. So each time you top up it would deduct the amount for the pack.
If you log in or register on My Account to can see and manage any packs or add-ons.
You can also check your packs via the PAYG Text Services Click Here for information.
Hope this helps!
Thanks. -
Hello All,
I want to know the importance of following field in OVA8 (Maintenance of Automatic Credit Control)
1) Checks in Financial Accounting/ old A/R summary
Payer
Permitted Days -- Permitted Hours ---
I want to give some grace period say 2/3 days over defined credit days in payment terms. So that the system will active the credit control after grace period i.e. say if my credit days is set as 30 days, currently the systems gives error if payment not received in 30 days. i want the system to give grace days time and then give error i.e. after 33 days.
Can i use the above functionality. If yes how it will work
Note: Increasing the days in payment terms will not solve my problem as i want this grace period for internal use only.
thanks.Hi
Permitted Ageing in Days/hours
Permitted aging of A/R summary in days/hours.
The system uses the permitted aging in days and hours to verify whether the data in the A/R summary is still acceptable for credit check purposes. If the existing data in the A/R summary exceeds the aging set in days and hours, the system sets the status "A/R summary obsolete".
You may be able to avoid this status by scheduling the program which generates the A/R summary in FI more often or (in a distributed scenario) by going to the Financial Accounting IMG and choosing Accounts Receivable and Accounts Payable -> Credit Management -> Credit Control Account -> Make basic settings for credit management and stipulating that the credit check in SD should check the data in central financial accounting against the current data if the A/R summary is obsolete in one case.
Hope this clarifies your doubt. -
Dear Experts,
Following is the scenario,
Sales Person Raj
Customer Code C1000
Payment Terms 15 days
Invoice Date 01.02.2010
Invoice Value 20000
Payment Date 20.02.2010
Payment Amount 20000
Payment performance 0%
As the customer has not paid within the credit days, when i execute a query based on the sales person and posting date (From, To) parameters the payment performance should result 0%.
Is the same possible to generate through query?
Awaiting your reply
saravanan
Edited by: Sanbrahma39 on Feb 16, 2010 1:01 PMDear Gordon,
As rightly conveyed the payment performance is calculated based on the (Paidtodate/Doctotal)*100. I tried to generate the report using query
SELECT T0.[DocNum], T0.[DocDate], T0.[CardName], T0.[DocTotal], T0.[PaidToDate] FROM OINV T0 INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode WHERE T1.[SlpName] = [%0] and T0.[DocDate] > = [%1] and T0.[DocDate] < = [%2].
The thing is SAP delivered the result perfectly based on the query given above, now the condition is like the query has to check the payment received within the payment terms, then only it need to consider for payment performance.
Ex:
Sales Employee - Raj
Customer Code -C1000
Payment Terms -15 days
IN1 Date - 01.02.2010
IN1 Amount - 10000
Payment Date - 14.02.2010
Payment Amt - 10000
IN2 Date - 02.02.2010
IN2 Amount - 40000
Payment Date - 19.02.2010
Payment Amount - 40000
Now if i try to generate a payment performance report of a sales employee Raj as per my query it would show 100% as payment terms is not been considered.
I need a query to consider the payment terms also so when i generate a report the payment performance should be 20% only.
Hope this assists
Saravanan -
LR dt to be taken as BiIlling dt instead of Actual Goods issue dt
Hi
The normal Business practice is the system takes the actual goods issue date mentioned in the delivery document as the billing date and accordingly ,the payment terms or credit days given to the customer starts from this date.
Now the requirement is
The payment terms has to be with ref to LR (lorry receipt ) date and not on Actual goods issue date, for example: If the Actual goods issue date is 15th April & the LR date is 17th april then the customers credit days has to start from 17th and not from 15th april .
Because ,in real time we do not know when the transporter will pick and deliver the goods to the customer,so if the transit time is 2 days ,then customer would be loosing the ,2 credit days and the invoice would be due on the 7th day ,where as the customer would have received the stock 5 days back and not 7days back.(if the terms of payment is say 7 days)
can any one suggest how to addresse this scenario apart from the following
1) Define the terms of payment as longer by 2days
2) Give the actual goods issue date as 2days in advance
shashiHi TricaC,
I'm sorry to see your friend is having problems with his BT Broadband. Please use the 'contact the mods' link in my forum profile to send in his details and we'll be happy to help. You can find the link by clicking on my username.
Thanks
Neil
BTCare Community Mod
If we have asked you to email us with your details, please make sure you are logged in to the forum, otherwise you will not be able to see our ‘Contact Us’ link within our profiles.
We are sorry but we are unable to deal with service/account queries via the private message(PM) function so please don't PM your account info, we need to deal with this via our email account :-)
If someone answers your question correctly please let other members know by clicking on ’Mark as Accepted Solution’. -
Hello,
I need some info on cash discounts.
I understand that cash discounts are applicable to the customer after he makes the payment. We issue credit memo.
But i dont understand the link b/n cash dicount conditon type (say SKTO/SKTV and payment terms )
How the cash discounts are linked to payment terms?
Whats the setting done for this?
Could some one answer this?
Regards,
KrishnaCash discount means the rate of cash discount.
Where do you find the details of how much cash discount to be given to the customer ?
It is stored in the "Payment Term".
Any organisation has got its Payment Term or Terms of Payment for the business.
For example,suppose to-day you have purchased some goods from me and I have a payment term in my organisation like below,
If you are paying me within 7 days,then you are eligible for 5% cash discount.
If you are paying me within 15 days, then you will get 2% cash discount.After this no cash discount and 30 days is the maximum credit days and within 30 days if you are not paying me , then I will charge suppose 20% interest on the amount from the 31st day onwards.
System gets this information regarding the Cash discount, from this Payment Term.
For Cash discount , there is a special condition type "SKTO". This is a statistical condition type. Condition type SKTO retrieves the cash discount rate to be given, from the Payment Term.
Condition type SKTO does not have any access sequence and its finds out the cash discount rate from the payment in the Table "T052" (in this table all cash discounts are stored).
To find this cash discount rate SKTO uses its condition category "E". -
Dear All,
I am in need to develop customized report on Vendor Accounts payable - Aging for given slab.
I can find the open items for the given key date in the table BSIK.
if we want to calculate due on past date( for cleared item), how can we use BSIK. ?
Let consider the following scenario.
Consider an item is cleared on 10.02.2009. if the key date is 18.05.2009, there is no due for this item. But if the keydate is 15.12.2008, the item is on due. (consider 15.12.2008 is calculated with baseline date, credit days).
How can we calculate aging for this from BSIK. because BSIK contains only open items.
If we use BSAK ( Cleared Items ). How to calculate aging using baseline date, clearing date, credit days.
Regards,
S.SridharTo calculate aging,
You com use the FM J_1B_FI_NETDUE. If i undestand your problem, that FM will help you to calculate aging.
Regards -
Report should executed based on the radio buttons on the selection screen
Hi everyone,
Greets....................
My scenario is I have 2 selection screen blocks on same screen..
One selection screen block contains input parameters as follows
Company Code - S_BUKRS
Business Area - S_GSBER
Customer Code - S_KUNNR
Fiscal Area - S_GJAHR
GL Account - S_HKONT
Posting Date -S_ZFBDT
Ledger Type -P_RLDNR
Open Item Key Date - P_ZFBDT
Another selection screen block contains 2 radio buttons with the option as follows
Collection Plan
*Credit days summary.
If i click Collection plan the report output should come based on the input parameters in first selection-screen block.
If i click Credit days summary the report output should come based on the input parameters in first selection-screen block.
Pls send me the sample code for this.
Thanks in Advance
Regards
Raj kumarSee the below folling example : it will have radio buttons and depends on radio button it will show output.
REPORT ZPPR_BOM_INFOL_REPORT no standard page heading
line-size 160
line-count 60.
======================================================================
Program Name : ZPPR_BOM_INFOL_REPORT
Description : This Program would be used for BOM List for a material*
and the component's where used list *
Author : Seshu *
Date : 07/24/2006 *
MODIFICATION HISTORY *
DATE | AUTHOR | CHANGE # | DESCRIPTION OF MODIFICATION *
|----
|----
|----
*12/04/06 | Seshu | DEVK921821 | Removed new page for each material *
======================================================================
Table definition *
TABLES: mast,
stko,
stpo,
T418,
makt.
TYPE - POOLS
TYPE-POOLS: slis.
Constants
constants : c_tcode(4) type c value 'CS03',
gc_formname_top_of_page TYPE slis_formname
VALUE 'TOP_OF_PAGE'.
Variables
data : v_maktx like makt-maktx,
wa_stko like stko.
DATA:
Objekttyp 'Material'
otyp_mat(1) TYPE c VALUE '1',
ootyp_mat(1) TYPE c VALUE 'M',
Objekttyp 'kein Objekt'
otyp_noo(1) TYPE c VALUE '2',
Objekttyp 'Dokument'
otyp_doc(1) TYPE c VALUE '3',
Objekttyp 'Klasse'
otyp_kla(1) TYPE c VALUE '4',
Objekttyp 'Intramaterial'
otyp_ntm(1) TYPE c VALUE '5'.
maximal anzeigbare Menge
data: max_num(7) TYPE p DECIMALS 3 VALUE '9999999999.999',
ueberl_kz(1) TYPE c VALUE '*',
min_num(7) TYPE p DECIMALS 3 VALUE '9999999999.999-',
b_flag(1) TYPE c VALUE 'X',
ecfld(250) TYPE c,
v_flag type c.
ALV Variables
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv,
gs_keyinfo TYPE slis_keyinfo_alv,
gt_sp_group TYPE slis_t_sp_group_alv,
gt_events TYPE slis_t_event.
DATA: g_repid LIKE sy-repid.
DATA: gt_list_top_of_page TYPE slis_t_listheader,
g_tabname_header TYPE slis_tabname,
g_tabname_item TYPE slis_tabname,
g_save(1) TYPE c,
gx_variant LIKE disvariant,
g_variant LIKE disvariant,
g_default(1) TYPE c,
g_exit(1) TYPE c.
Includes *
INCLUDE .
Internal Table Declaration *
DATA: t_mast LIKE STANDARD TABLE OF mast WITH HEADER LINE.
*DATA: t_makt LIKE STANDARD TABLE OF makt WITH HEADER LINE.
BOM Function module Related
DATA: t_matcat LIKE cscmat OCCURS 0 WITH HEADER LINE.
Internal Table for Level by Level Function module
DATA: t_stb LIKE stpox OCCURS 0 WITH HEADER LINE.
Get the Relevant data from FM
DATA: BEGIN OF hd_tab OCCURS 0,
stufe LIKE stpox-stufe,
vwegx LIKE stpox-vwegx,
END OF hd_tab.
Final Output
DATA: BEGIN OF alv_stb OCCURS 0.
INCLUDE STRUCTURE stpox_alv.
DATA: info(3) TYPE c,
END OF alv_stb.
DATA: BEGIN OF stb_orig.
INCLUDE STRUCTURE stpox.
DATA: END OF stb_orig.
DATA: BEGIN OF stb_add.
INCLUDE STRUCTURE stpol_add.
DATA: END OF stb_add.
Internal Table for STPO
*-- BOM Line item
TYPES: BEGIN OF ty_stpo,
stlty TYPE stpo-stlty,
stlnr TYPE stpo-stlnr,
stlkn TYPE stpo-stlkn,
stpoz TYPE stpo-stpoz,
idnrk TYPE stpo-idnrk,
meins TYPE stpo-meins,
menge TYPE stpo-menge, "Component Qty
END OF ty_stpo.
DATA: t_stpo TYPE STANDARD TABLE OF ty_stpo WITH HEADER LINE.
*-- BOM Header
TYPES: BEGIN OF ty_stko,
stlty TYPE stko-stlty,
stlnr TYPE stko-stlnr,
stlal TYPE stko-stlal,
stkoz TYPE stko-stkoz,
bmein TYPE stko-bmein,
bmeng TYPE stko-bmeng,
END OF ty_stko.
DATA: t_stko TYPE STANDARD TABLE OF ty_stko WITH HEADER LINE .
data : t_makt like makt occurs 0 with header line.
DATA: BEGIN OF cl_clstab OCCURS 0, "YHG079407
class LIKE klah-class, "YHG079407
klart LIKE klah-klart, "YHG079407
chked LIKE csdata-xfeld, "YHG079407
noobj LIKE csdata-xfeld, "YHG079407
dsply LIKE csdata-xfeld, "YHG079407
END OF cl_clstab.
*-- Header table
TYPES: BEGIN OF ty_main_material,
matnr TYPE mast-matnr, "Material
werks TYPE mast-werks, "Plant
maktx TYPE makt-maktx, "Description
stlal TYPE mast-stlal, "Alternative BOM
stlnr TYPE stko-stlnr, "BOM Number
bmein TYPE stko-bmein, "UOM
bmeng TYPE stko-bmeng, "Base Qty
expand(1) TYPE c, "Expanding Field
END OF ty_main_material.
DATA: t_main_material TYPE STANDARD TABLE OF ty_main_material WITH
HEADER LINE.
*-- Item (Component) Table
TYPES: BEGIN OF ty_item_material,
matnr TYPE mast-matnr, "Material
werks TYPE mast-werks, "Plant
idnrk TYPE stpo-idnrk, "Component (Material)
maktx TYPE makt-maktx, "Description
stlal TYPE mast-stlal, "Alternative BOM
stlnr TYPE stpo-stlnr, "BOM Number
meins TYPE stpo-meins, "UOM
menge TYPE stpo-menge, "Base Qty
END OF ty_item_material.
DATA: t_item_material TYPE STANDARD TABLE OF ty_item_material WITH
HEADER LINE.
Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_werks LIKE marc-werks DEFAULT '1000' OBLIGATORY.
SELECT-OPTIONS s_stlal FOR mast-stlal .
SELECT-OPTIONS s_stlan FOR mast-stlan DEFAULT '1'.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECTION-SCREEN SKIP.
PARAMETERS: p_bomlst RADIOBUTTON GROUP g1 DEFAULT 'X'.
SELECT-OPTIONS s_matnr FOR mast-matnr.
SELECTION-SCREEN SKIP.
PARAMETERS: p_compon RADIOBUTTON GROUP g1.
SELECT-OPTIONS: s_idnrk FOR stpo-idnrk.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF BLOCK b1.
selection-screen begin of block b03 with frame title text-b03.
selection-screen begin of line.
selection-screen comment 1(40) text-005.
parameters: p_all radiobutton group r1 default 'X'.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment 1(40) text-006.
parameters: p_one radiobutton group r1 .
selection-screen end of line.
selection-screen end of block b03.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK b3.
At slection screen events *
*-- Process on value request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f4_for_variant.
Intitialisation
INITIALIZATION.
g_repid = sy-repid.
g_tabname_header = 'T_MAIN_MATERIAL'.
g_tabname_item = 'T_ITEM_MATERIAL'.
*-- define keyinformation
CLEAR gs_keyinfo.
gs_keyinfo-header01 = 'MATNR'.
gs_keyinfo-item01 = 'MATNR'.
PERFORM e03_eventtab_build USING gt_events[].
PERFORM e04_comment_build USING gt_list_top_of_page[].
PERFORM e07_sp_group_build USING gt_sp_group[].
PERFORM e08_layout_build USING gs_layout.
Set Options: save variants userspecific or general
g_save = 'A'.
PERFORM variant_init.
Get default variant
gx_variant = g_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = gx_variant-variant.
ENDIF.
S T A R T - O F - S E L E C T I O N *******************
start-of-selection.
if p_all = 'X'.
Get the data from MAST and MAKT Table
if p_bomlst = 'X'.
Get the data Based On Material #
perform get_data.
else.
Get the data Based On Component
perform get_data_component.
endif.
else.
Get the Single Level Report
*-- Moved the fiedl catalog here inorder to change the layout based on
*-- Selection
PERFORM e01_fieldcat_init USING gt_fieldcat[].
PERFORM select_data.
endif.
E N D - O F - S E L E C T I O N *******************
end-of-selection.
if p_one = 'X'.
perform alv.
endif.
User Command
at line-selection.
Interactive to CS03 Transaction
case sy-ucomm.
when 'PICK' or 'F2'.
if not alv_stb-idnrk is initial .
if not alv_stb-werks is initial.
if not alv_stb-objty is initial.
SET PARAMETER ID 'MAT' FIELD alv_stb-idnrk.
SET PARAMETER ID 'WRK' FIELD alv_stb-werks.
SET PARAMETER ID 'CSV' FIELD alv_stb-OBJTY.
call transaction c_tcode and skip first screen.
endif.
endif.
endif.
clear alv_stb.
endcase.
*& Form get_data
Get data from MAST and MAKT Table
FORM get_data.
data : wa_lines type sy-index.
REFRESH : T_MAST,
t_STB,
t_MATCAT,
alv_STB.
CLEAR : T_MAST,
t_STB,
t_MATCAT,
alv_STB.
Get the data from MAST Table
Get all the information from MAST - BOM Table
SELECT * FROM mast INTO TABLE t_mast WHERE matnr IN s_matnr AND
werks = p_werks AND
stlan IN s_stlan AND
stlal IN s_stlal.
describe table t_mast lines wa_lines.
if wa_lines is initial.
Write:/2 'List contains no data'.
stop.
endif.
loop at t_mast.
clear : v_maktx.
Start of change Seshu
Reason - Remove the new page option
if sy-tabix ne 1.
skip 1.
endif.
End of Change Seshu
Get the material Description
select single maktx from makt into v_maktx
where matnr = t_mast-matnr
and spras = 'E'.
Get the material details from STKO Table
select single * from stko into wa_stko
where STLTY = 'M'
and STLNR = t_mast-stlnr
and STLAL = t_mast-stlal.
Main Header for Each Material
format color 5 on.
write:/2 'Material',20 'Material Description',65 'Alternative BOM',
90 'Base Qty', 115 'Base Unit'.
format color 5 off.
format color 1 on.
write:/2 t_mast-matnr,20 v_maktx,65 wa_stko-STLAL, 85 wa_stko-BMENG,
115 wa_stko-BMEIN.
format color 1 off.
Use the Function Module and get the format level by level
perform get_level_level.
endloop.
ENDFORM. " get_data
Top of page *
top-of-page.
perform report_header .
*& Form report_header
text
--> p1 text
<-- p2 text
FORM report_header.
new-page line-size 160 .
format color col_heading intensified on.
write:/ sy-uline(160) .
*--- Write Company Name.
perform calc_col_and_write using text-h00
sy-linsz.
*--- Write Report Title.
perform calc_col_and_write using sy-title
sy-linsz.
*--- Write User Id, Date / Time, Program Id, Page etc.
perform write_other_hdr_details.
write:/ sy-uline(160) .
ENDFORM. " report_header
*& Form calc_col_and_write
text
-->P_TEXT_H00 text
-->P_SY_LINSZ text
FORM calc_col_and_write USING P_TEXT
P_LINSZ.
data: col1 type i,
col2 type i,
len type i,
str type i.
str = strlen( p_text ).
col1 = ( p_linsz / 2 ) - ( str / 2 ) .
len = p_linsz - col1 - 2.
write: at /1 '|'.
write: at col1 p_text,
at sy-colno(len) space.
write at 160 '|'.
ENDFORM. " calc_col_and_write
*& Form write_other_hdr_details
text
--> p1 text
<-- p2 text
FORM write_other_hdr_details.
data: col1 type i,
col2 type i,
len type i.
col1 = 3.
write:/1 '|'.
write: at col1 'UserId : ',
sy-uname.
len = sy-linsz - 1.
write at sy-colno(len) space.
col2 = sy-linsz - 18.
write: at col2 'Date: ',
sy-datum mm/dd/yyyy.
write: at sy-linsz '|'.
write:/1 '|'.
write: at col1 'ReportId: ',
sy-repid.
write at sy-colno(len) space.
col2 = sy-linsz - 18.
write: at col2 'Page: ',
sy-pagno.
write: at sy-linsz '|'.
ENDFORM. " write_other_hdr_details
*& Form get_data_component
Get the data based on Component level
FORM get_data_component.
data wa_lines type i.
*-- Get the BOM item details
SELECT stlty stlnr stlkn stpoz idnrk meins menge
FROM stpo
INTO TABLE t_stpo
WHERE idnrk IN s_idnrk.
IF sy-subrc = 0.
CLEAR wa_lines.
DESCRIBE TABLE t_stpo LINES wa_lines.
IF wa_lines > 0.
SELECT stlty stlnr stlal stkoz bmein bmeng
FROM stko
INTO TABLE t_stko
FOR ALL ENTRIES IN t_stpo
WHERE stlnr = t_stpo-stlnr.
CLEAR wa_lines.
DELETE ADJACENT DUPLICATES FROM t_stko COMPARING ALL FIELDS.
DESCRIBE TABLE t_stko LINES wa_lines.
IF wa_lines > 0.
*-- Get the BOM item details
SELECT * FROM mast INTO TABLE t_mast FOR ALL ENTRIES IN t_stko
WHERE werks = p_werks AND
stlnr = t_stko-stlnr
and stlal in s_stlal.
ENDIF.
ENDIF.
else.
Write:/2 'List contains no data'.
stop.
endif.
loop at t_mast.
clear : v_maktx.
Start of change Seshu
Reason - Remove the new page option
if sy-tabix ne 1.
skip 1.
endif.
End of change Seshu
Get the material Description
select single maktx from makt into v_maktx
where matnr = t_mast-matnr
and spras = 'E'.
Get the material details from STKO Table
select single * from stko into wa_stko
where STLTY = 'M'
and STLNR = t_mast-stlnr
and STLAL = t_mast-stlal.
Main Header for Each Material
format color 5 on.
write:/2 'Material',20 'Material Description',65 'Alternative BOM',
90 'Base Qty', 115 'Base Unit'.
format color 5 off.
format color 1 on.
write:/2 t_mast-matnr,20 v_maktx,65 wa_stko-STLAL, 85 wa_stko-BMENG,
115 wa_stko-BMEIN.
format color 1 off.
Use the Function Module and get the format level by level
perform get_level_level.
clear : t_mast.
endloop.
ENDFORM. " get_data_component
*& Form obj_ident
text
FORM obj_ident.
weder Mat noch Doc
CHECK: T_stb-objty NE otyp_mat,
T_stb-objty NE ootyp_mat,
T_stb-objty NE otyp_doc,
T_stb-objty NE otyp_ntm.
?T418-WA schon ok
nein
IF T_stb-postp NE t418-postp.
T418 einlesen
PERFORM t418_lesen USING T_stb-postp.
ENDIF.
PERFORM cl_clstab_maint.
?MatNr-Eingabe bei diesem PosTyp moeglich
und keine Textposition
trifft zu
IF t418-matin NE '-'
AND t418-txpos IS INITIAL.
aktuelles Objekt ist Material NLAG
T_stb-objty = '1'.
PosKurztext in ObjKurztext uebernehmen.
T_stb-ojtxp = T_stb-potx1.
MODIFY T_stb.
ELSE.
IF T_stb-objty IS INITIAL.
T_stb-objty = '2'.
MODIFY T_stb.
ENDIF.
ENDIF.
ENDFORM. " obj_ident
*& Form t418_lesen
text
-->P_T_STB_POSTP text
FORM t418_lesen USING lkl_postp LIKE stpo-postp.
T418-WA initialisieren
CLEAR:
t418.
Key angeben
t418-postp = lkl_postp.
PosTypDefinition lesen
READ TABLE t418.
ENDFORM. " t418_lesen
*& Form cl_clstab_maint
text
FORM cl_clstab_maint.
nur fuer Klassenpositionen
CHECK t_STB-OBJTY EQ OTYP_KLA.
Teilkey der Klassenpositionentabelle
CL_CLSTAB-CLASS = t_STB-CLASS.
CL_CLSTAB-KLART = t_STB-KLART.
Klassenpositionentabelle lesen
READ TABLE CL_CLSTAB
WITH KEY CL_CLSTAB(21)
BINARY SEARCH.
aktuelle Klassenposition bereits in Klassenpositionentabelle
nein
IF SY-SUBRC <> 0.
Klassenposition in Klassenpositionentabelle hinzufuegen
INSERT CL_CLSTAB INDEX SY-TABIX.
ENDIF.
ENDFORM. " cl_clstab_maint
*& Form alv_stb_prep
Printing the data as LEVEL BY LEVEL
FORM alv_stb_prep.
CLEAR:
alv_stb,
stb_orig,
stb_add.
IF t_stb-hdnfo IS INITIAL.
stb_orig = t_stb.
IF t_stb-mngko >= max_num.
stb_add-ovfls = ueberl_kz.
ELSE.
IF t_stb-mngko <= min_num.
stb_add-ovfls = ueberl_kz.
ELSE.
CLEAR: stb_add-ovfls.
ENDIF.
ENDIF.
IF NOT t_stb-xtlnr IS INITIAL.
stb_add-bomfl = b_flag.
ENDIF.
IF NOT t_stb-knobj IS INITIAL
OR NOT t_stb-class IS INITIAL
OR NOT t_stb-kzclb IS INITIAL.
stb_add-knofl = 'X'.
ENDIF.
ELSE.
CHECK t_stb-stufe > 1.
alv_stb-info = 'C30'.
IF t_stb-ttidx <> t_matcat-index.
READ TABLE t_matcat INDEX t_stb-ttidx.
ENDIF.
stb_orig-hdnfo = t_stb-hdnfo.
stb_orig-stufe = t_stb-stufe - 1 .
stb_orig-ojtxp = t_stb-ojtxb.
IF NOT t_stb-altst IS INITIAL.
stb_orig-stlal = t_stb-stlal.
IF stb_orig-stlal(1) EQ '0'.
stb_orig-stlal(1) = ' '.
ENDIF.
ENDIF.
stb_orig-idnrk = t_matcat-matnr.
ENDIF.
CLEAR:
stb_add-dobjt,
stb_add-objic.
CASE t_stb-objty.
WHEN otyp_mat.
WRITE: stb_orig-idnrk TO ecfld.
stb_add-objic = '@A6@'.
WHEN 'M'.
WRITE: stb_orig-idnrk TO ecfld.
stb_add-objic = '@A6@'.
WHEN otyp_noo.
WRITE: stb_orig-potx1 TO ecfld.
stb_add-objic = '@0Q@'.
WHEN otyp_doc.
write stb_orig-doknr to ecfld. "note 489354
IF ecfld CP '*# '. ENDIF. "note 489354
sy-fdpos = sy-fdpos + 1. "note 489354
CONCATENATE
*d stb_orig-doknr "note 489354
stb_orig-dokar
stb_orig-doktl
stb_orig-dokvr
*d INTO ecfld "note 489354
INTO ecfld+sy-fdpos "note 489354
SEPARATED BY space.
stb_add-objic = '@AR@'.
WHEN otyp_kla.
CONCATENATE
stb_orig-class
stb_orig-klart
INTO ecfld
SEPARATED BY space.
stb_add-objic = '@7C@'.
WHEN otyp_ntm.
WRITE: stb_orig-intrm TO ecfld.
WHEN OTHERS.
ENDCASE.
*d CONDENSE ecfld. "note 515408
stb_add-dobjt = ecfld(40).
CLEAR: ecfld.
WRITE stb_orig-stufe TO stb_add-dstuf NO-SIGN.
*d MOVE-CORRESPONDING stb_orig TO alv_stb. "note 331962
MOVE-CORRESPONDING stb_add TO alv_stb.
MOVE-CORRESPONDING stb_orig TO alv_stb. "note 331962
APPEND alv_stb.
ENDFORM. " alv_stb_prep
*& Form get_level_level
text
FORM get_level_level.
REFRESH : T_STB,
T_MATCAT,
ALV_STB.
CLEAR : T_STB,
T_MATCAT,
ALV_STB.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'PP01'
datuv = sy-datum
mktls = 'X'
mehrs = 'X'
mtnrv = t_mast-matnr
stlal = '01'
stlan = '1'
stpst = 0
svwvo = 'X'
werks = p_werks
vrsvo = 'X'
TABLES
stb = t_stb
matcat = t_matcat
EXCEPTIONS
alt_not_found = 1
call_invalid = 2
material_not_found = 3
missing_authorization = 4
no_bom_found = 5
no_plant_data = 6
no_suitable_bom_found = 7
conversion_error = 8
OTHERS = 9.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR: hd_tab.
Entry der KlassenstatusTab. initialisieren
cl_clstab,
Entry 'Objekte von Klassen' initialisieren
cl_objmemo.
REFRESH: hd_tab.
SORT t_matcat BY index ASCENDING.
Get the All levels
loop at t_stb.
IF NOT t_stb-hdnfo IS INITIAL.
EXIT.
ENDIF.
Object Identification
PERFORM obj_ident.
READ TABLE hd_tab
WITH KEY stufe = t_stb-stufe
vwegx = t_stb-vwegx
BINARY SEARCH
TRANSPORTING NO FIELDS.
?gibt es diesen Satz schon
nein
IF sy-subrc <> 0.
dann in SFP-Infosatzverweistab. aufnehmen
*d APPEND HD_TAB. "HGH054648
hd_tab-stufe = t_stb-stufe.
"HGH054648
hd_tab-vwegx = t_stb-vwegx.
"HGH054648
INSERT hd_tab "HGH054648
INTO hd_tab "HGH054648
INDEX sy-tabix. "HGH054648
PosNr initialisieren
CLEAR: t_stb-posnr.
SFP-InfosatzKz setzen
t_stb-hdnfo = 'X'.
stb-objty = otyp_mat.
"HGE246532
als SFP-Infosatz in die STB aufnehmen
append t_stb.
ENDIF.
*del ENDIF.
clear t_stb.
endloop.
SORT t_stb ASCENDING BY stufe
index ASCENDING
*del POSNR ASCENDING. "HGC062735
posnr ASCENDING "HGC062735
hdnfo DESCENDING.
LOOP AT t_stb.
T_stb-index = sy-tabix.
MODIFY T_stb.
PERFORM alv_stb_prep.
ENDLOOP.
Displays the Value as Level by Level
loop at ALV_stb.
if sy-tabix = 1.
format color 3 on.
write:/2 'Level',12 'Item',22 'Component',
42 'Material Description',82 'Base Qty',
107 'Base Unit',120 'Assembly Indicator'.
format color 3 on.
endif.
if alv_stb-MEINs is initial.
v_flag = 'X'.
endif.
if v_flag = 'X'.
format color 5 on.
write:/2 ALV_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP.
format color 1 off.
else.
if alv_stb-STUFE = '1'.
format color 1 on.
write:/2 ALV_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs, 120 alv_stb-bomfl .
format color 1 off.
elseif alv_stb-STUFE = '2'.
format color 2 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl.
format color 2 off.
elseif alv_stb-STUFE = '3'.
format color 3 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl .
format color 3 off.
elseif alv_stb-STUFE = '4'.
format color 4 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl .
format color 4 off.
elseif alv_stb-STUFE = '5'.
format color 5 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl .
format color 5 off.
elseif alv_stb-STUFE = '6'.
format color 7 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl.
format color 6 off.
elseif alv_stb-STUFE = '7'.
format color 7 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl .
format color 7 off.
else.
format color 1 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl .
format color 1 off.
endif.
endif.
hide: alv_stb.
clear : alv_stb.
clear v_flag.
endloop.
ENDFORM. " get_level_level
*& Form f4_for_variant
text
FORM f4_for_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_variant
i_save = g_save
i_tabname_header = g_tabname_header
i_tabname_item = g_tabname_item
it_default_fieldcat =
IMPORTING
e_exit = g_exit
es_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF g_exit = space.
p_vari = gx_variant-variant.
ENDIF.
ENDIF.
ENDFORM. " f4_for_variant
FORM E03_EVENTTAB_BUILD *
--> E03_LT_EVENTS *
FORM e03_eventtab_build USING e03_lt_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = e03_lt_events.
READ TABLE e03_lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO e03_lt_events.
ENDIF.
ENDFORM.
FORM E04_COMMENT_BUILD *
--> E04_LT_TOP_OF_PAGE -
Cash Discount vs Actually Availed
Hi ,
I need to develop a report showing customer wise analysis of cash discount provides and cash discount actually availed.
This is my first object in FI . CAn anyone throw ligh ton what is an invoice reference ?
what is an SD condition to provide CAsh discount ?
what are the relevant tables I might have to explore?
Thank u .Hi,
1. Cash Discount Can be given both in FI and SD. If the company uses both then you have a tougher task.
2. By "Cash discount provides", I guess you are refering to "Terms of Payment". In terms of payment we define the credit days and cash discount offer if paid early.
Like 30 days 2 %.
45 Days 1 %.
3. The Cash discount condition record used in SD pricing procedure is normally CAS. But it can be anything like ZCAS or ZCD etc please check it in your system.
4. VBRP (Billing Item level) & VBRK (Billing Header Level) are useful Tables. You will also require KONP (Conditions Related) table. BKPF table for FI -Credit note will be also helpful.
Thanks,
Ashish -
AU not counting toward AAoA Equifax FICO score!!
I recently pulled my Equifax FICO score and report. The Equifax FICO score usually indicates the oldest account that was opened and average age of accounts. I have a AAoA calculator which when populated with all the accounts on my credit report produces an AAoA of over 10 years. After messing around with the AAoA calulator, I figured out that the Equifax FICO calculation is not counting my AU credit card. When I delete the AU from the calculation, the AAoA produces 7 years, which matches the FICO report. Additionally, I saw on my FICO report that the oldest account was 29years 4months. The AU that is on my FICO report was opened 2/1984 which would be 31years 5months. Thought this interesting. Don't know if it has always been this way or if it is a new development or perhaps something wrong with the calculation of my credit report only. Kind of irritates me somewhat. I mean, if a AU isn't going to count toward your AAoA, what is the point other than having a good trade line on your report? As matter of fact, the AU card isn't counting toward my utilization either. Basically, it is there on the credit report, but seems invisible when FICO's calculates. I will try and determine if Experian and TransUnion FICO calculations are also treating it this way when I get around to pulling them. Will paste what I am seeing for Equifax You have an established credit history.Your oldest account was opened 29 Years, 4 Months agoAverage age of your accounts7 yearsFICO High Achievers opened their oldest account 25 years ago, on average.Most FICO High Achievers have an average age of accounts of 11 years or more. Ratio of your revolving balances to your credit limits1%For FICO High Achievers, the average ratio is less than 6%.Company Date opened Balance StatusSyncb/Belk AU 2/1984 $855 Pays account as agreed (This is the AU) Macy's/Dsnb 3/1986 $1 Pays account as agreed ( FICO says this is my oldest account 29yrs 4mths)Usaa Savings Bank 1/2015 $41 Pays account as agreedAmalgamated Bank 8/2014 $0 Pays account as agreedBarclays Bank 6/2015 $0 Pays account as agreedAmalgamated Bank 8/2014 $0 Pays account as agreedIberia Bank 5/2003 $0 Pays account as agreedFmc-Omaha 11/2003 $0 Pays account as agreed AAoA calulator with all accounts 10.63 yearsAAoA calulator without the Belk AU 7.75 years The Belk AU card is not counting toward my utilization either, as you can see FICO says 1%. If it counted the AU it would be 5 or 6%. Didn't know if this should be on this forum, or maybe Understanding FICO scoring forum. Any one have any input??
Momof5 wrote:
TRC_WA wrote:
slimshady66 wrote:
I am under the opinion, legally, it is suppose to count. And if it is counting or making a difference, how is it doing that without effecting AAoA or Utilization?Good question. My question is why AU's carry any weight at all in FICO scoring. If my FICO score is supposed to be an indication of how I pay my debts... how would being added to Mom's 30 year old CC and inheriting her payment history be any indication at all of how I would pay my debts? I was in like 4th grade 30 years ago. The whole thing is just baffling to me. I'm all for AU accounts... I have added my Dad to my Sallie Mae MC because he has a limited history and I wanted him to have a CC he can use on a daily basis... but IMHO the FICO score shouldn't be affected at all by someone else's account.I believe that this stems from the old housewives, married women don't get credit days. The wife was an AU on DH's account, but was the one that actually managed the finances for the family. This helped bring women into the credit world.Basically this, millions of stay-at-home spouses who didn't bother with credit effectively lost their credit scores when FICO 8 was introduced. It was rolled back in favor of an anti-abuse algorithm to determine whether the AU counts or doesn't. All or nothing now. Presumably the lenders don't want AU's to count still (or they wouldn't have pushed FICO to do that in the first place), it wouldn't surprise me if further tweaks happen. FWIW I would strongly recommend everyone to have tradelines in their own name, regardless of AU's on the report. While mortgages are leaving the mandate of having to have your own tradelines behind, it's simply better to have your own history period to fall back on. OP: you can't really trust any third party (including MF's) interpretation for an AAOA calculation. I would be stunned and amazed if the abuse calculation was given to the front-end developers in FICO Consumer who wrote the simulator. -
Dear Expert,
Please help me out in following Report Requirement.
Our Management required to develop report which shows Customer Outstanding based on credit periods given to Customer. As the number of credit days varies customer wise. Customer credit days are maintained in Customer Master.
How do I calculate outstanding of Customer within credit days & Overdue Outstanding in BEx Query Designer, I hope this might be possible using customer exit variable but this credit days limit is not fixed for all customer, then how to get it ?
Please Help.
Regards,
DKIn the gray section to the left of the report design, right-click on the group footer for the Account Code and select 'Section Expert'. Turn on "New Page After". To prevent a blank page at the end of your report, click on the formula button to the right of the check-box and enter "not OnLastRecord".
-Dell
- A computer only does what you told it to, not what you <em>thought</em> you told it to! -
What is the function module to calculate "years of services" in HR?
What is the function module to calculate "years of services" in HR?
hi ,
following function module will help you to find the years of service
CALL FUNCTION 'HR_HK_TOTAL_YOS' "HR-HK: Calculate an employee's total years of service
EXPORTING
years1 = " pea_scryy Years of service
months1 = " pea_scrmm Months of service
days1 = " pea_scrdd Days of service
years2 = " pea_scryy Credit years of service
months2 = " pea_scrmm Credit months of service
days2 = " pea_scrdd Credit days of service
output_format = '01' " char2 Format to display the output
IMPORTING
years = " pea_scryy Total years of service
months = " pea_scrmm Total months of service
days = " pea_scrdd Total days of service
. " HR_HK_TOTAL_YOS
thanks u..
Maybe you are looking for
-
Question 1: new website takes forever to load.
I just published my first website. The first page is all words and yet it takes forever to load. Why is this? The site is: http://shortpoem.org/ Any suggestions on how to speed things up? Thank you. (The credit page mentions Sandvov, however I remove
-
Authorizations for cost centers or profit centers on FI documents
Hi, We need to assign some users to a role so they are allowed only to post documents that are related only to a specific cost centers or profit centers in the document. We try to do it using role authorizations transaccion PFCG, however we cannot fi
-
RE logical/physical standby database
1. Why logical standby database is SQL apply, and Physical standby database is redo apply? What 's the meaning/objective for that? (pls don't tell me what is SQL/redo apply) 2. As we know, a logical standby database can be used for reporting and quer
-
User unable to create queries on a multiprovider that exists in production.
Helo, I have an issue where one of the users is unable to create queries in BE X on a multiprovider as the multiprovider is not geting listed .He gets the message "No objects found ". I have Checked and the multiprovider exist in test and produ
-
I am using a Soundblaster Audigy 2 on a Windows XP Professional Dell computer. When I run a diagnostic using Creative Diagnostics, I get the following results. Hardware Detection: Pass; Wave: Fail; Midi: Fail; Mixer: Fail; Direct Sound 3D: Pass; Soun