Está en la página 1de 4

Después de realizar la cobranza, proseguir con la siguiente Validación.

(Hay un Form : grabar_cobranza,


no se si se llamaría después de ello, necesitaría debuggear,
para validar

Este nuevo Form seria: Liberar_pedido_compensado)

 Para tomar el valor del de factura, según el documento comercial ingresado en el txt.

Si t_det-docconta(2) inicia con '21'.


Ir a tabla BSAD con campos BUKRS='PR01', KUNNR=t_det-cliente, BELNR=t_det-
docconta
Tomar: BSAD-BUKRS,
BSAD-VBELN (fact_txt)

Ingresa:
BELNR=2100000046
KUNNR=0010433738
Sale:
BSAD-VBELN =fact_txt=90148167

 Tomar el pedido para recorrer el flujo de facturas.

Cruzar BSAD-VBELN versus VBFA-VBELN, mientras VBTYP_V=’C’.


Tomar VBFA-VBELV

Sale:
VBFA-VBELV =120073405

Cruzar VBFA-VBELV versus VBAK-VBELN.


Tomar: VBAK-VBELN (Pedido).
VBAK-NETWR (monto_pedido)

Cruzar VBAK-VBELN versus FPLA-VBELN.


(si cruza continuar con las otras líneas, si no, salir del proceso)

Sale:
VBAK-VBELN=Pedido=120073405
VBAK-NETWR=monto_pedido=8,286.83

 Tomar las facturas que no sean anuladas, que están dentro del pedido, para revisar si
están Compensadas.
Cruzar VBAK-VBELN versus VBRP-AUBEL
(si cruza continuar con las otras líneas, si no, salir del proceso)

Tomar valores de VBRP-AUBEL.

Cruzar VBRP-AUBEL versus VBRK- VBELN, mientras VBRK-FKART es igual a


'ZFCA' o 'ZDCA' o 'ZBOL' o 'ZBCA' y VBRK-ZTERM = 'Z001' o 'Y001'.
Tomar VBRK-VBELN (Fact_pedido)

Cruzar VBAK-VBELN (considerar 10 dígitos, si faltan, adicionar ceros adelante) versus


VBRK-ZUONR, mientras VBRK-FKART es igual a 'ZFCA' o 'ZDCA' o 'ZBOL' o 'ZBCA' y
VBRK-ZTERM = 'Z001' o 'Y001'.
Tomar VBRK-VBELN (Fact_pedido)

Ejemplo, VBAK-VBELN es 30022998 , deberá ingresar como 0030022998 ya que en


VBRK-ZUORN es 0030022998

Ingresa:
VBRK-ZUORN =0120073405 (son 10 dígitos, agrega un cero adelante)
Sale:
VBRK-VBELN=Fact_pedido= 90148167, 90148171

 Tomar Facturas que están compensadas.

Cruzar VBRK-VBELN versus BSAD-VBELN, Tomar el valor que cruza.


Tomar BSAD-VBELN (Fact_compen)

Sale:
BSAD-VBELN=Fact_compen=90148167, 90148171

 Tomar Plan de Facturación de facturas compensadas

Cruzar BSAD-VBELN versus VBRP-VBELN.


Tomar: VBRP-FPLNR (plan_compen)
VBRP-FPLTR (posicion_plan_com)

Sale:
VBRP-FPLNR=plan_compen VBRP-FPLTR=posicion_plan_com
0000215554 1
0000215555 1
0000215556 1
0000215557 1
0000215554 2
0000215555 2
0000215556 2
0000215557 2
 Tomar del plan de facturación las posiciones e importes, según Factura

Cruzar VBRP-FPLNR y VBRP-FPLTR versus FPLT-FPLNR y FPLT-FPLTR


Tomar: FPLT-TETXT (ade_sal)
FPLT-FAKWR (monto_ade_sal)

FPLT-TETXT=ade_sal FPLT-FAKWR=monto_ade_sal
0017 793.98
0018 793.97
0017 1,364.83
0018 1,364.83
0017 876.92
0018 876.92
0017 1,107.69
0018 1,107.69
o Aca valida según Adelanto 0017

Si FPLT-TETXT=0017
Sumar: Ade_com_0017= Ade_com_0017+FPLT-FAKWR
Sale: Ade_com_0017= 4,143.42
Fin Si.

Dividir : Por_com_0017= (Ade_com_0017 / VBAK-NETWR (monto_pedido))*100


Sale: Por_com_0017=(4,143.42/8,286.83)*100=50

o Aca valida según Adelanto 0018

Si FPLT-TETXT=0018
Sumar: Sal_com_0018= Sal_com_0018+FPLT-FAKWR
Sale: Sal_com_0018= 4,143.41
Fin Si.

o SELECT SINGLE dbpay


INTO lv_dbpay
FROM knkk
WHERE kunnr = lv_kunnr
AND kkber = 'AACD'.
IF lv_dbpay = space.
lv_dbpay = '50'.
ENDIF.

Si Sal_com_0018=0

Si Por_com_0017>= lv_dbpay.
t_order_header_in-dlv_block = 'Z2'.
Sino
t_order_header_in-dlv_block = 'Z1'.
Fin Si.
Fin Si.

Sumar:
Total_0017_0018= Ade_com_0017 + Sal_com_0018
Sale: Total_0017_0018=8,286.83

Si Total_0017_0018>= VBAK-NETWR (monto_pedido)

t_order_header_in-dlv_block = ''.

Fin si.

Para este caso, pasar a vacio

También podría gustarte