Sales order approval based on Price

Hi Champs,
Have a scenario which needs to be mapped in SD.
Flexibility to decide if the billing needs to be processed for the respective sales order even if the actual price is lower than the sales budgeted price is required.
System will first compare the actual sales price with the budgeted price and if found lower a release for the sales order will be trigerred and attached to the sales order.
The function of this release in sales order will be to block the sales order at the time of billing creation. Please note that in this option, system will not stop the user from creating the sales order.
Until the authority does not release this order, the billing cannot be processed.
Can you please guide me if you have come across any such requirement.

Create one budgeted price conditon in the pricing procedure as statistical. The actual price should be compared with the budgeted price condition & if it is greater then automatically set a billing block. The billing block (VBAK-FAKSK) can be set automatically through the Module Pool MV45AFZZ & you make sure to put the logic that once the billing block is removed manually (Approved) then set VBAK-FAKSK eq initial.

Similar Messages

  • Sales Order Approval needed when price is changed

    Gurus,
    Here is the Scenario:
    User creates a sales order. If he changes the price of an item or adds a discount, it is required that the Sales Order needs approval from the Manager. Please let me know how to proceed with this.
    P.S.I found a similar thread but it was not answered.
    Referal Thread
    Approval at the time of price difference

    Hi Manoj,
    This can be done by using status profile at the sales order header and with function module I_Change_Status, you can change the user status in background and the order would need approval from the manager before allowing to create any subsequent documents.
    So create user status in your status profile
    SPRO - SD - SALES - DEFINE AND ASSIGN STATUS PROFILE - SALES DOCUMENT HEADER
    10 - Order Created
    20 - Order Confirmed
    30 - Order changes pending approval
    40 - Order Rejected
    50 - Order changes approved
    Now your abapper can write a logic in program MV45AFZZ wherein, whenever something in the order is changed after the order has been confirmed (status 20), then the status would automatically be set to 30. ((This can be done changes made to pricing if order is still at status 10. You have to decide the best possible scenario, i am just giving you an overview))
    Now your sales manager can come and either make it 40 if he wants to reject it, or make it 50, if he is okay with the new rates or discounts if any.
    You can find what changes have been made in the order by going to Environment - Changes.
    This will give the manager a clear picture of which fields in the order have changed.
    I have used this concept and it works perfectly fine.
    Try and let me know.
    Reward points for contribution if helpful.
    Regards
    Ravi

  • Changing the status of the sales order item based on reason for rejection

    Hi All,
    When a Sales order item is rejected then the status at the item level is changed as 'TECO'.When the reason for rejection is removed the status 'Teco' is reset.This status change can be achieved using the user exit 'MV45AFZZ'.But the exit does not allow re-atp calculation whenver a blocked item is release.I have use the exit 'MV45AFZB' ,through this the status change as well as re-atp calculation takes place.But the status changed(Based on reason of rejection) does not appear in the same screen.The change gets reflected only when the sakes order is saved and i open it again.
    I want the status change to appear in the same screen.I am doing my code in the form 'userexit_check_vbap' of the exit 'MV45AFZB'. Please let me know if there are any user exits or BADI's available for the same(Changing the status of the sales order item based on reason for rejection ).
    Regards,
    S.Subasree

    Hi subburamaiah
    If you want the report you can create a separate SIS report . In that take the input field  as a Reason for rejection.. and ask for the output the list of sales orders .Now when you check this user defined report you will give the reason for rejection and check what all orders got rejected on that reason for rejection.
    Regards
    Srinath

  • Block sales order creation based on material qty

    Hi,
      In my scenario i want to block the sales order creation based on material qty , how i can do this?
    Example:
    Material qty below 100 = able to create sales order
    Material qty above 100 = not able to create SO
    Thanks,
    Arun

    Hi
    For restricting the order if it is less than a specified qty, you can maintain the 'min order qty' in material master.
    But your requirement is the other way round - Restrict order if it is more than specified qty.
    In this case, you need to use the following sales order exit  in progran MV45AFZZ
    u2022     USEREXIT_SAVE_DOCUMENT_PREPARE
    Use this user exit to make certain changes or checks immediately before saving a document. It is the last possibility for changing or checking a document before posting.
    The user exit is carried out at the beginning of the FORM routine BELEG_SICHERN.
    Hope this helps.
    Regards
    Madhu

  • How to get sales order number based on purchase order

    hi,
    what is the transaction code to find the sales order number based on the purchase order number
    Regards,
    Murali

    Hi,
    Go to Se16 (data browser), see the table VBKD, enter the PO number, if any, execute.
    Prase

  • Sales order BOM with component price

    Dear All,
    In PP module is there any report sales order BOM with component price?
    please help
    regards,
    Anwar Shaikh
    SAP PP / QM

    Hi Anwar,
    Please see if the below link is helpful to your cause.
    [Recalculate the price of the sales order;
    Regards,
    Abhay Kapase

  • Get the sales order number based on customer number

    HI all,
    how can i get the sales order numbers based on the customer number?
    plz tell me the table names.
    thanks,
    Srini

    hiiiii..
    go to database table VBAK
    where you can find customer id and sales order
    use a select statement in your report program
    and key as kunnr ...
    i hope it does ...the job

  • Sales order approval workflow

    Hi,
    I am new to workflow. I have to implement sales order approval process in sap.
    Below are my queries:
    1) Can anyone tell me that is there any standard method for "approval" available in BOR.
    2) Organization level should be derived from the custom table in sap depending on the input coming to workflow.
    So how i can implement this process?
    3) Is there any possibility to approve the sales order through e-mail. If yes then how to do that.
    Can anyone suggest any example for this.
    Thanks in Advance.
    Sumit

    Hi Sumit,
    There are standard Objects available in BOR for sales order  you can extend that object type and use a
    new method for Approval process check object BUS2032.
    You can forward your workitem through email maintain settings in SCOT and SOST.
    Thanks & Regards
    Hari Sankar M

  • Sales Order Approval flow

    I wish to know if there is any standard procedure for the below in SD.
    "Sales Order Approval. There is a need from business to align on confirmation control.
    User requests to change the sales order flow to include SO confirmation step."
    rgds,
    Pri

    hi
    <u><b>U will follow this steps:</b></u>
    1.First create the status profile.
    2.In this status profile,u have create the Approval and Non-Approval and Double click to the Processing Process.
    3.Then assign to the Sales document header or Item Level.
    <b>IMG - Sales and Distribution - Sales - Sales Documents -Define And Assign Status Profile</b>

  • Fiori Approve Reqs - Custom Sales Order Approval Issue

    Hi All,
    Urgent Help required .
    We are developing Sales Order Approval apps using Approve Requests as baseline.   We have requirement to  display the sales Order details in Apps Like the PO apps.  Please help me find out how to add business data to Approve request apps . I have checked below Doc .
    .http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f0ab2463-4e16-3110-b08e-d93918e513a1?QuickLink=index&overridelayout=true&58789512365087
    Step 8 Extensibility section .
    8.2 we have implemented . all the steps mentioned in Doc were implemented in the backend system as we have to retrieve data from ECC/ERP
    Created Model Provider Class.
    Created the data provider Class.
    Created Service and maintained the customization table /IWPGW/C_TGW_CTX with Service.
    But i am not able to see the fields i have added to Entity when testing in the metadata fields in TASKPROCESSING. However, it does show there is Contextserviceurl with the context service what we have created
    Please let me know the Next step or if i am missing some steps .
    Please suggest me best approach to develop the Approval apps if not delivered by SAP ???
    Thank you very much for your help.
    Thanks,
    Deepanker
    Tags edited by: Michael Appleby

    You need to REDEFINE   method ENTITYSET_TASK and couple of other methods like GET_ENTITY etc. I am showing one for reference:
    Please look at std SAP method for GET_ENTITY in the std class. Here is a sample example:
    first get a handle to the Instance ID
    CASE iv_entity_name.
        WHEN 'InvoiceItem'.
    * get work item's instance ID   
          READ TABLE it_key_tab INTO ls_key WITH KEY name = 'InstanceID'.
          READ TABLE it_key_tab INTO ls_key_item WITH KEY name = 'InvoiceLineItem'.
          lv_wiid = ls_key-value.
    *     retrieve Invoice details
                      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
                      EXPORTING
                        input  = lv_wiid
                      IMPORTING
                        output = num.
                     CALL FUNCTION 'SAP_WAPI_READ_CONTAINER' destination lv_destination
                       EXPORTING
                         WORKITEM_ID              = num
                         BUFFERED_ACCESS          = 'X'
                       IMPORTING
                         RETURN_CODE                = lv_returncode
                       TABLES
                         SIMPLE_CONTAINER         = lt_simple_container
                         SUBCONTAINER_BOR_OBJECTS = lt_subcontainer_bor_objects
                         SUBCONTAINER_ALL_OBJECTS = lt_subcontainer_all_objects.
                   if lv_returncode = 0.
                   "TEST
                          READ TABLE lt_subcontainer_bor_objects with table key element = lc_element
                          into wa_subcontainer_bor_objects.
                                      " call rfc for data
                                         CALL FUNCTION 'ZRFC' destination lv_destination
                                          EXPORTING
                                                AUSBK = wa_subcontainer_bor_objects-value+20(4)
                                                BELNR = wa_subcontainer_bor_objects-value+24(10)
                                                GJAHR = wa_subcontainer_bor_objects-value+34(4)
                                          IMPORTING
                                                BLDAT = wa_BLDAT
                                                XBLNR = wa_XBLNR
                                                VENDOR = wa_vendor
                                                WRBTR = wa_wrbtr
                                          TABLES
                                                  LT_ITEM        =  lt_inv_item.
                    ENDIF.
    *     map details
          READ TABLE lt_inv_item INTO  wa_inv_item WITH KEY BZKEY = ls_key_item-value.
                    ls_item-instance_id = lv_wiid.
                    ls_item-invline_item =  wa_inv_item-BZKEY.
                    ls_item-COST_CENTER =   wa_inv_item-KOSTL.
                    ls_item-COMPANY_CODE =    wa_inv_item-AUSBK.
                    ls_item-FISCAL_YEAR =  wa_inv_item-GJAHR.
                    ls_item-GLACC_TEXT =   wa_inv_item-TXT20.
                    ls_item-FISCAL_YEAR =  wa_inv_item-GJAHR.
                    ls_item-GL_ACC_NO =  wa_inv_item-SAKNR.
                    ls_item-INV_DOC_NO =  wa_inv_item-BELNR.
                    ls_item-INVOICE_AMT =  wa_inv_item-WRBTR.
          CALL METHOD copy_data_to_ref
            EXPORTING
              is_data = ls_item
            CHANGING
              cr_data = er_entity.
    You might have to handle exceptions in this code and this is just an example.
    thanks
    Ashish

  • How to find out the Sales order no based on spool no

    Hi Experts,
    Anyone tell me how to find out the Sales order no based on Spool no.
    Thanks and regards,
    Amjad

    Hello Mohammed,
    Please check the following SAP Spool tables for your spool request.
    You will find your required document number as an Object key in these tables.
    TSCMSTAT   --> Field OBJNO
    SOOS           --> Field APPLKEY (Document number will be a part of this key)
    If your document is getting printed by SAP Script, then dont forget to take SCR value in the OBJTP field while searching for your record.
    Thanks and Best Regards,
    Vikas Bittera.
    ***Points for Usefull answers ***

  • Sales Order Blocking based on Minimum & Maximum Qty, Wt & Value.

    Hi Experts,
    I need to put a minimum and maximum (value, quantity and weight) set up in Sales Order based on the Customer.
    Based on the condition record I should be able to put the minimum and maximum quantity, order value and weight in condition record.
    If anybody try to enter less than the minimum and more than maximum system should automatically block the sales order.
    Is it possible ? If possible how can I create condition record for this.
    Christine

    For minimum order quantity you can maintain in the material master itself.  So whenever you enter the quantity less than the minimum order qty it throws the error and will save the order.
    Regarding the maxmum order quantity you have to write the userexit to control the max. quanity by specifying the max. qty in user exit.
    Reward points if it is helpful

  • Reserved sales order qty based on sales order

    Dear All,
    is there any way to reserve the sales order qty in stock based on the sales order?. Actually i want to block the some qty for paticular sales order.  For example I created one sales order with 100 qty of x article and now i want to delivery of sales order with the  same qty after one month . In this case i want to reserve this qty for this sales order that should be not deliverd by another sales order.
    Thanks
    Abhi

    Hi,
    Block this qty against sales order
    MB1B >>> Use movement 413 & enter
    Speciefy sales order number & item number
    Then this qty will be permanently reserved or blocked for the perticular order.
    Kapil

  • Sales order value based invoicing

    Hi ,
    Present setting is that Invoicing is done based on the quantity, is it possible that I can do the invoicing based on sales order value.
    2) How to control that Invoicing value and quantity  should not exceed the sales order quantity and value.
    Regards

    Hi
    most of conditions used in sales pricing get copied directly from order to invoice, only freight and delivery charges are aded up while generation of invoice.
    So functionally  if you can estimate freight or delivery charge value in sales order ,you can always maintian routine to be triggered in pricing procedure while invoice generation  to indicate whether  invoice  freight value is exceeding either the individual freight value for sales order  or compare total sale order value  with total invoice value.
    You can set error message if value exceeds than allowed condition value and so the transaction will not be saved.
    Alternatively Condition types AMIZ,AMIW can also be used to have a control through estimation.
    Create appropriate pricing routines with the help of ABAP developer and apply to condition value. Use statistical condition types for control of conditions.and I think what you are trying to achieve can be done.
    Regards
    Mandar

  • SALES ORDER STOCK VALUTION-STANDARD PRICE

    HI Gurus,
    One of my client using sales oder stock(special stock), which confirming production system not considering the
    S-Standard Price(which is released through standard cost estimate),  i want my special stock to consider the
    standard price, please help us, how can i do that, how system valuate sales order stock in this case, we are not implemented
    sales order costing.
    Regards
    Sreenivas.P

    Hi ,
    Check Valuation settings in Requiremnt class referred by requirement type assigned to Sales order.
    Rgds
    Atul Siddam

Maybe you are looking for