LOOP incorrecto, no pasa valores

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • romario2
    Senior Member
    • abr
    • 233

    #1

    LOOP incorrecto, no pasa valores

    HOLA,

    el siguiente loop va tratando una tabla y valores para incorporarlas a un XML posteriormente, el problema que tengo es que los descuentos de linia
    y impuestos de linia no se llenan de valores.

    SALUDOS Y MUCHAS GRACIAS POR CUALQUIER AYUDA!




    *DETALLE:cada Detalle será una posición del documento, siempre que KINAK = ''.
    SORT it_konv BY knumv kposn.
    *descuentos y comisiones
    * vamos a tabla de cabecera con vbeln y obtenemos el kunmv, vamos a la de posiciones y obtenemos los posnr y sincronizamos
    *Type KONV si KSCHL = SHIM o DHIM o MHIM,entonces "IVA" y MWSK1 <> RB, RX o RY, si MWSK1 = RB, RX o RY entonces "IGIC" VBRK KNUMV
    LOOP AT it_konv
    WHERE kposn = vbrp-posnr AND knumv = vbrk-knumv.
    IF kposn_aux <> it_konv-kposn.
    kposn_aux = it_konv-kposn.
    *resumen de impuestos, si KONV-KSCHL = SHIM o DHIM o MHIM, y MWSK1 <> RB, RX o RY ----> entonces "IVA"
    IF ( ( it_konv-kschl = 'SHIM' ) OR ( it_konv-kschl = 'DHIM' ) OR ( it_konv-kschl = 'MHIM' ) ) AND
    ( ( it_konv-mwsk1 <> 'RB') OR ( it_konv-mwsk1 <> 'RX' ) OR ( it_konv-mwsk1 <> 'RY' ) ).
    v_taxtype = 'IVA'.
    v_taxtypeli = 'IVA'.
    v_supclient = 'IVA'.
    *si KONV-KSCHL = SHIM o DHIM o MHIM,MWSK1 = RB, RX o RY ----> entonces "IGIC"
    ELSEIF ( ( it_konv-kschl = 'SHIM' ) OR ( it_konv-kschl = 'DHIM' ) OR ( it_konv-kschl = 'MHIM' ) ) AND
    ( ( it_konv-mwsk1 = 'RB') OR ( it_konv-mwsk1 = 'RX' ) OR ( it_konv-mwsk1 = 'RY' ) ).
    v_taxtype = 'IGIC'.
    v_taxtypeli = 'IGIC'.
    v_supclient = 'IGIC'.
    ELSE.
    v_taxtype = ''.
    v_taxtypeli = ''.
    v_supclient = ''.
    ENDIF.

    IF ( ( it_konv-kschl = 'SHIM' ) OR ( it_konv-kschl = 'DHIM' ) OR ( it_konv-kschl = 'MHIM' ) ) .
    CLEAR v_impli.
    v_impli = 10.
    IF it_konv-kbetr <> 0 AND v_impli <> 0.
    v_ratetaxli = it_konv-kbetr / v_impli.
    ENDIF.
    *IU
    ELSE.
    v_ratetaxli = ''.
    ENDIF.

    IF it_konv-kbetr <> 0 AND v_imp <> 0.
    CLEAR v_imp.
    v_imp = 10.
    v_ratetax = it_konv-kbetr / v_imp.
    *IU
    ELSE.
    v_ratetax = ''.
    ENDIF.

    st_ratetaxli = v_ratetaxli.
    ** descuentos de línea
    CONCATENATE ' <Discounts>'
    '<Discount Qualifier="' v_taxtypeli '" Type="' st_ratetaxli '" Rate="' st_ratetaxli '" Amount="' v_amountaxli '" />'
    ' </Discounts>'
    INTO wa_lineas-nodo.
    APPEND wa_lineas TO lineas.
    * impuestos de línea
    CONCATENATE ' <Taxes>'
    '<Tax Type="' v_taxtypeli '" Rate="' st_ratetaxli '" Amount="' v_amountaxli '" />'
    ' </Taxes>'
    INTO wa_lineas-nodo.
    APPEND wa_lineas TO lineas.
    ** datos del servicio
    CONCATENATE ' <ServicesData>'
    '<ServiceData SupplierClientID="' vbrk-kunrg '" ClientID="' '" SupplierID="' vbrp-vkorg_auft '" ClienteSupplierID="' '" SupplierName="' adrc-name1 '" Pax="' /ccsht/rs_linfol-xnombre '" BeginDate="' /ccsht/rs_rsrvs-xf_llgda '" EndDate="'
    /ccsht/rs_rsrvs-xf_slida '" Voucher="' '" />'

    ' </ServicesData>'
    INTO wa_lineas-nodo.
    APPEND wa_lineas TO lineas.

    ENDIF.
    EXIT.
    ENDLOOP.
    * cierre producto
    CONCATENATE '</Product' '>' INTO wa_lineas-nodo.
    APPEND wa_lineas TO lineas.
    EXIT.
    ENDIF.
    ENDLOOP.
Trabajando...