Porcentaje de IVA a partir del indicador

Introducción

Los que estamos curtidos sabemos que, a veces, los caminos de SAP son inescrutables; pero más por retorcidos que porque no se puedan deducir. Es el caso de los porcentajes que corresponden a los tipos de IVA recogidos en campos MWSKZ. En vez de ser almacenados en una tabla al efecto, pues no. Se marea al programador.

La siguiente rutina deduce el porcentaje correspondiente a un indicador de IVA simplemente conociendo este y el país. Si sy-subrc no vale 0, es que no lo ha encontrado; esto se deberá controlar.

Una advertencia: los valores son devueltos como porcentajes literales, de 0 a 100. Cualquier operación que se realice con ellos deberá ser dividida a su vez por 100 para que el resultado sea correcto.

El código

*     _          _                   _  __   _                
*  __| | ___  __| |_   _  ___ ___   (_)/ /  (_)_   ____ _     
* / _` |/ _ \/ _` | | | |/ __| _ \    / /   | | \ / / _` |    
*| (_| |  __/ (_| | |_| | (__  __/   / /_   | |\ V / (_| |    
* \__,_|\___|\__,_|\__,_|\___|___|  /_/(_)  |_| \_/ \__,_|    
* as seen on http://cranf.com
* ASCII art made at http://ascii.cranf.net
*
FORM deduce_porcentaje_iva USING pland1 pmwskz CHANGING pkbetr LIKE konp-kbetr.

  DATA lvakey LIKE konh-vakey.
  DATA lknumh LIKE konh-knumh.
  CLEAR pkbetr.

  CONCATENATE pland1 pmwskz INTO lvakey SEPARATED BY space.

  SELECT SINGLE knumh
    INTO lknumh
    FROM konh
   WHERE vakey = lvakey.

  IF sy-subrc = 0.
    SELECT SINGLE kbetr INTO pkbetr
      FROM konp
     WHERE knumh = lknumh.
    IF sy-subrc = 0.
      pkbetr = pkbetr / 10.
    ELSE.
      sy-subrc = 2.
    ENDIF.
  ELSE.
    sy-subrc = 1.
  ENDIF.
ENDFORM.
Publicado en: SAP Sin comentarios ▼

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

[c] Alberto Viñuela Miranda / Cranfcom 2013-2014

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.