Problema / Problem:
Al momento de Guardar una Factura proveedor que tienen Matching con recibos de almacén y no marca el siguiente error QADFIN-59938 dira que el recibo ya esta registrado en otra factura.
We got the error QADFIN-59938 when we try to save a Supplier Invoice in the Matching process.
We got the error QADFIN-59938 when we try to save a Supplier Invoice in the Matching process.
Versión / Version :
QAD EE 2013, 2014,2016
Solución / Solve
Primero validar que no este en matching en ninguna otra factura de proveedor.
Dos se debe validar cuantos decimales tienen la cantidad recibida a hacer matching y comparar contra la cantidad de decimales que maneja la entidad, esto lo validan en la Vista Entidad 36.1.1.2.3
Este error ocurre normalmente cuando recibimos parcialidades y tenemos factores de conversión muy pequeños o recibimos con muchos decimales en la opción 5.13.1
First we have to review if the receivers are not matching in other supplier invoice, Then look how many decimals have our receivers and how many decimals have our entity if the receiver have more, we need to run the next program.
This issue happen when we receive parcial quantity or when we have a very huge conversion factor
First we have to review if the receivers are not matching in other supplier invoice, Then look how many decimals have our receivers and how many decimals have our entity if the receiver have more, we need to run the next program.
This issue happen when we receive parcial quantity or when we have a very huge conversion factor
/*xxrounap.p Programa para eliminar decimales para el registro de AP matching
Ana Zamora
30 Oct 2017*/
define var dec_string as char no-undo.
define var lugar as integer no-undo.
define var num_Dec as char no-undo.
for each pvo_mstr where pvo_domain = "domain"
and ( pvo_internal_ref = 'recibo ') no-lock:
for each pvod_det where pvod_domain = pvo_domain and
pvod_id = pvo_id:
find first APMatchingLn where
APMatchingLn.PvoDomain = pvod_det.pvod_domain and
APMatchingLn.PvoID = pvod_det.pvod_ID and
APMatchingLn.PvodLineID = pvod_det.pvod_id_line no-lock no-error.
if avail APMatchingLn Then next.
dec_string = string(pvod_trans_qty) .
lugar = INDEX(DEC_STRING,".").
display pvod_trans_qty.
IF lugar > 0 then do :
num_dec = substring(dec_string,lugar,LENGTH(dec_string) - lugar ) .
if LENGTH(num_dec) > 5 then do: /*Validar cuantos decimales maneja la entidad*/
disp pvod_order
pvod_order_line
pvod_part
pvod_internal_ref
pvod_id
pvod_trans_qty.
pvod_trans_qty = round(pvod_trans_qty,5) . /*cambio de decimales*/
end. /* if LENGTH(num_dec) > 5 */
end. /* IF lugar > 0 */
end. /* for each pvod_det */
end.
Ana Zamora
30 Oct 2017*/
define var dec_string as char no-undo.
define var lugar as integer no-undo.
define var num_Dec as char no-undo.
for each pvo_mstr where pvo_domain = "domain"
and ( pvo_internal_ref = 'recibo ') no-lock:
for each pvod_det where pvod_domain = pvo_domain and
pvod_id = pvo_id:
find first APMatchingLn where
APMatchingLn.PvoDomain = pvod_det.pvod_domain and
APMatchingLn.PvoID = pvod_det.pvod_ID and
APMatchingLn.PvodLineID = pvod_det.pvod_id_line no-lock no-error.
if avail APMatchingLn Then next.
dec_string = string(pvod_trans_qty) .
lugar = INDEX(DEC_STRING,".").
display pvod_trans_qty.
IF lugar > 0 then do :
num_dec = substring(dec_string,lugar,LENGTH(dec_string) - lugar ) .
if LENGTH(num_dec) > 5 then do: /*Validar cuantos decimales maneja la entidad*/
disp pvod_order
pvod_order_line
pvod_part
pvod_internal_ref
pvod_id
pvod_trans_qty.
pvod_trans_qty = round(pvod_trans_qty,5) . /*cambio de decimales*/
end. /* if LENGTH(num_dec) > 5 */
end. /* IF lugar > 0 */
end. /* for each pvod_det */
end.
#knowledgeshating
#qad
Comments
Post a Comment