Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 10449

Re: Errors while transferring conditions: duplicates found

$
0
0

The blow code may be reason behind this wired error but the same was working fine in old system (4.6)

 

any comment on the code as per ECC 6

 

 

FORM FRM_KONDI_WERT_901.

*{   INSERT         TB2K921640                                        1

*

DATA:

     found      TYPE          xfeld,

     perc       TYPE          int1,

     d          TYPE          i,

     wa_xkomv   LIKE          xkomv,

     it_xkomv   TYPE TABLE OF komv_index,

     wa_xkomv2  LIKE          xkomv.

 

DATA: lt_item    TYPE wty_pvwty_dia_tab,

       ls_item    TYPE wty_pvwty_dia,

       lt_version TYPE wty_pnwtyv_dia_tab,

       ls_version TYPE wty_pnwtyv_dia,

       lt_header  TYPE wty_pnwtyh_dia_tab,

       ls_header  TYPE wty_pnwtyh_dia.

 

DATA: wa_pnwtyh  TYPE pnwtyh.

 

DATA:

     date(10)       TYPE c,

     datum          TYPE pnwtyh-refdt,

     wa_premium     TYPE zpr_premium.

 

DATA:

       wa_premium_def TYPE zpr_premium_def,

       acttype        TYPE zpr_premium_def-type_of_act,

       SALESACT       TYPE zpr_premium_def-sales_act"CR31030

 

DATA: cs_pnwtyv_dia  TYPE wty_pnwtyv_dia,

       ls_items       TYPE wty_pvwty_dia,

       pname          TYPE wty_pvwty_dia-pname,

       versn          TYPE wty_versn,

       lines          TYPE i.

 

DATA:

     knumv   TYPE          vbrk-knumv,

     sum1    TYPE          konv-kbetr,

     it_konv TYPE TABLE OF konv,

     wa_konv TYPE          konv,

     posnr   TYPE          vbrp-posnr.

 

DATA:

     wert         TYPE komv_index-kwert,

     bonus_pct    TYPE zpr_premium-bonus_pct,

     bonus_amt    TYPE zpr_premium-bonus_amt,

     handling_pct TYPE zpr_premium-handling_pct,

     handling_amt TYPE zpr_premium-handling_amt.

 

SELECT SINGLE *

   FROM pnwtyh

   INTO wa_pnwtyh

   WHERE clmno EQ komk-wty_clmno.

 

IF sy-subrc EQ 0.

 

   REFRESH: lt_header, lt_version, lt_item.

 

   CALL METHOD cl_ppeliwty_cntl=>claim_read_db

     EXPORTING

       iv_clmno  = wa_pnwtyh-clmno

     IMPORTING

       et_pnwtyh = lt_header

       et_pnwtyv = lt_version

       et_pvwty  = lt_item.

 

***** get last version

   DESCRIBE TABLE lt_version LINES lines.

   SORT lt_version BY versn.

   READ TABLE lt_version INTO ls_version INDEX lines.

*    describe table lt_item lines lines.

   READ TABLE lt_header INTO ls_header INDEX 1.

   READ TABLE lt_item INTO ls_item

     WITH KEY pname(4) = ls_version-versn .

*komp

*komk

*xkwert

*xkomv

 

   CLEAR: sum1.

 

   SELECT SINGLE posnr FROM vbrp

   INTO posnr

   WHERE vbeln EQ wa_pnwtyh-refno

     AND pstyv EQ 'ZT00'.

 

   IF sy-subrc NE 0.

* GET PESSENGER CARS DATA

     SELECT SINGLE knumv

     FROM vbrk

     INTO knumv

     WHERE vbeln EQ wa_pnwtyh-refno.

 

     SELECT * FROM konv

     INTO wa_konv

     WHERE knumv EQ knumv

       AND ( kschl EQ 'ZN00' OR kschl EQ 'ZN01'

          OR kschl EQ 'ZN02' OR kschl EQ 'ZN50'

          OR kschl EQ 'ZN60' OR kschl EQ 'ZN80' )

       AND kawrt NE 0.

 

             sum1 = sum1 + wa_konv-kbetr.

     ENDSELECT.

 

   ELSE.

* GET TRUCKS DATA

     SELECT SINGLE knumv

     FROM vbrk

     INTO knumv

     WHERE vbeln EQ wa_pnwtyh-refno.

 

     SELECT * FROM konv

     INTO CORRESPONDING FIELDS OF wa_konv

     WHERE knumv EQ knumv

       AND kposn EQ posnr

       AND ( kschl EQ 'ZT01' OR kschl EQ 'ZT02'

        OR kschl EQ 'ZT04' OR kschl EQ 'ZT05'  OR kschl EQ 'ZT06' )

       AND kawrt NE 0.

 

       sum1 = sum1 + wa_konv-kbetr.

 

     ENDSELECT.

   ENDIF.

 

   IF sy-sysid EQ 'TB2' AND sum1 IS INITIAL.

     sum1 = 10000.

   ENDIF.

 

* Get the type of advertising for the sales activity

   SELECT SINGLE SALES_ACT type_of_act

   FROM zpr_premium_def

   INTO (SALESACT, acttype)

   WHERE matnr EQ ls_item-matnr.

 

* Begin of change IM59239 PIPA 14.01.2009

* following code was commented and new one created with

* all registration type present in the system

 

*  IF acttype EQ 'D'.

** Get the demo vehicle registration date

*    CALL FUNCTION 'Z_W_F_PR_GET_CHARACTERISTICS'

*      EXPORTING

*        vin                      = wa_pnwtyh-relob_ext

*        atnam                    = 'RD0005'  "Zulass.dat. VFW

*      IMPORTING

*        date                     = date

*      EXCEPTIONS

*        characteristic_not_found = 1

*        vin_not_found            = 2

*        no_value                 = 3

*        dump                     = 4

*        OTHERS                   = 5.

*  ELSE.

** Get the registration dealer date

*    CALL FUNCTION 'Z_W_F_PR_GET_CHARACTERISTICS'

*      EXPORTING

*        vin                      = wa_pnwtyh-relob_ext

*        atnam                    = 'RD0002'   " Zul.dat. Endkunde

*      IMPORTING

*        date                     = date

*      EXCEPTIONS

*        characteristic_not_found = 1

*        vin_not_found            = 2

*        no_value                 = 3

*        dump                     = 4

*        OTHERS                   = 5.

*  ENDIF.

*

*  UNPACK date TO datum.

 

DATA: date1(10) TYPE c,

       date2(10) TYPE c,

       datum1    TYPE pnwtyh-refdt,

       datum2    TYPE pnwtyh-refdt.

 

*-----------------------------------------------------------------------------

                     DATA:   gv_frame_contract TYPE zpr_premium-frame_contr,

                       gv_body  TYPE zpr_premium-body_type_code,

                       gv_modelcode  TYPE zpr_premium-model_code,

                       gv_opt  TYPE zpr_premium-opt,

                       gv_model_year TYPE zpr_premium-model_year,

                       gv_sam TYPE zpr_premium-sam,

                       gv_ddate  TYPE c,

                       gv_edate  TYPE c,

                       lv_demdate(10),

                       lv_enddate(10),

                       enddate TYPE d,

                       demdate TYPE d,

                       gv_dproc   TYPE zpr_premium_def-cl_proc,

                       gv_eproc   TYPE zpr_premium_def-cl_proc..

 

   DATA: t_l_class      LIKe sclass    OCCURS 0 WITH HEADER LINE.

   DATA: t_l_objectdata LIKE clobjdat  OCCURS 0 WITH HEADER LINE.

   DATA: t_l_object     LIKE clobjekte OCCURS 0 WITH HEADER LINE.

   DATA: t_l_sel_char   LIKE sel_char  OCCURS 0 WITH HEADER LINE.

 

   DATA: lv_atwrt LIKE ausp-atwrt.

   DATA: lv_atinn LIKE cabn-atnam.

   DATA: lv_class TYPE klasse_d.

   DATA: lv_klart TYPE klah-klart.

   DATA: lv_object_low TYPE kssk-objek,

         lv_atflv  TYPE ausp-atflv.

 

* Begin of insert by Santosh for CR31855

   CONSTANTS: c_a type char1 value 'A',

              c_u type char1 value 'U'.

* End of insert by Santosh for CR31855

*-----------------------------------------------------------------------------

     IF acttype EQ 'D'.

* Get the demo vehicle registration date

       CALL FUNCTION 'Z_W_F_PR_GET_CHARACTERISTICS'

       EXPORTING

         vin                      = wa_pnwtyh-relob_ext

         atnam                    = 'RD0005'  "Zulass.dat. VFW

       IMPORTING

         DATE                     = DATE

       EXCEPTIONS

         characteristic_not_found = 1

         vin_not_found            = 2

         no_value                 = 3

         dump                     = 4

         OTHERS                   = 5.

 

       UNPACK date TO datum.

 

     ELSEIF acttype EQ 'E'.

* Get the registration dealer date

       CALL FUNCTION 'Z_W_F_PR_GET_CHARACTERISTICS'

       EXPORTING

         vin                      = wa_pnwtyh-relob_ext

         atnam                    = 'RD0002'   " Zul.dat. Endkunde

       IMPORTING

         DATE                     = DATE

       EXCEPTIONS

         characteristic_not_found = 1

         vin_not_found            = 2

         no_value                 = 3

         dump                     = 4

         OTHERS                   = 5.

 

       UNPACK date TO datum.

 

       ELSEIF acttype EQ 'F'.

* retrieve first registration

* Get the demo vehicle registration date

       CALL FUNCTION 'Z_W_F_PR_GET_CHARACTERISTICS'

       EXPORTING

         vin                      = wa_pnwtyh-relob_ext

         atnam                    = 'RD0005'  "Zulass.dat. VFW

       IMPORTING

         DATE                     = DATE1

       EXCEPTIONS

         characteristic_not_found = 1

         vin_not_found            = 2

         no_value                 = 3

         dump                     = 4

         OTHERS                   = 5.

 

   UNPACK date1 TO datum1.

 

* Get the registration dealer date

       CALL FUNCTION 'Z_W_F_PR_GET_CHARACTERISTICS'

       EXPORTING

         vin                      = wa_pnwtyh-relob_ext

         atnam                    = 'RD0002'   " Zul.dat. Endkunde

       IMPORTING

         DATE                     = DATE2

       EXCEPTIONS

         characteristic_not_found = 1

         vin_not_found            = 2

         no_value                 = 3

         dump                     = 4

         OTHERS                   = 5.

 

     UNPACK date2 TO datum2.

 

       IF date1 IS NOT INITIAL AND date2 IS NOT INITIAL.

        IF datum1 < datum2.

          datum = datum1.

        ELSE.

          datum = datum2.

        ENDIF.

       ELSEIF date1 IS NOT INITIAL AND date2 IS INITIAL.

          datum = datum1.

       ELSEIF date1 IS INITIAL AND date2 IS NOT INITIAL.

          datum = datum2.

       ENDIF.

 

       ELSEIF acttype EQ 'C'.

* retrieve end customer registration date, demo reg date must be empty

* Get the demo vehicle registration date

       CALL FUNCTION 'Z_W_F_PR_GET_CHARACTERISTICS'

       EXPORTING

         vin                      = wa_pnwtyh-relob_ext

         atnam                    = 'RD0005'  "Zulass.dat. VFW

       IMPORTING

         DATE                     = DATE1

       EXCEPTIONS

         characteristic_not_found = 1

         vin_not_found            = 2

         no_value                 = 3

         dump                     = 4

         OTHERS                   = 5.

 

* Get the registration dealer date

       CALL FUNCTION 'Z_W_F_PR_GET_CHARACTERISTICS'

       EXPORTING

         vin                      = wa_pnwtyh-relob_ext

         atnam                    = 'RD0002'   " Zul.dat. Endkunde

       IMPORTING

         DATE                     = DATE2

       EXCEPTIONS

         characteristic_not_found = 1

         vin_not_found            = 2

         no_value                 = 3

         dump                     = 4

         OTHERS                   = 5.

 

       UNPACK date2 TO datum2.

 

       IF date1 IS INITIAL.

         datum = datum2.

       ENDIF.

* Begin of change by Santosh for CR31855

*   ELSEIF   acttype EQ 'A'.

     ELSEIF   acttype EQ c_a or acttype EQ c_u.

* END of change by Santosh for CR31855

CLEAR:                gv_frame_contract,

                       gv_body,

                       gv_modelcode,

                       gv_opt,

                       gv_model_year,

                       gv_sam,

                       gv_ddate,

                       gv_edate,

                       lv_demdate,

                       lv_enddate,

                       enddate,

                       demdate,

                       lv_atwrt,

                       lv_atinn,

                       lv_class,

                       lv_klart,

                       lv_object_low,

                       lv_atflv.

 

   REFRESH: t_l_class,

            t_l_objectdata,

            t_l_object,

            t_l_sel_char .

 

 

               CLEAR: lv_enddate,lv_demdate,enddate,demdate.

               CLEAR: lv_atinn, lv_atwrt, lv_atflv.

 

               lv_klart = '300'.

               lv_object_low = wa_pnwtyh-relob_ext.

 

               CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'

                 EXPORTING

                   class                = lv_class

                   classtype            = lv_klart

                   object               = lv_object_low

                   objecttable          = 'MARA'

                 TABLES

                   t_class              = t_l_class

                   t_objectdata         = t_l_objectdata

                   i_sel_characteristic = t_l_sel_char

                 EXCEPTIONS

                   no_classification    = 1

                   no_classtypes        = 2

                   invalid_class_type   = 3

                   OTHERS               = 4.

               IF sy-subrc = 0.

 

               ENDIF.

 

 

* get all the required characteristics.

 

                 READ TABLE t_l_objectdata WITH KEY atnam = 'NC0014'.

                 IF sy-subrc = 0.

                   gv_modelcode = t_l_objectdata-ausp1.

                 ENDIF.

                 CLEAR t_l_objectdata-ausp1.

                 READ TABLE t_l_objectdata WITH KEY atnam = 'NC0026'.

                 IF sy-subrc = 0.

                   gv_sam = t_l_objectdata-ausp1.

                 ENDIF.

                 CLEAR t_l_objectdata-ausp1.

                 READ TABLE t_l_objectdata WITH KEY atnam = 'NC0016'.

                 IF sy-subrc = 0.

                   gv_opt = t_l_objectdata-ausp1.

                 ENDIF.

                 CLEAR t_l_objectdata-ausp1.

                 READ TABLE t_l_objectdata WITH KEY atnam = 'NC0010'.

                 IF sy-subrc = 0.

                   gv_body = t_l_objectdata-ausp1.

                 ENDIF.

                 CLEAR t_l_objectdata-ausp1.

                 READ TABLE t_l_objectdata WITH KEY atnam = 'NC0015'.

                 IF sy-subrc = 0.

                   gv_model_year = t_l_objectdata-ausp1.

                 ENDIF.

                 CLEAR t_l_objectdata-ausp1.

                 READ TABLE t_l_objectdata WITH KEY atnam = 'RD0003'.

                 IF sy-subrc = 0.

                   gv_frame_contract = t_l_objectdata-ausp1.

                 ENDIF.

                 CLEAR t_l_objectdata-ausp1.

 

                 READ TABLE t_l_objectdata WITH KEY atnam 'RD0002'.

                 IF sy-subrc = 0.

                   lv_atflv   = t_l_objectdata-atflv.

                 ENDIF.

                 CLEAR t_l_objectdata-ausp1.

                 IF sy-subrc = 0.

                   IF lv_atflv IS NOT INITIAL.

*             Convert floating point to character

                     CALL FUNCTION 'MC_FLTP_CHAR'

                       EXPORTING

                         fc_a_fld = lv_atflv

                       IMPORTING

                         fc_r_fld = lv_enddate.

 

                     CONDENSE lv_enddate.

                     enddate  = lv_enddate.

                   ENDIF.

                 ENDIF.

 

                 CLEAR: lv_atinn, lv_atwrt, lv_atflv.

 

                 READ TABLE t_l_objectdata WITH KEY atnam 'RD0005'.

                 IF sy-subrc = 0.

                   lv_atflv   = t_l_objectdata-atflv.

                 ENDIF.

                 IF sy-subrc = 0.

                   IF lv_atflv IS NOT INITIAL.

*             Convert floating point to character

                     CALL FUNCTION 'MC_FLTP_CHAR'

                       EXPORTING

                         fc_a_fld = lv_atflv

                       IMPORTING

                         fc_r_fld = lv_demdate.

 

                     CONDENSE lv_demdate.

                     demdate = lv_demdate.

                   ENDIF.

                 ENDIF.

**write selects to get dates.

               CLEAR: gv_edate, gv_ddate.

               IF enddate IS INITIAL AND demdate IS NOT INITIAL.

                 datum = demdate.

               ELSEIF enddate IS NOT INITIAL AND demdate IS INITIAL.

                 datum = enddate.

               ELSEIF enddate IS NOT INITIAL AND demdate IS NOT INITIAL.

                 CLEAR: gv_edate, gv_ddate.

                 DATA: BEGIN OF wa_sales_act,

                           sales_act   TYPE  zpr_premium_def-sales_act,

                           matnr       TYPE  zpr_premium_def-matnr,

                           cl_proc     TYPE  zpr_premium_def-cl_proc,

                           type_of_act TYPE  zpr_premium_def-type_of_act,

                       END OF wa_sales_act.

 

                 CLEAR: gv_edate, wa_sales_act,gv_dproc,gv_eproc.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                        zpr_premium_def~matnr

                        zpr_premium_def~cl_proc

                        zpr_premium_def~type_of_act

                    INTO wa_sales_act

                   FROM zpr_premium_def

               INNER JOIN zpr_premium

                     ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                    AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                  WHERE zpr_premium~vkorg           EQ 'DE01'

                    AND zpr_premium_def~sales_act   EQ SALESACT

                    AND zpr_premium~frame_contr     EQ gv_frame_contract

                    AND zpr_premium~body_type_code  EQ ''

                    AND zpr_premium~model_code      EQ gv_modelcode

                    AND zpr_premium~opt             EQ gv_opt

                    AND zpr_premium~model_year      EQ gv_model_year

                    AND zpr_premium~sam             EQ gv_sam

                    AND zpr_premium~valid_from      LE enddate

                    AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

 

                 SELECT  SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                    FROM zpr_premium_def

               INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ gv_frame_contract

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ gv_modelcode

                     AND zpr_premium~opt             EQ gv_opt

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ gv_sam

                     AND zpr_premium~valid_from      LE enddate

                     AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                      gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                    FROM zpr_premium_def

               INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ gv_frame_contract

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ gv_modelcode

                     AND zpr_premium~opt             EQ gv_opt

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE enddate

                     AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT  SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                   FROM zpr_premium_def

               INNER JOIN zpr_premium

                     ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                    AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                  WHERE zpr_premium~vkorg           EQ 'DE01'

                    AND zpr_premium_def~sales_act   EQ SALESACT

                    AND zpr_premium~frame_contr     EQ gv_frame_contract

                    AND zpr_premium~body_type_code  EQ ''

                    AND zpr_premium~model_code      EQ gv_modelcode

                    AND zpr_premium~opt             EQ ''

                    AND zpr_premium~model_year      EQ ''

                    AND zpr_premium~sam             EQ ''

                    AND zpr_premium~valid_from      LE enddate

                    AND zpr_premium~valid_to        GE enddate.

 

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                    FROM zpr_premium_def

               INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ gv_frame_contract

                     AND zpr_premium~body_type_code  EQ gv_body

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ gv_model_year

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE enddate

                     AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                   gv_edate = 'X'.

                 ENDIF.

 

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                    FROM zpr_premium_def

               INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ gv_frame_contract

                     AND zpr_premium~body_type_code  EQ gv_body

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE enddate

                     AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                    FROM zpr_premium_def

               INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ gv_frame_contract

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE enddate

                     AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

 

                 SELECT SINGLE zpr_premium_def~sales_act

                        zpr_premium_def~matnr

                        zpr_premium_def~cl_proc

                        zpr_premium_def~type_of_act

                 INTO wa_sales_act

                   FROM zpr_premium_def

                 INNER JOIN zpr_premium

                     ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                    AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                  WHERE zpr_premium~vkorg           EQ 'DE01'

                    AND zpr_premium_def~sales_act   EQ SALESACT

                    AND zpr_premium~frame_contr     EQ ''

                    AND zpr_premium~body_type_code  EQ ''

                    AND zpr_premium~model_code      EQ gv_modelcode

                    AND zpr_premium~opt             EQ gv_opt

                    AND zpr_premium~model_year      EQ gv_model_year

                    AND zpr_premium~sam             EQ gv_sam

                    AND zpr_premium~valid_from      LE enddate

                    AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ gv_modelcode

                     AND zpr_premium~opt             EQ gv_opt

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ gv_sam

                     AND zpr_premium~valid_from      LE enddate

                     AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ gv_modelcode

                     AND zpr_premium~opt             EQ gv_opt

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE enddate

                     AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ gv_modelcode

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE enddate

                     AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ gv_body

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ gv_model_year

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE enddate

                     AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ gv_body

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE enddate

                     AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE enddate

                     AND zpr_premium~valid_to        GE enddate.

                 IF sy-subrc = 0.

                   gv_edate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   ENDIF.

                 ENDIF.

 

*------------------------------------------------------Demo date

                 SELECT SINGLE zpr_premium_def~sales_act

                      zpr_premium_def~matnr

                      zpr_premium_def~cl_proc

                      zpr_premium_def~type_of_act

                  INTO wa_sales_act

                 FROM zpr_premium_def

             INNER JOIN zpr_premium

                   ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                  AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                WHERE zpr_premium~vkorg           EQ 'DE01'

                  AND zpr_premium_def~sales_act   EQ SALESACT

                  AND zpr_premium~frame_contr     EQ gv_frame_contract

                  AND zpr_premium~body_type_code  EQ ''

                  AND zpr_premium~model_code      EQ gv_modelcode

                  AND zpr_premium~opt             EQ gv_opt

                  AND zpr_premium~model_year      EQ gv_model_year

                  AND zpr_premium~sam             EQ gv_sam

                  AND zpr_premium~valid_from      LE demdate

                  AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_eproc = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                   ENDIF.

                 ENDIF.

 

                 SELECT  SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                    FROM zpr_premium_def

               INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ gv_frame_contract

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ gv_modelcode

                     AND zpr_premium~opt             EQ gv_opt

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ gv_sam

                     AND zpr_premium~valid_from      LE demdate

                     AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                    FROM zpr_premium_def

               INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ gv_frame_contract

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ gv_modelcode

                     AND zpr_premium~opt             EQ gv_opt

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE demdate

                     AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT  SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                   FROM zpr_premium_def

               INNER JOIN zpr_premium

                     ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                    AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                  WHERE zpr_premium~vkorg           EQ 'DE01'

                    AND zpr_premium_def~sales_act   EQ SALESACT

                    AND zpr_premium~frame_contr     EQ gv_frame_contract

                    AND zpr_premium~body_type_code  EQ ''

                    AND zpr_premium~model_code      EQ gv_modelcode

                    AND zpr_premium~opt             EQ ''

                    AND zpr_premium~model_year      EQ ''

                    AND zpr_premium~sam             EQ ''

                    AND zpr_premium~valid_from      LE demdate

                    AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                    FROM zpr_premium_def

               INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ gv_frame_contract

                     AND zpr_premium~body_type_code  EQ gv_body

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ gv_model_year

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE demdate

                     AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                    FROM zpr_premium_def

               INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ gv_frame_contract

                     AND zpr_premium~body_type_code  EQ gv_body

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE demdate

                     AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

               INTO wa_sales_act

                    FROM zpr_premium_def

               INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ gv_frame_contract

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE demdate

                     AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                        zpr_premium_def~matnr

                        zpr_premium_def~cl_proc

                        zpr_premium_def~type_of_act

                 INTO wa_sales_act

                   FROM zpr_premium_def

                 INNER JOIN zpr_premium

                     ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                    AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                  WHERE zpr_premium~vkorg           EQ 'DE01'

                    AND zpr_premium_def~sales_act   EQ SALESACT

                    AND zpr_premium~frame_contr     EQ ''

                    AND zpr_premium~body_type_code  EQ ''

                    AND zpr_premium~model_code      EQ gv_modelcode

                    AND zpr_premium~opt             EQ gv_opt

                    AND zpr_premium~model_year      EQ gv_model_year

                    AND zpr_premium~sam             EQ gv_sam

                    AND zpr_premium~valid_from      LE demdate

                    AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ gv_modelcode

                     AND zpr_premium~opt             EQ gv_opt

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ gv_sam

                     AND zpr_premium~valid_from      LE demdate

                     AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ gv_modelcode

                     AND zpr_premium~opt             EQ gv_opt

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE demdate

                     AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ gv_modelcode

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE demdate

                     AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ gv_body

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ gv_model_year

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE demdate

                     AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ gv_body

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE demdate

                     AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

 

                 SELECT SINGLE zpr_premium_def~sales_act

                         zpr_premium_def~matnr

                         zpr_premium_def~cl_proc

                         zpr_premium_def~type_of_act

                 INTO wa_sales_act

                    FROM zpr_premium_def

                 INNER JOIN zpr_premium

                      ON zpr_premium~vkorg           EQ zpr_premium_def~vkorg

                     AND zpr_premium~sales_act       EQ zpr_premium_def~sales_act

                   WHERE zpr_premium~vkorg           EQ 'DE01'

                     AND zpr_premium_def~sales_act   EQ SALESACT

                     AND zpr_premium~frame_contr     EQ ''

                     AND zpr_premium~body_type_code  EQ ''

                     AND zpr_premium~model_code      EQ ''

                     AND zpr_premium~opt             EQ ''

                     AND zpr_premium~model_year      EQ ''

                     AND zpr_premium~sam             EQ ''

                     AND zpr_premium~valid_from      LE demdate

                     AND zpr_premium~valid_to        GE demdate.

                 IF sy-subrc = 0.

                   gv_ddate = 'X'.

                   IF wa_sales_act-cl_proc IS NOT INITIAL.

                     gv_dproc = 'X'.

                   ENDIF.

                 ENDIF.

*--------------------------------------------------------------

 

* Begin of insert by Santosh for CR31855

   if acttype EQ c_u.

*   IF gv_ddate = 'X' AND gv_edate = 'X'.

    if demdate LT enddate.

    datum  = enddate.

    endif.

*   endif.

CLEAR: lv_demdate, lv_enddate, demdate, enddate.

   ELSEIF acttype EQ c_a.

* End of insert by Santosh for CR31855

 

                 IF gv_ddate = 'X' AND gv_edate = 'X'.

                   IF gv_dproc EQ 'X'.

                     datum  = demdate.

                   ELSEIF gv_eproc EQ 'X'.

                     datum  = enddate.

                   ENDIF.

                 ELSEIF gv_ddate = 'X' AND gv_dproc EQ 'X'.

                   datum  = demdate.

                 ELSEIF gv_edate = 'X' AND gv_eproc EQ 'X'.

                   datum  = enddate.

                 ENDIF.

 

                 CLEAR: lv_demdate, lv_enddate, demdate, enddate.

               ENDIF.

    endif. "Santosh for CR31855

     ENDIF.

* End of change IM59239 PIPA 14.01.2009

 

 

   IF NOT ls_item-zz_frame_contr IS INITIAL.

     CALL FUNCTION 'Z_GET_PREMIUM_DATA'

       EXPORTING

         matnr       = ls_item-matnr

         vin         = wa_pnwtyh-relob_ext

         frame_contr = ls_item-zz_frame_contr

         datum       = datum "wa_pnwtyh-refdt

       IMPORTING

         premium     = wa_premium

       EXCEPTIONS

         not_found   = 1

         dump        = 2

         OTHERS      = 3.

 

     IF sy-subrc NE 0.

     ENDIF.

   ELSE.

     CALL FUNCTION 'Z_GET_PREMIUM_DATA'

       EXPORTING

         matnr       = ls_item-matnr

         vin         = wa_pnwtyh-relob_ext

*        frame_contr = ls_item-zz_frame_contr

         datum       = datum "wa_pnwtyh-refdt

       IMPORTING

         premium     = wa_premium

       EXCEPTIONS

         not_found   = 1

         dump        = 2

         OTHERS      = 3.

 

     IF sy-subrc NE 0.

     ENDIF.

   ENDIF.

 

     LOOP AT xkomv INTO wa_xkomv WHERE kschl = 'ZP01'.

       IF komv-kschl EQ 'ZP01'.

         wa_xkomv-kbetr = komv-kbetr.

       ENDIF.

       IF wa_xkomv-kbetr EQ 0.

         wa_xkomv-kawrt = sum1.

         xkwert = sum1.

       ELSEIF komv-kbetr NE 0 AND komv-kschl EQ 'ZP01'.

         wa_xkomv-kawrt = komv-kbetr.

         wa_xkomv-kwert = komv-kbetr.

*        sum1           = komv-kbetr.

         xkwert         = komv-kbetr.

       ENDIF.

 

       MODIFY xkomv[] FROM wa_xkomv INDEX sy-tabix.

       EXIT.

     ENDLOOP.

 

     IF wa_premium-bonus_amt = 0.

*        Take amount from invoice and calculate with %.

       LOOP AT xkomv INTO wa_xkomv WHERE kschl = 'ZP02'.

         IF komv-kschl EQ 'ZP02'.

           wa_xkomv-kbetr = komv-kbetr.

         ENDIF.

         IF wa_xkomv-kbetr EQ 0.

           wa_xkomv-kbetr = ( wa_premium-bonus_pct * 10 ).

         ELSEIF komv-kbetr NE 0 AND komv-kschl EQ 'ZP02'.

           wa_xkomv-kbetr = komv-kbetr.

         ENDIF.

         MODIFY xkomv FROM wa_xkomv.

         EXIT.

       ENDLOOP.

     ELSE.

*        Take amount from invoice.

       LOOP AT xkomv INTO wa_xkomv WHERE kschl = 'ZP03'.

         IF komv-kschl EQ 'ZP03'.

           wa_xkomv-kbetr = komv-kbetr.

         ENDIF.

         IF wa_xkomv-kbetr EQ 0.

           wa_xkomv-kbetr = wa_premium-bonus_amt.

         ELSEIF komv-kbetr NE 0 AND komv-kschl EQ 'ZP03'.

           wa_xkomv-kbetr = komv-kbetr.

         ENDIF.

         MODIFY xkomv FROM wa_xkomv.

         EXIT.

       ENDLOOP.

     ENDIF.

 

*########  fill for handling stuff

     IF wa_premium-handling_amt = 0.

*        Take amount from invoice and calculate with %.

       LOOP AT xkomv INTO wa_xkomv WHERE kschl = 'ZP04'.

         IF komv-kschl EQ 'ZP04'.

           wa_xkomv-kbetr = komv-kbetr.

         ENDIF.

         IF wa_xkomv-kbetr EQ 0.

           wa_xkomv-kbetr = ( wa_premium-handling_pct * 10 ) * -1.

         ELSEIF komv-kbetr NE 0 AND komv-kschl EQ 'ZP04'.

           wa_xkomv-kbetr = komv-kbetr.

         ENDIF.

 

         MODIFY xkomv FROM wa_xkomv.

         EXIT.

       ENDLOOP.

     ELSE.

*        Take amount from invoice.

       LOOP AT xkomv INTO wa_xkomv WHERE kschl = 'ZP05'.

*      wa_xkomv-kbetr = wa_premium-handling_amt.

         IF komv-kschl EQ 'ZP05'.

           wa_xkomv-kbetr = komv-kbetr.

         ENDIF.

         IF wa_xkomv-kbetr EQ 0.

           wa_xkomv-kbetr = wa_premium-handling_amt * -1.

         ELSEIF komv-kbetr NE 0 AND komv-kschl EQ 'ZP05'.

           IF komv-kbetr > 0.

             komv-kbetr = komv-kbetr * -1.

           ENDIF.

           wa_xkomv-kbetr = komv-kbetr.

         ENDIF.

         MODIFY xkomv FROM wa_xkomv.

         EXIT.

       ENDLOOP.

     ENDIF.

ENDIF.

 

*}   INSERT

ENDFORM.




Thank you,

 

Regards

#SRT


Viewing all articles
Browse latest Browse all 10449

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>