miércoles, 22 de octubre de 2014

API para obtener el estado de una factura en Payables

Cundo uno quiere obtener el estado de la factura puede tomar referencia a la columna APPROVAL_STATUS_LOOKUP_CODE en la vista  vista AP_INVOICES_V. El siguiente script le demuestra el estado por factura, tener en cuenta que esta vista necesitar inicializar los valores de organización antes de ser ejecutada.


SELECT invoice_num
      ,approval_status_lookup_code
FROM   ap_invoices_v
WHERE  invoice_num = '&INVOICE_NUM';


Si uno compara la vista AP_INVOICES_V con la  tablAP_INVOICES_ALL esta columna  no existe debido a que el objeto vista AP_INVOICES_V   obtiene el valor por un API llamado AP_INVOICES_PKG.GET_APPROVAL_STATUS. El siguiente sctript demuestra como usar el API usando la tabla de facturas de Cuentas por Pagar.

select apps.ap_invoices_pkg.get_approval_status
            (
             i.invoice_id
            ,i.invoice_amount
            ,i.payment_status_flag
            ,i.invoice_type_lookup_code
            ) approval_status
      ,invoice_num
from   ap_invoices_all i
where  invoice_num = '&INVOICE_NUM';

Otro forma de obtener  el estado de  una factura es consultando la tabla de  Distribuciones AP_INVOICE_DISTRIBUTIONS_ALL . La  columna MATCH_STATUS_FLAG contiene un valor que determina el estado de cada distribución los cuales pueden ser:

A - Validado 
N o nula - Nunca validado 
T - Necesita Revalidación 

select distinct match_status_flag
  from ap_invoice_distributions_all
  where invoice_id =&invoice_id;

Tener en cuenta lo siguiente: 

Validado
Si todas las distribuciones de factura tienen un MATCH_STATUS_FLAG = A

Nunca Validado
Si todas las distribuciones de factura tienen un MATCH_STATUS_FLAG = null o N

Necesita Revalidación
Si una o mas filas contiene retenciónes de AP_HOLDS.  
Si alguna de las distribuciones de factura tienen un MATCH_STATUS_FLAG =
Si las distribuciones de factura tienen valores mixtos(A y N).

No hay comentarios:

Publicar un comentario