PDA

Ver la Versión Completa : LOOP incorrecto, no pasa valores


romario2
20/02/09, 16:11:31
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!:o




*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.