You are on page 1of 6

AMPLIACIÓN AL REPORTE FARR_BIZ_RECON

ENHANCEMENT 1  ZENH_FICA_FARR_RECON.    "active version

"Crios 26/11/2021 Ampliar reporte estandar de acuerdo con EF EF_FI_RAR_Repor
te Estandar
"Consultora Funcional Leidy Antolinez
BREAK wcortes.
  TYPES: BEGIN OF ty_mara,
          MATNR TYPE mara-matnr,
          EXTWG TYPE mara-extwg,
          MTART TYPE keynn_kk,
         END OF ty_mara.

  DATA: lti_mara TYPE STANDARD TABLE OF ty_mara.
  SELECT PARTNER, BU_SORT2, TYPE, NAME_ORG1
    FROM BUT000
    INTO TABLE @DATA(lti_but000)
    FOR ALL ENTRIES IN @gt_biz_recon_output
    WHERE partner = @gt_biz_recon_output-partner
    ORDER BY PRIMARY KEY.

  SELECT COMPANY_CODE, ACCT_PRINCIPLE, RECON_KEY, POB_ID, CONDITION_TYPE, POST
_CAT, SHKZG, GUID, GJAHR, HKONT
    FROM FARR_D_POSTING
    INTO TABLE @DATA(lti_farr_posting)
    FOR ALL ENTRIES IN @gt_biz_recon_output
    WHERE COMPANY_CODE   = @gt_biz_recon_output-company_code
    AND   ACCT_PRINCIPLE = @gt_biz_recon_output-acct_principle
    AND   POB_ID         = @gt_biz_recon_output-pob_id
    AND   CONDITION_TYPE = @gt_biz_recon_output-condition_type
    AND   GJAHR          = @gt_biz_recon_output-gjahr
    AND   POPER          = @gt_biz_recon_output-poper
    AND   post_cat       = 'RV'
    AND   condition_type = 'PSMB'.

    SORT lti_farr_posting by COMPANY_CODE ACCT_PRINCIPLE POB_ID CONDITION_TYPE 
GJAHR.

    SELECT MATNR, EXTWG, MTART
      FROM MARA
      INTO TABLE @lti_mara
      FOR ALL ENTRIES IN @gt_biz_recon_output
      WHERE matnr = @gt_biz_recon_output-material
      ORDER BY PRIMARY KEY.

    IF lti_mara[] IS NOT INITIAL.
      SELECT KEY01, KEY02, KEY04, KEY05, FUN01, FUN02
        FROM TFK033D
        INTO TABLE @DATA(lti_tfk033)
        FOR ALL ENTRIES IN @lti_mara
        WHERE KEY04 = @lti_mara-extwg+0(12)
        AND   KEY05 = @lti_mara-mtart
        AND   key01 = 'SLCP'
        AND   applk = 'T'
        AND   buber = '8122'.

        SORT lti_tfk033 by key04 key05.

    ENDIF.

    IF lti_tfk033[] IS NOT INITIAL.
      SELECT HVORG, TVORG, QSSKZ, QSSEW, QSSHB, WAERS
        FROM ZTFICA_RETENCION
        INTO TABLE @DATA(lti_retencion)
        FOR ALL ENTRIES IN @lti_tfk033
        WHERE hvorg = @lti_tfk033-fun01+0(4)
        AND   tvorg = @lti_tfk033-fun02+0(4)
        AND   QSSKZ = 'AT'
        AND   bukrs = '1000'.

      SORT lti_retencion by hvorg tvorg.
    ENDIF.

    IF lti_retencion[] IS NOT INITIAL.
      SELECT land1, QSSKZ, QSSEW, QSATZ
        FROM TFK059QE
        INTO TABLE @DATA(lti_TFK059)
        FOR ALL ENTRIES IN @lti_retencion
        WHERE QSSKZ = @lti_retencion-qsskz
        AND   qssew = @lti_retencion-qssew
        AND   land1 = 'CO'
        ORDER BY PRIMARY KEY.
    ENDIF.

  LOOP AT gt_biz_recon_output ASSIGNING FIELD-SYMBOL(<fs_biz_recon>).

    READ TABLE lti_but000 INTO DATA(lts_but) WITH KEY partner = <fs_biz_recon>
