Exemptions from discounts and surcharges

I work for an entrepreneurial company. We do quite a range of business across many different industry sectors. We support many different types of business deals. One of our biggest challenges is managing pricing.
Wherever possible we try to set up our pricing calculation based on the most general attributes. For example: Sales Organization \ Price list type.
Unfortunately, our business is not that simple.  We may have situations where the price may need to be calculated based on the customer\ material, or customer\ plant\ material combinations, etc...  This is not a problem in the standard system. We've just arranged the access sequences in the appropriate manner.
Our challenge comes in with the range of discounts and surcharges.  Typically, management comes to us and says, "We need to add a surcharge for all customers who buy this product. There are 5,000 customers this would apply to. "
The approach has been to create a new condition type if necessary, and to organize the access sequences in as general as possible a manner, to minimize maintenance, in order to apply the surcharge.
After a few hours, a few days, or a few weeks, the sales leadership realizes 10% of the customers need to be exempted from this surcharge.  What's the best approach to do this?
We have traditionally created a new access sequence for customer\ material and added a new condition record for the combination at a rate of $0.00. The new access is then assigned above the access used to apply the surcharge. The system then finds the $0.00 value record before any others, applies it, and stops. The customer has the surcharge condition applied, but at no value. If the value is $0.00, then the record does not print on any customer facing output. The customer never sees the $0.00 charge, and we satisfy the sales management requirement.
The downside of this approach is as follows:
The pricing screen in the sales order gets cluttered with $0.00 value records. (i.e. Fuel surcharges, product surcharges, location surcharges, internal statistical conditions, etc..) Many of these may apply on a single order.  It gets confusing for customer service and others trying to read the pricing screen.
When a pricing report is run we inevitably get the question why are there so many records with $0.00 value? More confusion and ultimately IT support time.
It becomes difficult to identify what the final price to a customer is without simulating an order. You must create\simulate an order to get at the net price the customer will pay.  Now we need to introduce the SAP quotation process ( we currently don't use it), or code a program to work up a price. More IT development and or support time.
Numerous other reasons I can't think of at the moment
The simple approach would be to go back to sales management, tell them to forget about the discounts & surcharges, just work up a net price and be done with it. Unfortunately, the funds need to be channeled to different account assignments. Accounting wants transparency in the account assignments, and likes to see the application of the charges and discounts separated by condition types.
Caught between a rock and a hard place, what is a poor SD guy to do? Is there a better way to deal with the exemptions, minimize maintenance, and reduce the level of confusion and noise?
Any thoughts are appreciated.

Hi,
It is not advisable to go for a general access. It should be always from more specific to more general.
It seems that business process involves more functionality in pricing.
You can group your customers. You can use the fields like Customer group, Price group, Price list. If you take Customer group, you can maintain u2018nu2019 number of customer group say A, B, C , D, E, F, G, H, I , J. Create an access like Sales org / Distribution channel / customer group / Material group.
If your client wants to apply 5% surcharge to all customers, create condition records for all (A to J) customer group. If he wants to exempt some of the customer group, change the condition records for that particular customer groups. The client should be given be advice to go for any change in pricing according to the customer group or any other suitable fields (Price group or price list)
Regards,
K Bharathi

Similar Messages

  • Display discounts and surcharges  for the same vbeln in the same row

    hi experts
    i have to display one discount and surcharges for one vbeln, posnr and one material,
    i have used konv-kschl for condition type and konv-kwert for condition value.
    in my output the conditions what i have given for discounts and surcharges its matching and displaying in different lines for the same vbeln and posnr. usually i should get one line of outputfor one vbeln, but iam getting 3 times repeated
    (one without discounts, surcharges,
    second : same vblen, posnr with discounts,
    third : same vblen, posnr for surcharges )
      please modify the internal table and  conditions below what i have given in my object.
    DATA : BEGIN OF it_konv OCCURS 0,
    knumv LIKE konv-knumv, "Number of the document condition
    kschl LIKE konv-kschl, "Condition type
    kwert LIKE konv-kwert, "Condition value
    kbetr LIKE konv-kbetr,
    kposn LIKE konv-kposn,
    discounts LIKE konv-kwert,
    surcharges LIKE konv-kwert,
    hkunnr LIKE knvh-hkunnr,
    kunnr LIKE knvh-kunnr,
    END OF it_konv.
    LOOP AT it_konv INTO wa_konv.
    CASE wa_konv-kschl.
    WHEN 'ZD01' OR 'ZD02' OR 'ZD03'.
    wa_konv-discounts = wa_konv-kwert.
    WHEN 'ZEXP' OR 'ZEXW' OR 'ZCAF' OR 'ZCAP' OR 'ZCAQ'
    OR 'ZS01' OR 'ZS02' OR 'ZS03'.
    wa_konv-surcharges = wa_konv-kwert.
    WHEN OTHERS.
    DELETE it_konv WHERE kschl = wa_konv-kschl.
    ENDCASE.
    MODIFY it_konv FROM wa_konv TRANSPORTING discounts surcharges.
    CLEAR wa_konv.
    REFRESH wa_konv.
    ENDLOOP.
    As per one of the abap expert who responded to my query is the following.
    DATA : BEGIN OF it_konv OCCURS 0,
    knumv LIKE konv-knumv, "Number of the document condition
    kschl LIKE konv-kschl, "Condition type
    kwert LIKE konv-kwert, "Condition value
    kbetr LIKE konv-kbetr,
    kposn LIKE konv-kposn,
    discounts LIKE konv-kwert,
    surcharges LIKE konv-kwert,
    hkunnr LIKE knvh-hkunnr,
    kunnr LIKE knvh-kunnr,
    END OF it_konv.
    DATA : BEGIN OF wa_konv OCCURS 0,
    kposn LIKE konv-kposn,
    discounts LIKE konv-kwert,
    surcharges LIKE konv-kwert,
    hkunnr LIKE knvh-hkunnr,
    kunnr LIKE knvh-kunnr,
    END OF wa_konv.
    move '1' to it_konv-knumv.
    move 'ZD01' to it_konv-kschl.
    move '1200' to it_konv-kwert.
    move '0010' to it_konv-kposn.
    append it_konv.
    move '2' to it_konv-knumv.
    move 'ZEXP' to it_konv-kschl.
    move '1300' to it_konv-kwert.
    move '0010' to it_konv-kposn.
    append it_konv.
    move '3' to it_konv-knumv.
    move 'ZEXP' to it_konv-kschl.
    move '1400' to it_konv-kwert.
    move '0010' to it_konv-kposn.
    append it_konv.
    LOOP AT it_konv.
    MOVE-CORRESPONDING it_konv to wa_konv.
    CASE IT_konv-kschl.
    WHEN 'ZD01' OR 'ZD02' OR 'ZD03'.
    wa_konv-discounts = IT_konv-kwert.
    WHEN 'ZEXP' OR 'ZEXW' OR 'ZCAF' OR 'ZCAP' OR 'ZCAQ'
    OR 'ZS01' OR 'ZS02' OR 'ZS03'.
    wa_konv-surcharges = IT_konv-kwert.
    ENDCASE.
    COLLECT WA_KONV.
    CLEAR wa_konv.
    ENDLOOP.
    But to try according to the above, i dont have the values for kwert, i know only the condition type (KSCHL). based on this how can i solve my problem
    please clarify
    thanks in advance

    Refer to the suggestion given by Naimesh here Can we modify a sub-total in ALV making use of function GET_GLOBALS_FROM_SLVC_FULLSCR and the method GET_SUBTOTALS. You can see the parameter ep_collect01 refered in case of subtotals. Can you please check ep_collect00 for grand total in your case.
    As said about EP_COLLECT00,here goes a classic example Modify grand total in ALV GRID
    BR
    Keshav
    Edited by: Keshav.T on Sep 21, 2011 9:39 AM

  • Display discounts and surcharges

    hi experts
    i have to display one discount and surcharges for one vbeln,  posnr  and one material,
    i have used konv-kschl for condition type and konv-kwert for condition value.
    in my output the conditions what i have given for discounts and surcharges its matching and displaying in different lines. usually i should one line of output one vbeln, but iam getting 3 times, please modify the conditions below what i have given in my object.
    LOOP AT it_konv INTO wa_konv.
        CASE wa_konv-kschl.
          WHEN 'ZD01' OR 'ZD02' OR 'ZD03'.
            wa_konv-discounts = wa_konv-kwert.
          WHEN 'ZEXP'  OR  'ZEXW' OR  'ZCAF' OR 'ZCAP' OR  'ZCAQ'
               OR  'ZS01' OR  'ZS02' OR   'ZS03'.
            wa_konv-surcharges = wa_konv-kwert.
          WHEN OTHERS.
            DELETE it_konv WHERE kschl = wa_konv-kschl.
        ENDCASE.
        MODIFY it_konv FROM wa_konv TRANSPORTING  discounts surcharges.
        CLEAR wa_konv.
        REFRESH wa_konv.
      ENDLOOP.
    please clarify
    thanks in advance

    dear sir
    i will send my object u plz check. their is value for kbetr
    Table Definitions
    TABLES :  knvh,   "Customer Hierarchies
              konv,   "Conditions (Item)
              vbak,   "Sales Document: Header Data
              vbap,   "Sales Document: Item Data
              vbpa.   "Sales Document: Partner
    Internal Tables declaration
    TYPES : BEGIN OF knvh1,
            hkunnr LIKE knvh-hkunnr,    "Customer number of the higher-level customer hierarchy
            kunnr LIKE knvh-kunnr,      "Customer
           END OF knvh1.
    TYPES : BEGIN OF vbak1,
              kunnr       LIKE vbak-kunnr,
              vbeln       LIKE vbak-vbeln,             "Sales Document
              erdat       LIKE vbak-erdat,             "Date on Which Record Was Created
              posnr       LIKE vbap-posnr,             "Sales Document Item
              bstzd       LIKE vbak-bstzd,             "Purchase order number supplement
              matnr       LIKE vbap-matnr,             "Material Number
              spart       LIKE vbap-spart,             "Division
              vtweg       LIKE vbak-vtweg,             "Distribution Channel
              mwsbp       LIKE vbap-mwsbp,             "Tax amount in document currency
              kwmeng      LIKE vbap-kwmeng,            "Cumulative Order Quantity in Sales Units
              netwr       LIKE vbap-netwr,
              knumv       LIKE vbak-knumv,              "Number of the document condition
              kzwi1       LIKE vbap-kzwi1,              "Rate (grossamount)
              ps_psp_pnr  LIKE vbak-ps_psp_pnr,      "Work Breakdown Structure Element (WBS  Element)/project ID
             sellingprice LIKE vbap-netwr,
              netvalue    LIKE vbap-netwr,           "Net Value of the Sales Order in Document  Currency
              grossamount LIKE vbap-kzwi1,
           END OF vbak1.
    TYPES: BEGIN OF konv1 ,
              knumv LIKE konv-knumv,            "Number of the document condition
              kschl LIKE konv-kschl,            "Condition type
              kwert LIKE konv-kwert,            "Condition value
              kbetr LIKE konv-kbetr,
              kposn LIKE konv-kposn,
              discounts LIKE konv-kwert,
              surcharges LIKE konv-kwert,
             hkunnr LIKE knvh-hkunnr,
            kunnr LIKE knvh-kunnr,
         END OF konv1.
    TYPES : BEGIN OF str,
              kunnr       LIKE knvh-kunnr,
              vbeln       LIKE vbak-vbeln,
              posnr       LIKE vbap-posnr,             "Sales Document Item
              matnr       LIKE vbap-matnr,
             sellingprice LIKE vbap-netwr,
              ps_psp_pnr  LIKE vbak-ps_psp_pnr,
              kwmeng      LIKE vbap-kwmeng,
              bstzd       LIKE vbak-bstzd,
              vtweg       LIKE vbak-vtweg,
              discounts   LIKE konv-kwert,
              mwsbp       LIKE vbap-mwsbp,
              surcharges  LIKE konv-kwert,
              netvalue    LIKE vbap-netwr,
              grossamount LIKE vbap-kzwi1,
         END OF str.
    DATA:wa_knvh TYPE knvh1,
         it_knvh TYPE TABLE OF knvh1.
    DATA: wa_vbak TYPE vbak1,
          it_vbak TYPE TABLE OF vbak1.
    DATA: wa_konv TYPE konv1,
          it_konv TYPE TABLE OF konv1.
    DATA: wa_display1 TYPE str,
          it_display1 TYPE TABLE OF str.
    DATA: wa_display TYPE str,
          it_display TYPE TABLE OF str.
       ALV Declaration
    TYPE-POOLS:slis.
    DATA   t_fld TYPE slis_fieldcat_alv.
    DATA:  repid            LIKE    sy-repid,                "Report ID
           is_layout        TYPE    slis_layout_alv,         "Layout For ALV
           it_fieldcat      TYPE    slis_t_fieldcat_alv,     "ITAB for field
           wa_fieldcat      TYPE    slis_fieldcat_alv,
           it_events        TYPE    slis_t_event,            "ITAB for event
           it_listheader    TYPE    slis_t_listheader.       "Itab for listheader
    DATA:  ls_selfield      TYPE    slis_selfield.
    Selection Screen Definitions
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE  b001.
    SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE  a001.
    PARAMETERS : p_hkunnr TYPE knvh-hkunnr OBLIGATORY.
    SELECT-OPTIONS : s_kunnr FOR knvh-kunnr,
                     s_erdat FOR vbak-erdat,
                     s_p_ps_p FOR vbak-ps_psp_pnr,
                     s_hspart FOR vbap-spart,
                     s_hvtweg FOR vbak-vtweg,
                     s_bstzd FOR vbak-bstzd.
    SELECTION-SCREEN END OF BLOCK a1.
    SELECTION-SCREEN END OF BLOCK b1.
    INITIALIZATION
    INITIALIZATION.
      repid = sy-repid.
      a001 = 'SELECTION CRITERIA'.
    START-OF-SELECTION
    START-OF-SELECTION.
      PERFORM get_data.
      PERFORM condition_check.
      PERFORM process_data.
      PERFORM display_data.
    END-OF-SELECTION.
    **END-OF-SELECTION.
    **&      Form  GET_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM get_data .
      SELECT  hkunnr kunnr  FROM knvh
                            INTO CORRESPONDING FIELDS OF TABLE it_knvh
                            WHERE hkunnr = p_hkunnr AND kunnr IN s_kunnr.
      IF sy-subrc <> 0.
        MESSAGE e012(zmsg).
      ENDIF.
      SELECT  a~vbeln
              a~kunnr
             a~erdat
             a~bstzd
             a~vtweg
             a~knumv
             a~ps_psp_pnr
             b~posnr
             b~matnr
             b~mwsbp
             b~kwmeng
             b~kzwi1
             b~spart
             b~netwr
            FROM vbak AS a INNER JOIN vbap AS b ON bvbeln = avbeln
                      INTO CORRESPONDING FIELDS OF TABLE it_vbak
                     FOR ALL ENTRIES IN it_knvh
                        WHERE a~kunnr = it_knvh-kunnr
                             AND a~erdat IN s_erdat
                             AND a~ps_psp_pnr IN s_p_ps_p .
      SELECT  knumv kposn kschl kbetr kwert   FROM konv INTO CORRESPONDING FIELDS OF TABLE  it_konv
                   FOR ALL ENTRIES IN it_vbak
                   WHERE knumv = it_vbak-knumv .
    ENDFORM.                    " GET_DATA
    *&      Form  condition_check
          text
    -->  p1        text
    <--  p2        text
    FORM condition_check .
    To get the values for selling price, surcharges and discounts
      LOOP AT it_vbak INTO wa_vbak  .
        LOOP AT it_konv INTO wa_konv WHERE knumv = wa_vbak-knumv.
          CASE wa_konv-kschl.
            WHEN 'ZD01' OR 'ZD02' OR 'ZD03'.
              wa_konv-discounts = wa_konv-kwert.
            WHEN 'ZEXP'  OR  'ZEXW' OR  'ZCAF' OR 'ZCAP' OR  'ZCAQ'
                 OR  'ZS01' OR  'ZS02' OR   'ZS03'.
              wa_konv-surcharges = wa_konv-kwert.
            WHEN OTHERS.
              DELETE it_konv WHERE kschl = wa_konv-kschl.
          ENDCASE.
          MODIFY it_konv FROM wa_konv TRANSPORTING  discounts surcharges.
          CLEAR wa_konv.
        ENDLOOP.
    ENDLOOP.
      ENDFORM.                    " condition_check
    **&      Form  process_data
          text
    -->  p1        text
    <--  p2        text
    FORM process_data.
      LOOP AT it_vbak INTO wa_vbak  .
        LOOP AT it_konv INTO wa_konv WHERE knumv = wa_vbak-knumv.
        wa_display1-kunnr         = wa_vbak-kunnr.
        wa_display1-vbeln         = wa_vbak-vbeln.
        wa_display1-posnr         = wa_vbak-posnr.
        wa_display1-matnr         = wa_vbak-matnr.
        wa_display1-sellingprice  = wa_vbak-netwr + wa_vbak-mwsbp.
        wa_display1-ps_psp_pnr    = wa_vbak-ps_psp_pnr.
        wa_display1-kwmeng        = wa_vbak-kwmeng.
        wa_display1-bstzd         = wa_vbak-bstzd.
        wa_display1-vtweg         = wa_vbak-vtweg.
        wa_display1-discounts     = wa_konv-discounts.
        wa_display1-mwsbp         = wa_vbak-mwsbp.
        wa_display1-surcharges    = wa_konv-surcharges.
        wa_display1-netvalue      = wa_vbak-netwr.
        wa_display1-grossamount   = wa_vbak-kzwi1.
        APPEND wa_display1 TO it_display1.
        CLEAR wa_display1.
      ENDLOOP.
    ENDLOOP.
      LOOP AT it_display1 INTO wa_display1.
        READ TABLE it_knvh
                      WITH  KEY kunnr = wa_display1-kunnr INTO wa_knvh.
        wa_display-kunnr         = wa_knvh-kunnr.
        wa_display-vbeln         = wa_display1-vbeln.
        wa_display-posnr         = wa_display1-posnr.
        wa_display-matnr         = wa_display1-matnr.
        wa_display-sellingprice  = wa_display1-sellingprice.
        wa_display-ps_psp_pnr    = wa_display1-ps_psp_pnr.
        wa_display-kwmeng        = wa_display1-kwmeng.
        wa_display-bstzd         = wa_display1-bstzd.
        wa_display-vtweg         = wa_display1-vtweg.
        wa_display-discounts     = wa_display1-discounts.
        wa_display-mwsbp         = wa_display1-mwsbp.
        wa_display-surcharges    = wa_display1-surcharges.
        wa_display-netvalue      = wa_display1-netvalue.
        wa_display-grossamount   = wa_display1-grossamount.
        APPEND wa_display TO it_display.
        CLEAR wa_display.
       DELETE ADJACENT DUPLICATES FROM it_display..
      ENDLOOP.
    ENDFORM.                    " process_data
    **&      Form  display_data
          text
    -->  p1        text
    <--  p2        text
    FORM display_data .
      PERFORM fill_layout_structure.
      PERFORM fill_field_catalog_table.
      PERFORM alv_header USING it_listheader.
      PERFORM events USING it_events.
      PERFORM call_alv_function.
    ENDFORM.                    " display_data
    **SUBROUTINE TO FILL LAYOUT STRUCTURE
    FORM fill_layout_structure .
      CLEAR is_layout.
      is_layout-colwidth_optimize = 'X'.
      is_layout-zebra = 'X'.
    ENDFORM.                    "fill_layout_structure
    ***SUBROUTINE FOR FIELD CATALOG TABLE DEFINITION
    FORM fill_field_catalog_table.
      wa_fieldcat-fieldname = 'KUNNR'.
      wa_fieldcat-seltext_m = 'CUSTOMER'.
      wa_fieldcat-outputlen = '10'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'VBELN'.
      wa_fieldcat-seltext_s = 'DOC NO'.
      wa_fieldcat-outputlen = '10'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'POSNR'.
      wa_fieldcat-seltext_m = 'ITEM ' .
      wa_fieldcat-outputlen = '6'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'MATNR'.
      wa_fieldcat-seltext_m = 'MATERIAL'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      wa_fieldcat-outputlen = '18'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'SELLINGPRICE'.
      wa_fieldcat-seltext_m = 'SELLING PRICE'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      wa_fieldcat-outputlen = '21'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'PS_PSP_PNR'.
      wa_fieldcat-seltext_m = 'PROJECT ID'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      wa_fieldcat-outputlen = '24'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'KWMENG'.
      wa_fieldcat-seltext_m = 'QUANTITY'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      wa_fieldcat-ddic_outputlen = '19'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'BSTZD'.
      wa_fieldcat-seltext_m = 'ORD. SOUR'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      wa_fieldcat-outputlen = '4'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'VTWEG'.
      wa_fieldcat-seltext_m = 'DIST CHANNEL'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      wa_fieldcat-outputlen = '2'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'DISCOUNTS'.
      wa_fieldcat-seltext_m = 'DISCOUNTS'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      wa_fieldcat-outputlen = '18'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'MWSBP'.
      wa_fieldcat-seltext_m = 'GST'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      wa_fieldcat-outputlen = '18'.
      wa_fieldcat-ref_fieldname =  'WAERK'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'SURCHARGES'.
      wa_fieldcat-seltext_m = 'SURCHARGES'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      wa_fieldcat-outputlen = '18'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'NETVALUE'.
      wa_fieldcat-seltext_m = 'NET VALUE'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      wa_fieldcat-outputlen = '21'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = 'GROSSAMOUNT'.
      wa_fieldcat-seltext_m = 'GROSS AMOUNT'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
      wa_fieldcat-outputlen = '18'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    ENDFORM.                    "output_data
    ***SUBROUTINE FOR ALV HEADER
    FORM alv_header USING it_listheader TYPE slis_t_listheader.
      DATA : wa_listheader TYPE slis_listheader.
      DATA : days LIKE dtresr-weekday.
      DATA : name1 LIKE kna1-name1.
      SELECT name1 FROM kna1 INTO name1 WHERE kunnr = p_hkunnr.
      ENDSELECT.
      DATA :  v_date(10) TYPE c,
             v_erdat(10) TYPE c,
             v_erdat1(10) TYPE c,
             temp(60) TYPE c,
             temp1(60) TYPE c,
             temp2(60) TYPE c,
             temp3(60) TYPE c.
      WRITE : s_erdat-low TO v_erdat DD/MM/YYYY NO-GAP.
      WRITE : s_erdat-high TO v_erdat1 DD/MM/YYYY NO-GAP.
      WRITE : sy-datum TO v_date DD/MM/YYYY NO-GAP.
      CONCATENATE  sy-uname   days    v_date   sy-uzeit  INTO temp SEPARATED BY space.
      CONCATENATE  v_erdat   v_erdat1 INTO temp1 SEPARATED BY space.
      CONCATENATE  'Hlev customer'  p_hkunnr name1 INTO temp2 SEPARATED BY space.
      CALL FUNCTION 'DATE_TO_DAY'
        EXPORTING
          date    = sy-datum
        IMPORTING
          weekday = days.
      CLEAR wa_listheader.
      REFRESH it_listheader.
      wa_listheader-typ  = 'H'.
      wa_listheader-info = 'Mathur collaborations’' .
      APPEND wa_listheader TO it_listheader.
      wa_listheader-typ  = 'S'.
      wa_listheader-info = temp.
      APPEND wa_listheader TO it_listheader.
      wa_listheader-typ  = 'S'.
      wa_listheader-info = sy-repid.
      APPEND wa_listheader TO it_listheader.
      wa_listheader-typ  = 'S'.
      wa_listheader-info =  temp1.
      APPEND wa_listheader TO it_listheader.
      wa_listheader-typ  = 'S'.
      wa_listheader-info =  s_p_ps_p.
      APPEND wa_listheader TO it_listheader.
      wa_listheader-typ  = 'S'.
      wa_listheader-info = temp2.
      APPEND wa_listheader TO it_listheader.
    ENDFORM.                    "alv_header
    **SUBROUTINE FOR ALV EVENT                                             *
    FORM events USING  it_events TYPE slis_t_event.
      DATA : wa_event TYPE slis_alv_event.
      CLEAR wa_event.
      wa_event-name = 'TOP-OF-PAGE'.
      wa_event-form = 'TOP_OF_PAGE'.
      APPEND wa_event TO it_events.
    ENDFORM.                    " f4000_event
    **SUBROUTINE FOR EVENT INFORMATIONS TO ASSIGN TO THE PARTICULAR EVENT  *
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = it_listheader.
    ENDFORM.                    "COMMENTARY_WRITE
    **FORM FOR ALV FUNCTIONS
    FORM call_alv_function.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         i_callback_program               = repid
       i_callback_pf_status_set           = ' '
      I_CALLBACK_USER_COMMAND           = ' '
         i_callback_top_of_page            = 'TOP_OF_PAGE'
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
         is_layout                         = is_layout
         it_fieldcat                       = it_fieldcat[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
       it_events                          = it_events[]
      IT_EVENT_EXIT                     =
      IS_PRINT                          =   IS_REPREP_ID
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = it_display
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "call_alv_function

  • CO-PC--discounts and surcharges on purchased items

    In Product costing, CO-PC, What is the configuration needed to setup discounts and/or surcharges on purchased items ?
    Please reply at the earliest.
    Thanks.

    Discounts and surcharges would taken care of by the pricing procedures and the accounting keys assingned to them they will flow into the stock valuation. with these values you make up the bom for the finished product.

  • Payment term based discount or surcharge

    Client have requirement of Payement term based discount or surcharge. Conditions are like below:
    1. 10% discount to customer if he is paying cash.
    2. 5% discount if he is paying with in 15 days by cash, check or wire transfer.
    3. 5% surcharge on all other Payment terms other than above two mentioned.
    4. There are many payment terms  that's why We do not want to create several conditions record for surcharge.
    Please help & advice how to solve this using Standard SAP (With out writing any ABAP program or new routine).
    thanks

    Hi Jitender
    Please correct me if I am wrong.Looks like you have better Idea on this!
    why do You think that the issue is more of factoring discount?
    If he maitain 3 condion records for the 3 different payment terms, the system checks the payment terms from the customer master data in the order - Right?
    condtion record  EX:sales org, D.c, payment terms( for cash) - 10%( = $10)
    like that he will maitain 3 condition records for 3 payment terms.
    The moment I enter cystomer(systmem checks from customer master) in the sales order the sytem will picks up the $10 from condition record and it will display as a discount.
    whats wrong in that?
    Please can you clarify me.
    Thanks

  • XL-Reporter - sales analysis including row discount and document discount

    Hello World!
    In XLR I want to report all item-sales to customers grouped by item-groups based on invoives.
    Since I am interested only in net amounts (without tax, freight and other expenses) and discounts I use 'S0_LineTotal' as attribute.
    'SO_LineTotal' includes the discount of each item-row in the document.
    The row selection is as follows:
    FACT
    ARDT(Code = "ARCreditMemo","Invoice")
    FIG(SO_DocType = "I")
    ITM( * ) 
    Group By ITM.ItmsGrpCod
    The problem is that I also have to include the document discount 'OINV.DiscSum' in the result.
    In combination with the row selection specified above the attribute 'Total Discount' delivers no results (always 0).
    In the standard SAP report 'Sales - AR/Sales reports/Sales Analysis' the total discount is averaged to all items in the matrix of a document.
    How can I achieve this in my XL-Report?
    Thank you very much for your support!
    Frank Romeni
    Edited by: Frank Romeni on May 15, 2008 3:55 PM
    Edited by: Philip Eller on May 29, 2008 8:53 AM

    Hello,
    To get this, I tried drag following information from Report composer:
    Under Sales tab, choose Items(Display more atrributes to choose Item Group), Document Number(choose this one because same items may have different discount in different documents), Discount % Per Row(light dimension),Discount % Per Document(light dimension), Row Total(measure).
    Drag the Item Group to the Group region.
    Run the report and the result should be all items are grouped by item Group and discounts and total in different document for each item will be listed.
    Hope this helps you.
    Regards,
    Maggie An
    SAP Business One Forum Team

  • Verizon Edge with no discount and 4 hours of wasted time with Customer care

    So far my experience with Verizon has been far short of superior as it should be for the number 1 carrier in the nation.  I tried to open an account using the Edge program and did not qualify.  This was on the same day that the down payment for the Edge program became  available.  I called to determine why I was ineligible and try to find out if there was any way to become eligible and was told no and was told several times to just start a 2 yr agreement.  1 hour wasted when I could have just paid a down payment that day and none of these future problems would have occurred.  Fiance opened an account in his name on the Edge program for me.  I already had a prepaid account with a telephone number I wished to keep but was told in store that this would not be possible.  Account was opened with a new telephone number which I will refer to as telephone number A.  I contacted customer care and was informed that it would be possible to keep my telephone number  which I will refer to as telephone number B but was unable to do get it done at the time due to not having both of my phones with me.  30 minutes wasted as it should have been done in store the number transfer.  Was able to call back later and get my prepaid account with telephone number B added to my new account with my telephone number A.  We then proceeded to switch telephone numbers so that I had my original number, telephone number B, and then cancelled the additional line.  1 hr and 30 minutes wasted!!!  New single line plans come out and I chat in to change my calling plan to the Single line plan with 1gb of data for $60 and $50 with my Edge discount.  Chat representative changed my plan to the More Everything plan with 1gb.  This was not at all what I wanted as I'm trying to save money and I was hit with a huge bill.  Called in about bill got plan sorted out and am informed I no longer have the Edge discount because I'm using telephone number B.  I'm informed the Edge discount was applied to telephone number A and I can not have that discount using telephone number B.  This by the way took over 2 hours after I was informed by the customer care agent on the phone alot of inaccurate info.  I was informed the 1gb single line plan was a loyalty plan and I was not eligible until my account had been open for 1 year.  I was also informed that the Edge discount did not apply to the single line plan.  2 hours wasted After speaking with a supervisor I was still unable to have my Edge discount applied.  How can this be Verizon?  How can I purchase a phone on the Edge program, be given a discount and then have it removed simply because I wish to use the telephone number I've had for over 10 years?  I WAS NEVER ONCE INFORMED I WOULD LOSE MY DISCOUNT!!!!  I went from prepaid to the Edge program because I wanted a new phone and 4G and because of the Edge discount making it very close to what I was already paying.  I've wasted 4 hours on this when all of this should have been done in the begging.  If I had been able to put a down payment down I could have had my number then 90% of these problems I wouldn't be having.  You can't tell me there is no way to use my number and not get the Edge discount.  VERY UNHAPPY!!!

    So ChristinaB_VZW replied to my post.  You would think I would get a little further help regarding my issue, correct?  WRONG!!!  I told her thank you for helping me and she asked me to reply back with my original message copied and pasted which I did on 4/8.  I waited until 4/17 and had not heard back so I responded back to her.  Still haven't heard anything from her.  Do they simply post on these forums so that customers have the appearance of receiving assistance so that in public it looks as though I've been helped when in actuality still nothing has been done.  I could understand if I was begging for a new phone or wanted $100's of dollars off my bill for no reason but I'm not.  I want the discount that I should be receiving as part of my VERIZON EDGE AGREEMENT.  This is the worst experience I've ever had with any kind of services for money.  I know one thing for a fact and that's one you are a customer you no longer matter.  So thank you ChristinaB_VZW for making Verizon appear to care about customer issues when in actuality they do not.  I will be sure to never recommend your services to anyone and to reference this issue and lack of customer support for that reason.

  • Problem in Selecting the data from EKPO and KONV tables

    Hi Experts,
    Presently I am working on Report with Comparision-Sheet Between the vendor's Quotations. I have to display the Discount, Freight, Packing and Forwarding, Vat in Item level data based on the conditions made in PO.
    As per my Knowledge, Condition Types are stored in KONV Table. But there is no relation between KONV and EKPO tables.  So, I am unable to print the data for Discount, Freight, Packing and Forwarding, Vat... How can I get the values from EKPO and KONV tables?
    Thanks in Advance.
    Thanks n Regards,
    Muralikrishna.

    Don't recall if this is correct, but you may need the condition number from the header (EKKO) combined with EKPO-EBELP or other field as you key to access KONV (KNUMH and KPOSN).  My site doesn't run PP, so can't verify if the data is actually stored that, so just a possibility.

  • Can I use both Education discount and Black Friday discount

    Hi
    Can anyone tell me if both the education discount and the black friday discount be used together. I plan to buy a macbook.
    Ajju

    Hello and Welcome to Apple Discussions. 
    We are just iMac users here. Far better to give Apple a call and get the official line from them:
    1-800-MY-APPLE or +(800) 780-5009+
    cheers
    mrtotes

  • Discount percentage deviates from discount total due to rounding *

    When I copy an AP invoice to a credit memo, there is * discount -0.01 CAD on the credit memo and a remark: Discount percentage deviates from discount total due to rounding *.
    Can someone please explain why this is happening?

    Hi,
    You need to check the F1 Online help
    goto the search option and enter the keywords  > 'Rounding Method'
    Here is the extract :
    By Document
    Select this option, if you want to work without using rounding account and without rounding definitions for each currency. For each sales document, determine whether it should be rounded. Choose Administration ® System Initialization ® Document Settings ® Per Document tab. Choose the required documents and select the Automatic Rounding for Document.
    The differences created as a result of the rounding are displayed in the Discount field of the marketing documents.
    You can define that SAP Business One will display a rounding remark. Choose Administration ® System Initialization ® Document Settings ® General tab and select the Display Rounding Remark. This way, whenever you create a rounded document, an asterisk (*) appears n the Discount field and the remark u201CDiscount percentage deviates from discount total due to roundingu201D appears in the Remarks field of the document.
    Hope it helps.
    Kind Regards,
    Jitin Chawla
    SAP Business One Forum Team

  • Client wants freight charges to exclude from discount base for payment

    Dear All,
    Client wants freight charges to exclude from discount base for payment to vendor.
    We have maintain the customization of "Discount base is net value" in Global Parameters for company code.
    But while payment to vendors, the system is adding the freight amount in the discount base, which should not be.
    Please advice, how we can solve this problem.
    Is there any customization needed for that ?
    Regards
    BIJUDAS

    Hi,
    The net caclulation is meant for calculation inclusive of exclusive of tax amount  and not freight amount. If you want to acheive this fro freight, the only way i see it is thrugh separate invoices. Alternatively you will have to go through the ABAP route in terms of user exits.

  • Aduit Log Report: Exempt from policy

    Hi!
    I need to know if there is a standard report available of documents which are exempt from a policy (beforhand declared)?
    We have a Record Center solution available, content types with information mgt policies and in place record mgt active.
    Are the exempt statuses logged in some ootb reports (like audit log report)?
    Kind regards
    Thomas

    Hi!
    I need to know if there is a standard report available of documents which are exempt from a policy (beforhand declared)?
    We have a Record Center solution available, content types with information mgt policies and in place record mgt active.
    Are the exempt statuses logged in some ootb reports (like audit log report)?
    Kind regards
    Thomas

  • Quantity, Discount and Gift Box now showing

    I have an issue that I am not sure can be fixed but will try here.
    I have uploaded my Muse site to business catalyst and have started setting up templates for the various E-Commerce  that will be needed. SO far I have the catalog and product pages working by adding the {tag_pagecontent} to the muse site and setting the template in Business Catalyst to that page template. This has worked so far!
    Now I am working on the checkout process, the first thing I am trying is the view cart. Everythng currently is working on the cart (after setting it up the same way as above) except it is not showing the boxes for quantity, discount and gift voucher. I did not change anything in the layout itself except the template. It will be hard for people to see that they can change it there without the box.
    Any suggestions to correct this would be appreciated.

    They are in the original layout which I have not changed. It is as soon as I apply the template with the {tag_pagecontent} from muse when it changes

  • Identities are exempt from auth, but still being prompted

    Six of the seven identities we have are set to exempt from authentication, as is the global policy. The one identity that requires authentication is disabled. Yet some users get intermittent prompts for credentials in Firefox, and in some cases with Outlook as well.
    What might be causing this, and is there a way to turn this off?

    We have a routing issue where these users are hitting a different Ironport appliance than the one they should be using. So it is working as expected...

  • Need Function Module for Printing Rates,Discounts and Taxes in Invoice.

    Hi All,
    For our Invoice printing I need to get a function module which will provide me the rates,discounts and taxes against each item line of the Invoice No.
    Finall it will be printed accordingly.
    Can anyone help me regarding this with input parameter example.
    Thx in Adv.

    Hi,
    As far as I know there is no fun module to print all this stuff.
    You have to get this data from KONV table by passing the VBRK table KNUMV field.
    Then check for all the Rates and amount KBETR and KWERT fields for the respective condition Types.
    You have to loop the KONV internal table and write all the condition rates and amounts in the script driver program.
    see any Std script for this.
    Regards,
    Anji

Maybe you are looking for

  • Where can i see the log files from an airport express with the new airport program 6.0 ?

    hello together, does anybody know whre i can see the logfiles from an ape with the new airport utility '?

  • Cfmap inside table based layout

    I'm noticing that the table attributtes set within a table are dropped from any data cells after a cfmap tag is placed in the table. In a simple example with cellpadding you will see that it works in the data cells before the cfmap tag but not after.

  • MIDI Studio Setup window device arrangements not saved

    I just started checking out Snow, late to the party... been TDM for years. I am finding that the AMS MIDI Studio window no longer remember device layout or arrangement like it has for years. Makes a big difference for users with many external instrum

  • Advanced Navigation

    Hi there, A. One of the current practice I have when building a template is to call repeating navigation using php includes (or ssi if there's no php support, shame on those host by the way). B. Why do that man? A. Simple. Navigation need to be repea

  • Allocate-interface to an existing ASA context

    We have a active/active context firewall and would like to add an sub-interface to the exisitng context. Can someone share the link on how to do this? All cisco documentation is for creating a context and allocating interface from scratch but I could