Professional Documents
Culture Documents
Ampliación Al Reporte Farr
Ampliación Al Reporte Farr
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.