Anulación Factura SD-FI

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • marice18
    Senior Member
    • sep
    • 106

    #1

    Anulación Factura SD-FI

    Ojalá puedan ayudarme...
    El caso que tengo es el siguiente. Tengo una Factura SD la cual fue realizada su cobranza por FI y ya se encuentra compensada.
    Por error, un usuario generó una anulación de la factura por SD, la cual ya está compensada. Aún asi generó el documento de anulación que no apunta a ningún documento.
    ¿En qué parte del estándar puedo revisar la configuración en que no me permita generar la anulación de un documento compensado? ¿Eso lo tengo que revisar en FI o en SD?
    ¿Es necesario implementar un exit para que me realice dicha validación?

    Gracias.
  • marco.guzman
    Junior Member
    • mar
    • 3

    #2
    Aqui hay una forma

    Hola espero que te sirva en esta include RV60AFZZ
    agrega el siguiente codigo:

    *Control de Anulación de Facturas
    if SY-TCODE = 'VF11'.
    * Si existen Solic.NC/ND o Devol. activas => No permite anular
    select * from vbfa where vbelv = vbrk-vbeln and
    posnv = space and
    vbtyp_n in ('K','L','H').
    select single * from vbap
    where vbeln = vbfa-vbeln and
    ABGRU = space.

    if sy-subrc = 0.
    perform vbfs_hinzufuegen_allg using
    xvbrp-vbeln xvbrp-posnr
    'ZSD' 'A' '004'
    vbfa-vbeln vbap-posnr space space.

    message id 'ZSD' type 'E' number '000' with 'Error, ver log'.
    endif.
    endselect.


    * Si el periodo FI está cerrado, no se permite anular
    data: wa_per like t001b-frpe1,
    wa_ejer like t001b-frye1,
    wa_per1(7) type c,
    wa_per2(7) type c,
    wa_perd(7) type c.
    tables: T001B.

    wa_per = xvbrk-fkdat+4(2).
    wa_ejer = xvbrk-fkdat+0(4).

    select * from T001B where RRCTY = '0' and
    BUKRS = xvbrk-bukrs and
    MKOAR in ('+','D','S') and
    FRYE2 <= wa_ejer and
    TOYE2 >= wa_ejer.
    if sy-subrc = 4.
    * Error
    perform vbfs_hinzufuegen_allg using
    xvbrp-vbeln xvbrp-posnr
    'ZSD' 'A' '008'
    'X' space space space.

    message id 'ZSD' type 'E' number '000' with 'Error, ver log'.
    else.
    * Controla si periodo está abierto
    concatenate T001B-FRYE2 T001B-FRPE2 into wa_per1.
    concatenate T001B-TOYE2 T001B-TOPE2 into wa_per2.
    concatenate wa_ejer wa_per into wa_perd.

    if not ( wa_perd >= wa_per1 and wa_perd <= wa_per2 ).
    * Error
    perform vbfs_hinzufuegen_allg using
    xvbrp-vbeln xvbrp-posnr
    'ZSD' 'A' '008'
    T001B-MKOAR space space space.

    message id 'ZSD' type 'E' number '000' with 'Error, ver log'.
    endif.
    endif.
    endselect.


    * Controla que factura no esté compensada o tenga pago parcial
    * (descarta documentos temporales que aparecen al anular NC)
    if xvbrk-vbeln+0(1) NE '$'.
    data: w_belnr like bkpf-belnr,
    w_GJAHR like bkpf-GJAHR.
    select single BELNR GJAHR into (w_belnr,w_GJAHR) from bkpf
    where bukrs = xvbrk-bukrs and
    awtyp = 'VBRK' and
    awkey = xvbrk-vbeln.
    if sy-subrc = 0.
    select single * from bsad
    where bukrs = xvbrk-bukrs and
    kunnr = xvbrk-KUNRG and
    GJAHR = w_GJAHR and
    belnr = w_belnr.
    if sy-subrc = 0.
    * Error, factura compensada
    perform vbfs_hinzufuegen_allg using
    xvbrp-vbeln xvbrp-posnr
    'ZSD' 'A' '028'
    xvbrk-vbeln space space space.

    message id 'ZSD' type 'E' number '000' with 'Error, ver log'.
    endif.
    * endif.

    * Identifica pagos parciales
    select single * from bsid
    where bukrs = xvbrk-bukrs and
    kunnr = xvbrk-KUNRG and
    rebzg = w_belnr and
    rebzj = w_GJAHR.
    if sy-subrc = 0.
    * Error, factura tiene pagos parciales
    perform vbfs_hinzufuegen_allg using
    xvbrp-vbeln xvbrp-posnr
    'ZSD' 'A' '029'
    xvbrk-vbeln space space space.

    message id 'ZSD' type 'E' number '000' with 'Error, ver log'.
    endif.
    endif.
    endif.
    endif.

    me cuentas cono te va.

    Comentario

    • marice18
      Senior Member
      • sep
      • 106

      #3
      Gracias Marco
      Lo voy a probar y te estoy informando.

      Comentario

      • Member
        • sep
        • 80

        #4
        Re: Anulación Factura SD-FI

        Como están tengo el mism caso, pero las facturas se realizan desde FI y las anulan por la FB08, cuando es parcial las permite anular la Factura y estoy tratando de hacer una validación para el campo REF FACTURA = '' me indique la validación pero no lo hace
        Dimas Daniel Gonzalez Parra
        Contador Publico | Consultor SAP FI
        Avenida Santa Fe | CABA |CP1059
        lic.dimasdaniel@gmail.com

        Comentario

        Trabajando...