CIN -TAXINN pricing conditions

Hi Friends,
Can anyone help me in providing the configuring of the CIN TAXINN procedure with screenshots.
Also let me know how to differentiate the intrastate and Interstate tax calculations and the tac conditions required to calculate the BED,Ed Cess,SH Ed cess,VAt,CST ,LST....ASAP
Thanks in advance
Ivy

CIN Configuration
1.1 Maintain Excise Registration
 Logistics general  SAP Ref. IMG SPRO  Maintain Excise Basic setting India tax on Goods Movements Registrations
1.2 Maintain Company Code Settings
SPRO   Basic settingIndia  tax on Goods Movements Logistics general SAP Ref. IMG   Maintain Company Code Settings
1.3 Maintain Plant Settings
tax on Goods Logistics general  SAP Ref. IMG SPRO   Maintain Plant Basic setting India Movements Settings
1.4 Maintain Excise Groups
SAP Ref. IMGSPRO   Maintain Basic setting India  tax on Goods Movements Logistics general  Excise Groups
1.5 Maintain Series Groups
SAPSPRO   Basic setting India  tax on Goods Movements Logistics general Ref. IMG  Maintain Series Groups
1.6 Maintain Excise Duty Indicators
tax on Goods Logistics general  SAP Ref. IMG SPRO   Maintain Excise Duty Basic setting India Movements Indicators
1.7 Maintain Subtransaction Type with Text
India  tax on Goods Movements Logistics general  SAP Ref. IMG SPRO   Maintain Subtransaction Type with TextBasic setting
1.8 Determination of Excise Duty
tax Logistics general  SAP Ref. IMG SPRO   Select Tax Calculation Determination of Excise DutyIndia on Goods Movements Procedure
1.9 Maintain Excise Defaults
SAP Ref.SPRO   Determination of ExciseIndia  tax on Goods Movements Logistics general IMG   Maintain Excise DefaultsDuty
1.10 Condition-Based Excise Determination
tax on Goods Logistics general  SAP Ref. IMG SPRO   Define Tax Code for Condition-Based Excise DeterminationIndia Movements Purchasing Documents
1.11 Condition-Based Excise Determination
tax on Goods Logistics general  SAP Ref. IMG SPRO   Assign Tax Code to Condition-Based Excise DeterminationIndia Movements Company Codes
1.12 Classify Condition Types
SAPSPRO   Condition-BasedIndia  tax on Goods Movements Logistics general Ref. IMG   Classify Condition TypesExcise Determination
1.13 Maintain Chapter IDs
tax on Goods Logistics general  SAP Ref. IMG SPRO   Maintain Chapter ids Master dataIndia Movements
1.14 Assign Users to Material Master Screen Sequence for Excise Duty
SPRO   Master dataIndia  tax on Goods Movements Logistics general SAP Ref. IMG  Assign Users to Material Master Screen Sequence for Excise Duty
1.15 Specify Excise Accounts per Excise Transaction
tax on Goods Logistics general  SAP Ref. IMG SPRO   Specify Excise Accounts per Excise Account determinationIndia Movements Transaction
1.16 Specify G/L Accounts per Excise Transaction
tax on Goods Logistics general  SAP Ref. IMG SPRO   Specify G/L Accounts per Excise Account determinationIndia Movements Transaction
1.17 Incoming Excise Invoices
SAPSPRO   BusinessIndia  tax on Goods Movements Logistics general Ref. IMG   Incoming Excise InvoicesTransactions
1.18 Define Processing Modes Per Transaction
 Logistics general  SAP Ref. IMG SPRO   Define Processing Modes Business TransactionsIndia tax on Goods Movements Per Transaction
1.19 Define Reference Documents Per Transaction
tax on Goods Logistics general  SAP Ref. IMG SPRO   Define Reference Documents Per Business TransactionsIndia Movements Transaction
1.20 Maintain Rejection Codes
SAPSPRO   BusinessIndia  tax on Goods Movements Logistics general Ref. IMG   Maintain Rejection CodesTransactions
1.21 Specify Which Movement Types Involve Excise Invoices
Logistics SAP Ref. IMG SPRO   Specify Which Business TransactionsIndia  tax on Goods Movementsgeneral  Movement Types Involve Excise Invoices
1.22 Outgoing Excise Invoices
tax on Goods Logistics general  SAP Ref. IMG SPRO  Assign Outgoing Excise Invoices  Business TransactionsIndia Movements Billing Types to Delivery Types
1.23 Maintain Default Excise Groups and Series Groups
 Logistics general  SAP Ref. IMG SPRO   Outgoing Excise Invoices  Business TransactionsIndia tax on Goods Movements Maintain Default Excise Groups and Series Groups
1.24 Subcontracting Attributes
tax on Logistics general  SAP Ref. IMG SPRO   Subcontrac Subcontracting Business TransactionsIndia Goods Movementsting Attributes
1.25 Maintain Movement Type Groups
SPRO   BusinessIndia  tax on Goods Movements Logistics general SAP Ref. IMG   Subcontracting SubcontractingTransactions Attributes
1.26 Utilization Determination
SAPSPRO   BusinessIndia  tax on Goods Movements Logistics general Ref. IMG   Utilization Determination UtilizationTransactions
1.27 Specify SAPscript Forms
tax on Logistics general  SAP Ref. IMG SPRO   Specify Excise Registers Business TransactionsIndia Goods Movements SAPscript Forms
1.28 Number Ranges
SAP Ref. IMGSPRO   Number ToolsIndia  tax on Goods Movements Logistics general  Ranges
1.29 Message Control
 SAP Ref. IMG SPRO   Message ToolsIndia  tax on Goods MovementsLogistics general  Control

