HITB Inicializacion - Reporte de Lista de Edicion -¿Como se calcula la columna de After Reset?
Hola,
Recientemente tuve un caso donde nos pedian explicar como es que GP realiza el cálculo de la columna "After Reset" que aparece en el reporte de Lista de Edicion que se muestra al momento de ejecutar el paso 3 del proceso de inicialización de HITB.
A continuación quiero compartir con ustedes un PSEUDOCODIGO que explica a un buen nivel de detalle como se llevan a cabo estos cálculos, esperando que esta información les sea de utilidad.
--**************************************************************************************************************************************************************
--HITB - PROCESO DE INICIALIZACION - PASO 3
--REPORTE - HITB Reset Tool Edit List
--COLUMNA: AFTER RESET: --CALCULO DEL VALOR DEL INVENTARIO ACTUAL QUE QUEDARÍA DESPUES DE LA INICIALIZACION
--**************************************************************************************************************************************************************
-------------------------------------------------------------------------------------------------------------------------------------------------------------
--PSEUDO ALGORITMO UTILIZADO PARA EL CALCULO DEL VALOR DEL INVENTARIO
-------------------------------------------------------------------------------------------------------------------------------------------------------------
FOR EACH [Articulos Sin Manufactura] AND --Todos los articulos sin manufactura
[Articulos de Manufactura con Metodo costeo Perpetuos] --Todos los articulos de manufactura con metodos de costeo Perpetuos (LIFO,FIFO,Promedio)
FOR EACH [Recepcion de inventario abierta] --Son todos los registros de la tabla IV10200 de estos artículos donde QTYRECVD <> QTYSOLD
--Articulos con Metodo de costeo LIFO,FIFO Perpetuo
WHEN IV00101.VCTNMTHD in (1,2)
LAYERCOST_CALC =(IV10200.QTYRECVD - IV10200.QTYSOLD) * IV10200.UNITCOST
--Articulos con Metodo de costeo Promedio Perpetuo
WHEN IV00101.VCTNMTHD in (3)
--Si el tipo de cantidad es OnHand
IF IV10200.QTYTYPE = 1 THEN
LAYERCOST_CALC =(IV10200.QTYRECVD - IV10200.QTYSOLD) * IV00101.CURRCOST
--Cualquier otro tipo de cantidad (2:Returned,3:In Use, 4:In Service, 5:Damaged)
ELSE
LAYERCOST_CALC =(IV10200.QTYRECVD - IV10200.QTYSOLD) * IV10200.UNITCOST
--Articulos con Metodo de costeo FIFO,LIFO Periodicos (costo estandar)
WHEN IV00101.VCTNMTHD in (4,5)
LAYERCOST_CALC =(IV10200.QTYRECVD - IV10200.QTYSOLD) * IV00101.STNDCOST
FOR EACH [Articulos de Manufactura con costo Estandar] --Son todos los articulos de manufactura que se encuentran en la tabla "ICIV0323-IC_IV_STANDARD" y tienen costo estandar.
FOR EACH [Recepcion de inventario abierta] --Son todos los registros de la tabla IV10200 de estos artículos donde QTYRECVD <> QTYSOLD
WHEN IV00101.VCTNMTHD in (4,5) THEN -- Metodo de costeo FIFO, LIFO Periodic
--MFG Material cost, MATCOSTI_1 used
LAYERCOST_CALC = (IV10200.QTYRECVD - IV10200.QTYSOLD) * (ICIV0323.MATCOSTI_1)
--This is for the Material Fixed Overhead amount.
IF ICIV0323.MATFIXOHDCOSTI_1 <> .00000 THEN --ADD TO THE TOTAL COST
LAYERCOST_CALC = LAYERCOST_CALC + (IV10200.QTYRECVD - IV10200.QTYSOLD) * (ICIV0323.MATFIXOHDCOSTI_1)
--This is for the Labor Costs (LABCOSTI_1).
IF ICIV0323.LABCOSTI_1 <> .00000 THEN --ADD TO THE TOTAL COST
LAYERCOST_CALC = LAYERCOST_CALC + (IV10200.QTYRECVD - IV10200.QTYSOLD) * (ICIV0323.LABCOSTI_1)
--This is for the Labor Fixed Overhead (LABFIXOHDCOSTI_1)
IF ICIV0323.LABFIXOHDCOSTI_1 <> .00000 THEN --ADD TO THE TOTAL COST
LAYERCOST_CALC = LAYERCOST_CALC + (IV10200.QTYRECVD - IV10200.QTYSOLD) * (ICIV0323.LABFIXOHDCOSTI_1)
--This is for the Labor Variable Overhead costs (LABVAROHDCOSTI_1)
IF ICIV0323.LABVAROHDCOSTI_1 <> .00000 THEN --ADD TO THE TOTAL COST
LAYERCOST_CALC = LAYERCOST_CALC + (IV10200.QTYRECVD - IV10200.QTYSOLD) * (ICIV0323.LABVAROHDCOSTI_1)
--This is for the machine cost (MACHCOSTI_1).
IF ICIV0323.MACHCOSTI_1 <> .00000 THEN --ADD TO THE TOTAL COST
LAYERCOST_CALC = LAYERCOST_CALC + (IV10200.QTYRECVD - IV10200.QTYSOLD) * (ICIV0323.MACHCOSTI_1)
--This is for the Machine Fixed Overhead cost (MACHFIXOHDCOSTI_1)
IF ICIV0323.MACHFIXOHDCOSTI_1 <> .00000 THEN --ADD TO THE TOTAL COST
LAYERCOST_CALC = LAYERCOST_CALC + (IV10200.QTYRECVD - IV10200.QTYSOLD) * (ICIV0323.MACHFIXOHDCOSTI_1)
--This is for the Machine Variable Overhead costs (MACHVAROHDCOSTI_1)
IF ICIV0323.MACHVAROHDCOSTI_1 <> .00000 THEN --ADD TO THE TOTAL COST
LAYERCOST_CALC = LAYERCOST_CALC + (IV10200.QTYRECVD - IV10200.QTYSOLD) * (ICIV0323.MACHVAROHDCOSTI_1)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
--CUENTAS CONSIDERADAS EN EL CALCULO DEL COSTO
-------------------------------------------------------------------------------------------------------------------------------------------------------------
*Los costos se sumarizan por cuenta, la cuenta en primera instancia se toma de la tarjeta del artículo-IV00101,
si no viene configurada ahi, se toma de la tabla "Maestro de cuentas-SY01100"
En el caso de costos de manufactura las cuentas se toman de la tabla "CT00102-IC_COST_IV_Item_MSTR"
*La cuenta utilizada, depende del tipo de cantidad
CASE
WHEN IV10200.QTYTYPE = 1 THEN
CASE WHEN IV00101.IVIVINDX = 0 THEN (SELECT ACTINDX FROM SY01100 WHERE SERIES = 5 and PTGACDSC = 'Inventory Control')
ELSE IV00101.IVIVINDX
END
WHEN IV10200.QTYTYPE = 2 THEN
CASE WHEN IV00101.IVRETIDX = 0 THEN (SELECT ACTINDX FROM SY01100 WHERE SERIES = 5 and PTGACDSC = 'Inventory Returns')
ELSE IV00101.IVRETIDX
END
WHEN IV10200.QTYTYPE = 3 THEN
CASE WHEN IV00101.IVINUSIX = 0 THEN (SELECT ACTINDX FROM SY01100 WHERE SERIES = 5 and PTGACDSC = 'In Use')
ELSE IV00101.IVINUSIX
END
WHEN IV10200.QTYTYPE = 4 THEN
CASE WHEN IV00101.IVINSVIX = 0 THEN (SELECT ACTINDX FROM SY01100 WHERE SERIES = 5 and PTGACDSC = 'In Service')
ELSE IV00101.IVINSVIX
END
WHEN IV10200.QTYTYPE = 5 THEN
CASE WHEN IV00101.IVDMGIDX = 0 THEN (SELECT ACTINDX FROM SY01100 WHERE SERIES = 5 and PTGACDSC = 'Damaged')
ELSE IV00101.IVDMGIDX
END
ELSE 0
END, --IVIVINDX
*Para el caso los costos de manufactura, las cuentas se toman de:
CASE
WHEN [MFG Material cost] THEN [MISMAS CUENTAS QUE PARA ARTICULOS SIN MANUFACTURA, VER TABLA LOGICA ARRIBA]
WHEN [Material Fixed Overhead cost] & IV10200.QTYTYPE = 1 THEN CT00102.ICIVIMATOHIXI
WHEN [Material Variable Overhead cost] & IV10200.QTYTYPE = 1 THEN CT00102.ICIVINVMATOHVARIX_I
WHEN [Labor Costs] & IV10200.QTYTYPE = 1 THEN CT00102.ICIVILIXI
WHEN [Labor Fixed Overhead cost] & IV10200.QTYTYPE = 1 THEN CT00102.ICIVILABOHIXI
WHEN [Labor Variable Overhead cost] & IV10200.QTYTYPE = 1 THEN CT00102.ICIVINVLABOHVARIX_I
WHEN [Machine cost] & IV10200.QTYTYPE = 1 THEN CT00102.ICIVIMXI
WHEN [Machine Fixed Overhead cost] & IV10200.QTYTYPE = 1 THEN CT00102.ICIVIMACHOHIXI
WHEN [Machine Variable Overhead cost] & IV10200.QTYTYPE = 1 THEN CT00102.ICIVINVMACHOHVARIX_I
END
Comments
- Anonymous
January 07, 2016
Si me ha sido de utilidad la información, gracias.