-partner BINARY SEARCH.
    IF sy-subrc = 0.
*1  Persona
*2  Organización
      CASE lts_but-type.
        WHEN 1.
          <fs_biz_recon>-cust_name = lts_but-bu_sort2.
        WHEN 2.
          <fs_biz_recon>-cust_name = lts_but-NAME_ORG1.
      ENDCASE.

    ENDIF.

    LOOP AT lti_farr_posting INTO DATA(lts_posting) WHERE COMPANY_CODE   = <fs
_biz_recon>-company_code
                                                      AND ACCT_PRINCIPLE = <fs
_biz_recon>-acct_principle
                                                      AND POB_ID         = <fs
_biz_recon>-pob_id
                                                      AND CONDITION_TYPE = <fs
_biz_recon>-condition_type
                                                      AND GJAHR          = <fs
_biz_recon>-gjahr.
      <fs_biz_recon>-zzsaknr = lts_posting-hkont.
      EXIT.
    ENDLOOP.

    READ TABLE lti_mara INTO DATA(lts_mara) WITH KEY matnr = <fs_biz_recon>-
material BINARY SEARCH.
    IF sy-subrc = 0.
      <fs_biz_recon>-zzextwg = lts_mara-extwg.
      <fs_biz_recon>-zzmtart = lts_mara-mtart.

      READ TABLE lti_tfk033 INTO DATA(lts_tfk033) WITH KEY KEY04 = lts_mara-
extwg+0(12)
                                                           KEY05 = lts_mara-
mtart
                                                           BINARY SEARCH.
      IF sy-subrc = 0.
          DATA(lv_continuar) = abap_true.
      ENDIF.
    ENDIF.

    IF lv_continuar = abap_true.

      LOOP AT lti_retencion INTO DATA(lts_retencion) WHERE hvorg = lts_tfk033-
fun01+0(4)
                                                       AND tvorg = lts_tfk033-
fun02+0(4).

        READ TABLE lti_TFK059 INTO DATA(lts_tfk059) WITH KEY qsskz = lts_reten
cion-qsskz
                                                             qssew = lts_reten
cion-qssew
                                                             BINARY SEARCH.

        IF lts_retencion-waers = 'COP'.
          lts_retencion-qsshb = lts_retencion-qsshb / 100 .
        ENDIF.

        CASE lts_tfk059-qssew.
          WHEN '05'.
            <fs_biz_recon>-ZZRETESP   = lts_tfk059-QSSEW.     "Indicador rete
nción especial
            <fs_biz_recon>-ZZPR_RET_ESP   = lts_tfk059-QSATZ. "Porcentaje de 
retención especial
            IF <fs_biz_recon>-post_rv_lc1 >= lts_retencion-qsshb.
              <fs_biz_recon>-ZZAUTORRET_ESP = <fs_biz_recon>-post_rv_lc1 * lts
_tfk059-QSATZ. "Autorretención estimada especial
            ENDIF.

          WHEN OTHERS.
            <fs_biz_recon>-ZZINDSERV = lts_tfk059-QSSEW. "Indicador por servi
cio
            <fs_biz_recon>-ZZPR_RET  = lts_tfk059-QSATZ. "Porcentaje de reten
ción

            IF <fs_biz_recon>-post_rv_lc1 >= lts_retencion-qsshb.
              <fs_biz_recon>-ZZAUTORRET = <fs_biz_recon>-post_rv_lc1 * lts_tfk
059-QSATZ. "Autorretención estimada
            ENDIF.

        ENDCASE.
        <fs_biz_recon>-ZZQSSKZ   = lts_tfk059-QSSKZ. "Indicador de retención

      ENDLOOP.

    ENDIF.

    CLEAR: lv_continuar.

  ENDLOOP.

  "Crios 26/11/2021 Fin

ENDENHANCEMENT.

You might also like