Similar Messages

  • TAXINN pricing condition missing

    Hi friends
    I am doing the TAX INN configuration
    Following standard tax conditions are missing for TAXINN pricing procedure
    JECP u2013 ECS SETOFFP - ECS Set off Percentage.
    JEX1 u2013 ECS SETOFFT - ECS Set off Total.
    JECI u2013 ECS INVENTP - ECS Inventory Percentage.
    JEX2 u2013 ECSINVENTT - ECS Inventory Total
    JSEP - IN A/P SEcess setoff
    JSEI - IN A/P SEcess Inventory
    JSRT    A/P Service Tax
    JEC3    A/P ECS for ST
    can any body help me in configuring TAXINN

    Hi Prabhat,
    it seems there are some changes to be done in your TAXINN.
    Please go through the SAP notes 1032265, 1044509.
    these are two master notes realted to HE Cess changes in budget 07-08.
    regards,
    Adwait Bachuwar

  • Maintain Excise defaults for pricing condition in TAXINN procedure

    Hi all,
    I post this message as I'm customizing CIN part for creation and calculation of excise invoice. I have read lot of post but i'm a bit confused about right procedure to adopt. I try to explain:
    I'm doing a stardard sales flow (sales order -> delivery -> commercial invoice -> excise invoice) and the only method I have found to flow excise values in excise invoice is to insert pricing conditions in India -> Basic settings -> Determination of excise duty -> Maintain excise defaults for TAXINN procedure.
    In this table I have insert pricing conditions I use in my SD pricing schemas (in this case I use a copy of JINFAC). I have insert pricing conditions corresponding to BED % and BED total, and also CESS % and total and S&HCESS % and total.
    If I remove pricing condition from this table, corresponing value in excise invoice, when I create it, become 0.
    My dubt is if is correct to populate with table to flow excise values in excise invoice. I ask it as I have read differents approach and differents customizing settings applied in similar situations. In particular, I have found documentation in which, for TAXINN procedure, is recommended to leave blank "excise defaults" (with exception of CVD condition). What is the right method to use?
    There is one right procedure or, as it seems reading posts, someone have to do his "proper CIN customizing" based on results that have to obtain?
    Thanks in advance for any contribute that can help to clarify this situation.
    Regards
    Gianpaolo

    Hi all,
    I think to have found solution to my dubt.
    If I use "condition based Excise determination" I have to insert records with pricing schema (if is a copy of standard J* schema, like ZINFAC that is a copy of JINFAC) and excise pricing conditions in the transaction below:
    India -> Basic settings -> Determination of excise duty -> Condition-based Excise determination -> Classify condition type
    To determine value in excise invoice seems that program check before table in transaction described before. If in this table don't find records for pricing schema-excise pricing condition the program check also table in transaction below:
    India -> Basic settings -> Determination of excise duty -> Maintain excise defaults
    If during this second check find excise pricing conditions insert, can determine equally the values of excise in excise invoice.
    This is the result of my checks. I hope this could be useful for other people with similar problem.

  • CIN Pricing Condition

    HI Gurus
    Need yr expertise.. I have a scenario where user shipped to a customer without 'C' form under CST.. Below is the scenario:-
    Shipped from Mumbai
    Matl A1 - 4%
    Matl B1 - 12.5%
    Shipped from Delhi
    Matl A1 - 4%
    Matl B1 - 4%
    How does user create a pricing condition for the above scenario if  they were to shipped from Mumbai and Delhi for the same material without 'C' form under CST so that when user create a Sales Order the rate are pick up automatically?
    Any suggestion to resolve the above? Thanks..
    Rgds..Sanjay

    Hi..
        Please note that SAP will not provide you all the condtion types, SAP will provide you some sample condition types (each scenario). This needs to be copied to and you have to create your own condition types and ensure that all the customization/setting should be kept intact (only if required can be changed).
    From 4.7E onwards SAP had come out with TAXINN procedure. So it is always recommended to use TAXINN procedure as this will support CRM application.
    SAP has 4 standard pricing procedure  for both formula based and condition based. You can use
    Pricing Procedure starting with JIN..... (Example JINFAC).
    In those pricing procedure you can see excise condition type for BED, AED, SED and CESS.
    Now for your information BED conditin type are: JEXP: Percentage Condition type and JEXT/JEX2 are total condition type. Similarly you can copy these conditon types and create your own ECS and SeCess Condition types.
    For ECS and SeCess Most of the customers are using ECS:  JECS:Percentage JECP=Total.
    SeCess JA1X: Percentage and JA1Y : Total
    Above mentioned ECS and SeCess condition types can be copied from repective BED condition types.
    You have all the Key combination is defined in the standard access sequence, you are not suppose to changes the standard access sequence but you can add your own table in this access sequence as per your requirement (if only standard does not support).
    Regards
    MBS

  • SAP CIN - Which Pricing Proc and which Tax Proc ?

    Hi,
    Can anyone help me understand the difference between Formula based Pricing procedures (JDEPOT, JEXPOR, JFACT) and condition based (JINDEP, JINFAC, JINEXP) ?
    And Same for TAX  - Whats the difference between TAXINN and TAXINJ ?
    How should we decide which one to use and when ?
    Thanks !
    CIN, Tax procedure, Pricing Procedure, SD, MM, FI

    Hii Ron Borry,
    1.TAXINJ-Is Formula based pricing procedure-The tax amount will be calculated based on Tax amount maintained in J1ID(Chapter ID) were as,
    If you are using TAXINJ then rates are to be entered while creating tax code in FTXP & J1ID.
    In TAXINJ procedure is formula based, where you can find Routine ( selection with logic in line of condition type) are play vital role in tax calculation .
    2.TAXINN-Is condition based pricing procedure-the tax amount will be calculated based on condition records maintained in FV11(With what ever predified key combinations)
    If you are using TAXINN then system will pick rate from condition record maintained using tcode FV11.
    In TAXINN procedure, you can create tax code in FTXP & maintain tax rate for condition types basic excise duty,edu cess , H. Edu cess,VAT/CST in FV11 t.code .Otherwise you can maintain tax rate with respective condition types in FTXP during creation of tax code. But you should maintain condition record in FV11 t.code for condition types JMX1 & JMX2 are as 100%.
    Connection with SD
    ================
    The standard procedure with all excise conditions and Sales conditions is pre delivered. All tax calculations happen within TAXINJ. From the pricing procedure the net price gets transferred to the BASB condition of tax procedure. A/R Excise duty conditions are statistical in TAXINJ. These get copied to the SD pricing procedure and get posted from there. From release 46C it is mandatory that all tax conditions of the tax procedure be available in SD pricing also. The posting for the A/P excise duty as well as Sales taxes in both input and output happens from the FI tax procedure.
    Benefit -  we should follow TAXINJ because it is condition based and it works as the normal pricing procedure works in SD. But this process is too much tough to implement.
    Thanks and Regrds,
    Santanu

  • CIN - TAXINN and TAXINJ

    Why should we go for TAXINN, what are the advantagous of TAXINN over TAXINN
    Thanks in Advance

    Hi,
    TAXINJ is Routine based  based PRICING PROCEDURE and we have to define the Routine/Requirement for our requirement and assign to each condition type in that pricing procedure
    Here we have to define Routines with the Help of ABAPers. Till 4.7 version this pricing procedure is used
    From 4.7 Onwards, SAP came with TAXINN pricing procedure which is condition records based pricing procedure for whcih we can just maintain the condition records which are very flexible.
    Here we can have condition records based on the access sequence which are flexible and can be used in different scenarios.
    This is the Main Advantage of TAXINN over TAXINJ.
    Hope you got it.
    regards,
    santosh

  • TaxINN & Pricing

    Dear All,
    I have a scenario
    There is a component that is purchase for Basic price of pattern = 19530   Rs (X)
    For this there is also pattern value                                                  = 93        Rs (Y)
    Total value                                                                                = 19623  Rs
    On 19623 Edu Duty10% + 2% Ecs + 1% SHECs Should be calculated .But During VAT Calculation shod be calculated excluding 93 Rs (Y Shown above) that is on 19530 + Excise Duties Components.
    How can I  map this in SAP Taxinn & Pricing Procedure.Please explain

    you can try whether the following works
    have condition for basic price ( step 1 )
    and discount / surcharge ( step 10 )
    have another condtion wich take the value of step 10 but as negative and 6 in sub tot.
    pl post a reply if it works or you could manage in any other way

  • Vendor determination for pricing conditions

    Hi experts,
    Can we automatically define Vendors for particular pricing conditions?
    like we can manually define vendors for Freight at the time of PO
    I want it in case of customs duty paid to customs department..
    Krishna

    Krishna,
    When you have special pricing conditions for a selective vendor to whom you are ordering a material (i.e. sending a PO)
    for the above, there is a schema groups for vendor to be configured in MM in IMG Display; also called as vendor schema (VS). And it (i.e. VS) consists of special conditions like freight and other special pricing conditions.
    Suggestion: To configure the VS follow the steps:
    1. define schema groups for vendor,
    2. define schema groups for purchase organization
    3. assignment of schema groups to purchase organization
    by that the configuration setup is done, and now you can use the vendor schema in vendor master (i.e. through XK01)
    i.e, in purchasing view of vendor master and then automatically the specified pricing conditions such as freight and etc will be pulled into the PO and it gets invoiced at the time of invoice verification)
    And for the CVD condition, the value for this condition can be maintained in condition records through FV11. And when you capture the CVD for the customs before GR. The amount of CVD will be posted to the respective G/L account (i.e. to the CVD (G/L) account which is configured in Maintain company code settings in Tax on goods movements and is part of CIN configuration setup. 
    Hope this will clarifies you,
    Reward, if it helps,
    Regards,
    Srin.K

  • Free Goods with pricing condition (Urgent)

    Hi MM Expert,
    we have a probleme with free goods. because in PO item of free goods, there is no condition management (no Invoice entry) but we should manage some pricing condition for the item (spécifique condition relative to transport, ...).
    so are the any way of managing the expenses annex condition(transport charge, customs clearance charges,…) for the free goods in an item of Purchase Order ??
    thank's in advance.
    Said

    Hi,
    This is not possible to maintain the condition s for free goods because while creating the PO for free goods by selecting the free goods tad at item level, There is no Condition tab at Item detail .means you are not able to mainatin conditions.
    If you want to maintain the conditions ,you have to treat as a Normal scenarios .
    Regards
    Sanjay L

  • How to change pricing Conditions in Sales order in change sales order bapi

    Hi Experts,
    How to change pricing Conditions in Sales order in change sales order bapi.
    I have used the 2 function modules bapi-changesalesorder and sd salesdocument change, But it is creating the new record , instead of changing the existing one, Could please assist regarding the same
    Thanks in Advance .
    NLN

    HI NLN
      I have just tried on my system and managed to overwrite the existing price by passing the following parameters.
      <b>Import Paramters:</b>
         SALESDOCUMENT - Sales Document Number
         ORDER_HEADER_INX - UPDATEFLAG as <b>'U'</b>.
         LOGIC_SWITCH - Import Structure - Pass 'X' to LOGIC_SWITCH-COND_HANDL.
      <b>Tables:</b>
         CONDITIONS_IN - ITM_NUMBER,
                         COND_COUNT, -> Condition counter same as KONV-ZAEHK generally it is <b>'01'</b>
                         COND_TYPE,
                         COND_VALUE,
                         CURRENCY.
         CONDITIONS_INX - ITM_NUMBER,
                          COND_COUNT,
                          COND_TYPE,
                          UPDATEFLAG as <b>'U'</b>,
                          CURRENCY.
       Hope i have clarified your query.
    Kind Regards
    Eswar

  • How to hide the pricing conditions specified in pricing procedure of sd.

    dear friends,
    my situation is to hide the conditions specified in the pricing procedure. so that it is not viewed by the some users.can you please tell me how to hide the conditions. so some of the persons, who are having authorization to see the conditions , will be able to see the pricing conditions.
    can you please suggest me how to do this.
    regards,
    g.v.shivakkumar

    Authorisation  issues viz. Role Impementations
    Hide Condition Records Line Item & Header Wise from all the transactions QK / So /  P.I. / Enquiry / Invoice etc. for specific user grps. - in CRETATE / AMEND / DISPLAY / REPORTS all
    Only Display the fields
    regards,
    g.v.shivakkumar

  • Unable to display the pricing conditions for a product.

    Hi All,
        I have created a product with help of function modules.The problem is that i am able to populate the pricing conditions data into internal table,but the pricing conditions  is not being displayed in the Masterdata->Products-> Maintain Products screen. Can anyone suggest me in this regards.Is there any function module to be used? or any other procedure to be followed for the pricing conditions to be dispalyed? If any sample code also please provide me.Please respond soon it is an Urgent Requirement. Points will be awarded for useful answers.
    Thanks in Advance,
    Shwetha.

    Hi,
    The pricing in SD and MM is a separate module like thing and is maintained for different products based on the Condition records.
    The basic Pricing Procedure consists of Condition  Types, Condition Records, Accesss Sequences and condition tables.
    Generally with respect to all sales and purchase documents the pricing is maintained in KONV  and KONP tables based on the different condition types.
    reward points if useful
    regards,
    ANJI

  • Price and Pricing conditions are not copied to PO for a line item !!

    Hi
    I have created a PO w.r.t a PR which has only one line item.
    Now, I add another line item to this existing PO, i get an error message that the Price and Pricing conditions are not copied.
    How do i rectify this error !!
    Where might be the link for this Price and Pricing conditions to get copied in to this PO ??
    MaruthiRam

    What kind of PR and in the PO same material you enter for new line or new material and do you have any funcitonal authorization assigned o your user id
    please reply

  • Change Pricing Condition for an item with CRM_ORDER_MAINTAIN

    Hi community,
    I try to change an existing condition with the function module crm_order_maintain.
    Everything looks fine, no error no dump, but no success
    The condition stays the same!
    Can anybody find a solution for this?
    Heres my report so far:
    *& Report  ZTEST_PRICING2
    REPORT  ztest_pricing2.
    DATA: lt_guid      TYPE crmt_object_guid_tab,
          lt_item      TYPE crmt_object_guid_tab,
          lt_saved     TYPE crmt_return_objects,
          lt_pridoc    TYPE crmt_pric_cond_t,
          ls_pridoc    TYPE crmt_pric_cond,
          lt_pricom    TYPE crmt_pridoc_comt,
          ls_pricom    TYPE crmt_pridoc_com,
          lt_header    TYPE crmt_orderadm_h_comt,
          lt_input     TYPE crmt_input_field_tab,
          ls_input     TYPE crmt_input_field,
          ls_input_fn  TYPE CRMT_INPUT_FIELD_NAMES,
          ls_cond_chg  TYPE prct_cond_external_change,
          ls_cond      TYPE PRCT_COND_DU,
          lt_pricing_i TYPE CRMT_PRICING_I_WRKT.
    PARAMETERS: lv_head TYPE crmt_object_guid DEFAULT 'C4C61C4E35DDF306E10000000A024089'.
    PARAMETERS: lv_item TYPE crmt_object_guid DEFAULT '09C71C4E35DDF306E10000000A024089'.
    PARAMETERS: lv_kbetr TYPE prct_cond_rate DEFAULT '100'.
    INSERT lv_head INTO TABLE lt_guid.
    INSERT lv_item INTO TABLE lt_item.
    CALL FUNCTION 'CRM_ORDER_READ'
      EXPORTING
        it_header_guid                    = lt_guid
        it_item_guid                      = lt_item
    *   IV_MODE                           =
    *   IV_ONLY_SPEC_ITEMS                =
    *   IT_REQUESTED_OBJECTS              =
    *   IV_NO_AUTH_CHECK                  =
    *   IT_ITEM_USAGE_RANGE               =
    *   IV_SUBITEM_DEPTH                  = -1
    *   IT_OBJECT_FILTER                  =
    *   IV_ONLY_CHANGED_OBJ               = FALSE
    *   IV_STATUS_H_CHECK_RELEVANCE       = FALSE
      IMPORTING
        et_pridoc                         = lt_pridoc
        et_pricing_i                      = lt_pricing_i
    * CHANGING
    *   CV_LOG_HANDLE                     =
    EXCEPTIONS
       document_not_found                = 1
       error_occurred                    = 2
       document_locked                   = 3
       no_change_authority               = 4
       no_display_authority              = 5
       no_change_allowed                 = 6
       OTHERS                            = 7.
    IF sy-subrc <> 0 AND lt_pridoc IS NOT INITIAL.
      WRITE: / 'ERROR'.
      EXIT.
    ENDIF.
    READ TABLE lt_pridoc INDEX 1 INTO ls_pridoc.
    IF sy-subrc <> 0.
      WRITE: / 'ERROR'.
      EXIT.
    ENDIF.
    READ TABLE ls_pridoc-pric_cond INTO ls_cond WITH KEY kschl = 'PB00'.
    IF sy-subrc <> 0.
      WRITE: / 'ERROR'.
      EXIT.
    ENDIF.
    ls_input-ref_guid   = lv_head.
    ls_input-ref_kind   = 'A'.
    ls_input-objectname = 'PRIDOC'.
    ls_input_fn-fieldname = 'WAERS'.
    INSERT ls_input_fn INTO TABLE ls_input-field_names.
    ls_input_fn-fieldname = 'KBETR'.
    INSERT ls_input_fn INTO TABLE ls_input-field_names.
    INSERT ls_input INTO TABLE lt_input.
    ls_pricom-ref_guid   = lv_head.
    ls_pricom-ref_kind   = 'A'.
    *ls_pricom-PRICING_TYPE  = 'B'.
    *ls_pricom-pricing_procedure = 'ZZMTA'.
    ls_pricom-pric_cond[] = ls_pridoc-pric_cond[].
    MOVE-CORRESPONDING ls_cond TO ls_cond_chg.
    ls_cond_chg-waers = 'EUR'.
    ls_cond_chg-kbetr = lv_kbetr.
    INSERT ls_cond_chg INTO TABLE ls_pricom-cond_change.
    APPEND ls_pricom TO lt_pricom.
    CALL FUNCTION 'CRM_ORDER_MAINTAIN'
      EXPORTING
        it_pridoc         = lt_pricom
      CHANGING
    *    ct_orderadm_h     = lt_header
        ct_input_fields   = lt_input
      EXCEPTIONS
        error_occurred    = 1
        document_locked   = 2
        no_change_allowed = 3
        no_authority      = 4
        OTHERS            = 5.
    IF sy-subrc <> 0.
      EXIT.
    ENDIF.
    CALL FUNCTION 'CRM_ORDER_SAVE'
      EXPORTING
        it_objects_to_save         = lt_guid
      IMPORTING
        et_saved_objects           = lt_saved
    *   ET_EXCEPTION               =
    *   ET_OBJECTS_NOT_SAVED       =
    EXCEPTIONS
       document_not_saved         = 1
       OTHERS                     = 2.
    IF sy-subrc EQ 0.
      COMMIT WORK AND WAIT.
    ELSE.
      ROLLBACK WORK.
    ENDIF.
    regards
    Markus

    Hello Jordi,
    The example below is whereby i was trying to copy all the pricing condition on one document to another and deleting what's not present on the source document.
    You can used this piece of code to adapt your requirement.
    CALL FUNCTION 'ZCRC_FM_COPY_PRICE_COND_ALL'
              EXPORTING
    id_object_guid_src    = <fs_el_con_guid>
    id_object_guid_dest = <fs_el_so_guid>
    id_commit                  = abap_false
              EXCEPTIONS
    not_allowed         = 1
    error_occured     = 2
    OTHERS                 = 3.
      PERFORM f_recup_donnees USING     id_object_guid_src
                                                              id_object_guid_dest.
    PERFORM f_modif_condition_prix USING id_object_guid_src
                                                                                      id_object_guid_dest.
    PERFORM f_header_copy_pricing using id_object_guid_src
                                                                            id_object_guid_dest.
    FORM f_recup_donnees   USING      pd_object_guid_src TYPE crmt_object_guid
                                                                           pd_object_guid_dest TYPE crmt_object_guid.
      DATA:
         lt_header_guid        TYPE crmt_object_guid_tab.
      INSERT pd_object_guid_src  INTO TABLE lt_header_guid.
      INSERT pd_object_guid_dest INTO TABLE  lt_header_guid.
      CLEAR: gt_orderadm_i, gt_doc_flow.
      CALL FUNCTION 'CRM_ORDER_READ'
        EXPORTING
          it_header_guid       = lt_header_guid
        IMPORTING
          et_doc_flow          = gt_doc_flow            
          et_orderadm_i        = gt_orderadm_i
        EXCEPTIONS
          document_not_found   = 1
          error_occurred       = 2
          document_locked      = 3
          no_change_authority  = 4
          no_display_authority = 5
          no_change_allowed    = 6
          OTHERS               = 7.
      IF sy-subrc NE 0.
        RAISE error_occured.
      ENDIF.
    " F_RECUP_DONNEES
    FORM f_modif_condition_prix USING pd_guid_src TYPE crmt_object_guid
                                      pd_guid_dest TYPE crmt_object_guid.
      DATA : ld_pd_handle_src     TYPE prct_handle,
              ld_pd_handle_dest    TYPE prct_handle,
              lt_komv_print_src    TYPE prct_cond_print_t,
    lt_komv_print_dest   TYPE prct_cond_print_t,
              ls_komv_print_dest   LIKE LINE OF lt_komv_print_dest,
              ls_komv_print_src    LIKE LINE OF lt_komv_print_src,
              lt_cond_chg          TYPE prct_cond_print_t,
              lt_cond_chg_insert   TYPE prct_cond_print_t,
              ls_cond_chg          TYPE prct_cond_print,
              ls_cond_chg_tmp      TYPE prct_cond_print,
              ls_input_fields      TYPE crmt_input_field,
              lt_input_fields      TYPE crmt_input_field_tab.
      DATA : bal_log         TYPE balloghndl,
             lt_item_ret     TYPE prct_item_ret_t,
             lt_cond_ret     TYPE prct_cond_print_t,
             ld_data_changed TYPE xfeld,
             gv_decimal      TYPE usdefaults-dcpfm,
             ld_lines        TYPE i,
             ld_ajout_cond   TYPE abap_bool.
      FIELD-SYMBOLS : <fs_orderadm_i_dest>  TYPE crmt_orderadm_i_wrk,
    <fs_orderadm_i_src>   TYPE crmt_orderadm_i_wrk,
                      <fs_cond_chg>         TYPE prct_cond_print,
    <fs_cond_chg_insert>  TYPE prct_cond_print.
    * Début Ajout CD1K904313-001.
      DATA: ld_guid_src  TYPE crmt_object_guid.
      FIELD-SYMBOLS: <fs_doc_flow>  TYPE crmt_doc_flow_wrk.
    * Début Ajout CD1K904313-001.
    * Verrouillage des documents source et destinataire
      PERFORM f_lock_document USING pd_guid_src.
      PERFORM f_lock_document USING pd_guid_dest.
    *Récupérer le pricing handle des documents
    * Document source
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
    iv_header_guid             = pd_guid_src
        IMPORTING
    ev_pd_handle               = ld_pd_handle_src
        EXCEPTIONS
    error_occurred             = 1
    handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    * Document destinataire
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
          iv_header_guid             = pd_guid_dest
        IMPORTING
          ev_pd_handle               = ld_pd_handle_dest
        EXCEPTIONS
          error_occurred             = 1
          handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    * A ne pas traiter les postes de type ZPDF
      DELETE  gt_orderadm_i WHERE itm_type = 'ZPDF'.
      LOOP AT gt_orderadm_i ASSIGNING <fs_orderadm_i_dest> WHERE header = pd_guid_dest.
        REFRESH : lt_komv_print_src,
                  lt_komv_print_dest,
    lt_cond_chg,
    lt_cond_chg_insert.
    * Début Modif CD1K904313-001.
    * Récupérer le guid de l'item liée au item destinataire.
        READ TABLE gt_doc_flow ASSIGNING <fs_doc_flow> WITH KEY objkey_b = <fs_orderadm_i_dest>-guid.
        CHECK sy-subrc EQ 0.
        ld_guid_src = <fs_doc_flow>-objkey_a.
    *    READ TABLE gt_orderadm_i ASSIGNING <fs_orderadm_i_src> WITH KEY header = pd_guid_src
    * number_int = <fs_orderadm_i_dest>-number_int.
    * Fin Modif CD1K904313-001.
    * Récupérer les pricing document
        IF sy-subrc EQ 0.
    *     Document source
          CALL FUNCTION 'PRC_PD_ITEM_SHOW'
            EXPORTING
              iv_pd_handle        = ld_pd_handle_src
    *         iv_item_no          = <fs_orderadm_i_src>-guid    "Supression CD1K904313-001
              iv_item_no          = ld_guid_src                 "Addition CD1K904313-001
            IMPORTING
              et_komv_print       = lt_komv_print_src
            EXCEPTIONS
              non_existing_handle = 1
              non_existing_item   = 2
              ipc_error           = 3
              OTHERS              = 4.
        ENDIF.
    *   Document destinataire
        CALL FUNCTION 'PRC_PD_ITEM_SHOW'
          EXPORTING
            iv_pd_handle        = ld_pd_handle_dest
            iv_item_no          = <fs_orderadm_i_dest>-guid
          IMPORTING
    et_komv_print       = lt_komv_print_dest
          EXCEPTIONS
            non_existing_handle = 1
            non_existing_item   = 2
            ipc_error           = 3
            OTHERS              = 4.
    * Modification et Suppression des conditions de prix
        LOOP AT lt_komv_print_dest INTO ls_komv_print_dest .
          CLEAR: ls_cond_chg,
                 ls_komv_print_src.
          MOVE-CORRESPONDING ls_komv_print_dest TO ls_cond_chg.
    * Rechercher la condition sur le document source
          READ TABLE lt_komv_print_src INTO ls_komv_print_src WITH KEY kschl = ls_komv_print_dest-kschl
    zaehk = ls_komv_print_dest-zaehk. "CD1K904313
          IF sy-subrc EQ 0.
            ls_cond_chg-kbetr_prt = ls_komv_print_src-kbetr_prt.
            ls_cond_chg-kwert     = ls_komv_print_src-kwert.
            ls_cond_chg-kinak     = ls_komv_print_src-kinak.
          ELSEIF ls_cond_chg-kschl IS NOT INITIAL.
            CLEAR ls_cond_chg.
            CONTINUE.
          ENDIF.
    *     Format décimal
          CASE gv_decimal.
            WHEN space.       "format N.NNN,NN
              REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
            WHEN 'Y'.         "format N NNN NNN,NN
              REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
          ENDCASE.
          INSERT ls_cond_chg INTO TABLE lt_cond_chg.
          CLEAR ls_cond_chg.
        ENDLOOP.
    * Ajout des conditions de prix
        LOOP AT lt_komv_print_src INTO ls_komv_print_src WHERE kschl IS NOT INITIAL.
          CLEAR: ls_cond_chg, ld_lines, ls_komv_print_dest, ls_cond_chg_tmp, ld_ajout_cond.
    * Vérifier la présence de la condition sur le document destinataire
          READ TABLE lt_komv_print_dest INTO ls_komv_print_dest WITH KEY kschl = ls_komv_print_src-kschl
    zaehk = ls_komv_print_src-zaehk. "CD1K904313.
          IF sy-subrc EQ 0.
            CLEAR: ls_cond_chg, ls_komv_print_dest.
            CONTINUE.
          ELSE.
            DESCRIBE TABLE lt_cond_chg LINES ld_lines.
            READ TABLE lt_cond_chg INTO ls_cond_chg_tmp INDEX ld_lines.
            IF sy-subrc EQ 0.
              ld_ajout_cond = abap_true.
              MOVE-CORRESPONDING ls_komv_print_src TO ls_cond_chg.
              ls_cond_chg-knumv     = ls_cond_chg_tmp-knumv.
              ls_cond_chg-kposn     = ls_cond_chg_tmp-kposn.
              ls_cond_chg-stunr     = ls_cond_chg_tmp-stunr + 10.
            ELSE.
              CLEAR: ls_cond_chg, ld_lines, ls_komv_print_dest, ls_cond_chg_tmp.
              CONTINUE.
            ENDIF.
          ENDIF.
    *     Format décimal
          CASE gv_decimal.
            WHEN space.             "format N.NNN,NN
              REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
            WHEN 'Y'.               "format N NNN NNN,NN
              REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
          ENDCASE.
    * Récupérer les nouvelles conditions qui seront ajouté au document destinataire
          IF ld_ajout_cond EQ abap_true.
            INSERT ls_cond_chg INTO TABLE lt_cond_chg_insert.
          ENDIF.
          INSERT ls_cond_chg INTO TABLE lt_cond_chg.
          CLEAR ls_cond_chg.
        ENDLOOP.
        CALL FUNCTION 'PRC_INT_ITEM_INPUT'
          EXPORTING
            iv_pd_handle        = ld_pd_handle_dest
            iv_item_no          = <fs_orderadm_i_dest>-guid
            it_cond_prt         = lt_cond_chg
            iv_bal_log          = bal_log
            iv_req_ret          = abap_true
            iv_req_cond_prt     = abap_true
          IMPORTING
            et_item_ret         = lt_item_ret
            et_cond_prt         = lt_cond_ret
            ev_data_changed     = ld_data_changed
          EXCEPTIONS
            non_existing_handle = 1
            non_existing_item   = 2
            ipc_error           = 3.
        IF sy-subrc = 0.
    *     En cas d'ajout de nouvelles conditions de prix, appeler le MF PRC_INT_ITEM_INPUT
    *     avec les montants
          IF lt_cond_chg_insert IS NOT INITIAL.
            REFRESH lt_cond_chg[].
            lt_cond_chg[] = lt_cond_ret[].
            LOOP AT lt_cond_chg_insert ASSIGNING <fs_cond_chg_insert>.
              READ TABLE lt_cond_chg ASSIGNING <fs_cond_chg> WITH KEY kschl = <fs_cond_chg_insert>-kschl.
              IF sy-subrc EQ 0.
                <fs_cond_chg>-kwert     = <fs_cond_chg_insert>-kwert.
                <fs_cond_chg>-kbetr_prt = <fs_cond_chg_insert>-kbetr_prt.
              ENDIF.
            ENDLOOP.
            REFRESH lt_cond_ret[].
            CALL FUNCTION 'PRC_INT_ITEM_INPUT'
              EXPORTING
                iv_pd_handle        = ld_pd_handle_dest
                iv_item_no          = <fs_orderadm_i_dest>-guid
                it_cond_prt         = lt_cond_chg
                iv_bal_log          = bal_log
                iv_req_ret          = abap_true
                iv_req_cond_prt     = abap_true
              IMPORTING
                et_item_ret         = lt_item_ret
                et_cond_prt         = lt_cond_ret
                ev_data_changed     = ld_data_changed
              EXCEPTIONS
                non_existing_handle = 1
                non_existing_item   = 2
                ipc_error           = 3.
          ENDIF.
    *   Publish event afin de sauvegarder les conditions de prix
          CALL FUNCTION 'CRM_EVENT_PUBLISH_OW'
            EXPORTING
              iv_obj_name = 'PRIDOC'
              iv_guid_hi  = pd_guid_dest
              iv_kind_hi  = 'A'
              iv_event    = 'SAVE'
            EXCEPTIONS
              OTHERS      = 1.
    *   As no order_maintain will follow implicitly and therefore no
    *   exec times for the events will be set, call CRM_ORDER_MAINTAIN
    *   without any parameters
    *   Then the exec time 'end of document' will be set and with the
    *   group logic also all exec times before
    *   But at least one object is needed in input_fields
    *   --> use PRIDOC
          ls_input_fields-ref_guid   = <fs_orderadm_i_dest>-guid.
          ls_input_fields-ref_kind   = 'B'.
          ls_input_fields-objectname = 'PRIDOC'.
          INSERT ls_input_fields INTO TABLE lt_input_fields.
          CLEAR ls_input_fields.
          CALL FUNCTION 'CRM_ORDER_MAINTAIN'
            CHANGING
              ct_input_fields   = lt_input_fields
            EXCEPTIONS
              error_occurred    = 1
              document_locked   = 2
              no_change_allowed = 3
              no_authority      = 4
              OTHERS            = 5.
        ENDIF.
      ENDLOOP.
    " F_MODIF_CONDITION_PRIX
    *& Form  F_LOCK_DOCUMENT
    * Verrouillage d'un document
    FORM f_lock_document  USING pd_guid TYPE crmt_object_guid.
      CONSTANTS : lc_orderadm_h TYPE  crmt_object_name  VALUE 'ORDERADM_H',
                  lc_orderadm_i TYPE  crmt_object_name  VALUE 'ORDERADM_I'.
      DATA: lv_process_mode      TYPE crmt_mode,
            lv_order_initialized TYPE crmt_boolean,
            lv_process_type      TYPE crmt_process_type,
            lv_already_locked    TYPE abap_bool.
      DATA: ls_admin_ui_status  TYPE crmt_admin_ui_status,
            ls_item_usage_range TYPE crmt_item_usage_range.
      DATA: lt_objects_to_read   TYPE crmt_object_guid_tab,
            lt_requested_objects TYPE crmt_object_name_tab,
            lt_item_usage_range  TYPE crmt_item_usage_range_tab,
            lt_locked_contract   TYPE crmt_object_guid_tab.
      INSERT pd_guid INTO TABLE lt_objects_to_read.
      INSERT lc_orderadm_h INTO TABLE lt_requested_objects.
      INSERT lc_orderadm_i INTO TABLE lt_requested_objects.
      ls_item_usage_range-sign  = 'E'.
      ls_item_usage_range-value = '02'.
      INSERT ls_item_usage_range INTO TABLE lt_item_usage_range.
    * LAM: Financing Options should be viewed in a separate screen:
      ls_item_usage_range-sign  = 'E'.
      ls_item_usage_range-value = '05'.   "Financing options
      INSERT ls_item_usage_range INTO TABLE lt_item_usage_range.
    *-> read document in change mode
      CALL FUNCTION 'CRM_ORDER_READ'
        EXPORTING
          it_header_guid       = lt_objects_to_read
          iv_mode              = 'B'
          it_requested_objects = lt_requested_objects
          it_item_usage_range  = lt_item_usage_range
        EXCEPTIONS
          document_not_found   = 1
          error_occurred       = 2
          document_locked      = 3
          no_change_authority  = 4
          no_display_authority = 5
          OTHERS               = 6.
      PERFORM enqueue_order IN PROGRAM saplcrm_order_ow IF FOUND
        USING pd_guid
              abap_false
              abap_false
              abap_false
    CHANGING sy-subrc
              lv_already_locked
              lt_locked_contract.
    " F_LOCK_DOCUMENT
    * Fin Ajout CD1K904074-001
    FORM f_header_copy_pricing  USING   pd_guid_src
    pd_guid_dest.
      DATA : ld_pd_handle_src     TYPE prct_handle,
              ld_pd_handle_dest    TYPE prct_handle,
              lt_komv_print_src    TYPE prct_cond_print_t,
    lt_komv_print_dest   TYPE prct_cond_print_t,
              ls_komv_print_dest   LIKE LINE OF lt_komv_print_dest,
              ls_komv_print_src    LIKE LINE OF lt_komv_print_src,
              lt_cond_chg          TYPE prct_cond_print_t,
              ls_cond_chg          TYPE prct_cond_print,
              ls_input_fields      TYPE crmt_input_field,
              lt_input_fields      TYPE crmt_input_field_tab.
      DATA : bal_log         TYPE balloghndl,
             lt_cond_ret     TYPE prct_cond_print_t,
             ld_data_changed TYPE xfeld,
             gv_decimal      TYPE usdefaults-dcpfm.
    * Verrouillage des documents source et destinataire
      PERFORM f_lock_document USING pd_guid_src.
      PERFORM f_lock_document USING pd_guid_dest.
    *  Récupérer le pricing handle des documents
    * Document source
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
          iv_header_guid             = pd_guid_src
        IMPORTING
          ev_pd_handle               = ld_pd_handle_src
        EXCEPTIONS
          error_occurred             = 1
          handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    * Document destinataire
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
          iv_header_guid             = pd_guid_dest
        IMPORTING
          ev_pd_handle               = ld_pd_handle_dest
        EXCEPTIONS
          error_occurred             = 1
          handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    *  * Récupérer les pricing document
    *  Document Source
      CALL FUNCTION 'PRC_PD_HEAD_SHOW'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_src
        IMPORTING
          et_komv_print       = lt_komv_print_src
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          OTHERS              = 3.
      CHECK sy-subrc EQ 0.
    *  Document Destinataire
      CALL FUNCTION 'PRC_PD_HEAD_SHOW'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_dest
        IMPORTING
    et_komv_print       = lt_komv_print_dest
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          OTHERS              = 3.
      CHECK sy-subrc EQ 0.
    *  * Modification et Suppression des conditions de prix
      LOOP AT lt_komv_print_src INTO ls_komv_print_src .
        CLEAR: ls_cond_chg,
               ls_komv_print_dest.
        MOVE-CORRESPONDING ls_komv_print_src TO ls_cond_chg.
    * Rechercher la condition sur le document source
        READ TABLE lt_komv_print_dest INTO ls_komv_print_dest WITH KEY kschl = ls_komv_print_src-kschl
    zaehk = ls_komv_print_src-zaehk.
        IF sy-subrc EQ 0.
          IF ls_komv_print_src-kbetr NE ls_komv_print_dest-kbetr.
            ls_cond_chg-kbetr_prt = ls_komv_print_src-kbetr_prt.
            ls_cond_chg-kwert     = ls_komv_print_src-kwert.
            ls_cond_chg-kinak     = ls_komv_print_src-kinak.
            CASE gv_decimal.
              WHEN space.       "format N.NNN,NN
                REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
              WHEN 'Y'.         "format N NNN NNN,NN
                REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
            ENDCASE.
          ENDIF.
        ENDIF.
        CLEAR ls_cond_chg-krech.
        INSERT ls_cond_chg INTO TABLE lt_cond_chg.
        CLEAR ls_cond_chg.
      ENDLOOP.
      CALL FUNCTION 'PRC_INT_HEAD_INPUT'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_dest
          iv_bal_log          = bal_log
          it_cond_prt         = lt_cond_chg
          iv_req_ret          = abap_true
          iv_req_cond_prt     = abap_true
        IMPORTING
          et_cond_prt         = lt_cond_ret
          ev_data_changed     = ld_data_changed
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          not_allowed         = 3
          OTHERS              = 4.
      CHECK sy-subrc EQ 0.
    *    *   Publish event afin de sauvegarder les conditions de prix
      CALL FUNCTION 'CRM_EVENT_PUBLISH_OW'
        EXPORTING
          iv_obj_name = 'PRIDOC'
          iv_guid_hi  = pd_guid_dest
          iv_kind_hi  = 'A'
          iv_event    = 'SAVE'
        EXCEPTIONS
          OTHERS      = 1.
    *   As no order_maintain will follow implicitly and therefore no
    *   exec times for the events will be set, call CRM_ORDER_MAINTAIN
    *   without any parameters
    *   Then the exec time 'end of document' will be set and with the
    *   group logic also all exec times before
    *   But at least one object is needed in input_fields
    *   --> use PRIDOC
      ls_input_fields-ref_guid   = pd_guid_dest.
      ls_input_fields-ref_kind   = 'A'.
      ls_input_fields-objectname = 'PRIDOC'.
      INSERT ls_input_fields INTO TABLE lt_input_fields.
      CLEAR ls_input_fields.
      CALL FUNCTION 'CRM_ORDER_MAINTAIN'
        CHANGING
          ct_input_fields   = lt_input_fields
        EXCEPTIONS
          error_occurred    = 1
          document_locked   = 2
          no_change_allowed = 3
          no_authority      = 4
          OTHERS            = 5.
    ENDFORM.
    FORM f_header_copy_pricing  USING   pd_guid_src
    pd_guid_dest.
      DATA : ld_pd_handle_src     TYPE prct_handle,
              ld_pd_handle_dest    TYPE prct_handle,
              lt_komv_print_src    TYPE prct_cond_print_t,
    lt_komv_print_dest   TYPE prct_cond_print_t,
              ls_komv_print_dest   LIKE LINE OF lt_komv_print_dest,
              ls_komv_print_src    LIKE LINE OF lt_komv_print_src,
              lt_cond_chg          TYPE prct_cond_print_t,
              ls_cond_chg          TYPE prct_cond_print,
              ls_input_fields      TYPE crmt_input_field,
              lt_input_fields      TYPE crmt_input_field_tab.
      DATA : bal_log         TYPE balloghndl,
             lt_cond_ret     TYPE prct_cond_print_t,
             ld_data_changed TYPE xfeld,
             gv_decimal      TYPE usdefaults-dcpfm.
      PERFORM f_lock_document USING pd_guid_src.
      PERFORM f_lock_document USING pd_guid_dest.
    *  Récupérer le pricing handle des documents
    * Document source
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
          iv_header_guid             = pd_guid_src
        IMPORTING
          ev_pd_handle               = ld_pd_handle_src
        EXCEPTIONS
          error_occurred             = 1
          handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    * Document destinataire
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
          iv_header_guid             = pd_guid_dest
        IMPORTING
          ev_pd_handle               = ld_pd_handle_dest
        EXCEPTIONS
          error_occurred             = 1
          handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    *  * Récupérer les pricing document
    *  Document Source
      CALL FUNCTION 'PRC_PD_HEAD_SHOW'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_src
        IMPORTING
          et_komv_print       = lt_komv_print_src
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          OTHERS              = 3.
      CHECK sy-subrc EQ 0.
    *  Document Destinataire
      CALL FUNCTION 'PRC_PD_HEAD_SHOW'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_dest
        IMPORTING
    et_komv_print       = lt_komv_print_dest
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          OTHERS              = 3.
      CHECK sy-subrc EQ 0.
    *  * Modification et Suppression des conditions de prix
      LOOP AT lt_komv_print_src INTO ls_komv_print_src .
        CLEAR: ls_cond_chg,
               ls_komv_print_dest.
        MOVE-CORRESPONDING ls_komv_print_src TO ls_cond_chg.
    * Rechercher la condition sur le document source
        READ TABLE lt_komv_print_dest INTO ls_komv_print_dest WITH KEY kschl = ls_komv_print_src-kschl
    zaehk = ls_komv_print_src-zaehk.
        IF sy-subrc EQ 0.
          IF ls_komv_print_src-kbetr NE ls_komv_print_dest-kbetr.
            ls_cond_chg-kbetr_prt = ls_komv_print_src-kbetr_prt.
            ls_cond_chg-kwert     = ls_komv_print_src-kwert.
            ls_cond_chg-kinak     = ls_komv_print_src-kinak.
            CASE gv_decimal.
              WHEN space.       "format N.NNN,NN
                REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
              WHEN 'Y'.         "format N NNN NNN,NN
                REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
            ENDCASE.
          ENDIF.
        ENDIF.
        CLEAR ls_cond_chg-krech.
        INSERT ls_cond_chg INTO TABLE lt_cond_chg.
        CLEAR ls_cond_chg.
      ENDLOOP.
      CALL FUNCTION 'PRC_INT_HEAD_INPUT'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_dest
          iv_bal_log          = bal_log
          it_cond_prt         = lt_cond_chg
          iv_req_ret          = abap_true
          iv_req_cond_prt     = abap_true
        IMPORTING
          et_cond_prt         = lt_cond_ret
          ev_data_changed     = ld_data_changed
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          not_allowed         = 3
          OTHERS              = 4.
      CHECK sy-subrc EQ 0.
      CALL FUNCTION 'CRM_EVENT_PUBLISH_OW'
        EXPORTING
          iv_obj_name = 'PRIDOC'
          iv_guid_hi  = pd_guid_dest
          iv_kind_hi  = 'A'
          iv_event    = 'SAVE'
        EXCEPTIONS
          OTHERS      = 1.
      ls_input_fields-ref_guid   = pd_guid_dest.
      ls_input_fields-ref_kind   = 'A'.
      ls_input_fields-objectname = 'PRIDOC'.
      INSERT ls_input_fields INTO TABLE lt_input_fields.
      CLEAR ls_input_fields.
      CALL FUNCTION 'CRM_ORDER_MAINTAIN'
        CHANGING
          ct_input_fields   = lt_input_fields
        EXCEPTIONS
          error_occurred    = 1
          document_locked   = 2
          no_change_allowed = 3
          no_authority      = 4
          OTHERS            = 5.

  • Sales order: How to add pricing conditions at item level in BDC of VA01

    Hello Experts,
    Am writing BDC for sales order, in this process I need to add ITEM PRICING CONDITIONS, so, am selecting item and pressing the DOLLAR symbol button and am adding the conditions by pressing PLUS button in loop!! but am getting this erorr- Field KOMV-KMEIN (2) is not an input field!! when I execute it in we19-BACK GROUND only!! if I execute the same CODE IN we19-Fore ground, I dont have any issue!!  I checked this SDN (field status in config), Google, but did not helped me!
    Pls. let  me know is there any other way to add conditions at item level in VA01 in BDC code?
    THank you

    Hi,
    It is happening because the second row of the item level data screen is becoming display only. Please check whether In foreground mode you are pressing an extra enter to give data in the second row of the item level data after giving data in the first row and in BDC recording you have not recorded that 'Enter'.
    Regards,
    Gargi

Maybe you are looking for

  • Can I update an email address on my icloud account

    My current Icloud (apple ID) is being used by my child for their ipod touch with my email address.  I now have a new Iphone for both her and for my wife.  I think they each need their own icloud (apple id)!?!  So, can I change the existing icloud (ap

  • How to match invoice with credit together

    I am new to this forum. In EnterpriseOne Accounts Payable function, is it possible to bring up both invoice and credit memo, to match the net quantity in the receipt? For example, invoice charges 5 pcs, then credits back -2 pcs, the receipt has the n

  • Set up the output GR slip for RE (customer return) Order Type

    Dear Experts, I need to set up the output GR slip for RE (customer return) Order Type Kindly let me know how can I do this in SAP Regards Shetty

  • Anyone using a signed certificate?

    We purchased a signed certificate from Verisign for use with our Java Studio Creator based application, and we imported the cert OK, but when we access the https port, it displays an old, auto-generated and un-signed, certificate instead of the one w

  • Imac shuts down while trying to boot up

    My imac was running pretty bad on and of for most of the day. I decided to shut down and start up in safe mode. It got as far as white screen with apple logo and dial spinning. I left it for about 20 mins and nothing was happening. I shut down tried