IniConvUnidad - Conversion Unidades Stock
Resumen
INTRODUCCIÓN
Convierte una cantidad entre la unidad de stock primaria (contidod) y la unidad secundaria
(contidod2) del artículo, tomando como referencia el registro de stock que corresponda (por
título/deposito y opcionalmente por lote, bulto/identidad, ubicación y estado).
INFORMACIÓN GENERAL
Nombre del servicio: IniConvUnidad
Clase: IniConvertUnidadBean
JNDI: nodum/servicios/stock/ini/IniConvertUnid
Tipo: Inicialización
Módulo: Básicos
Modo de ejecución: Directo
Repetitivo: No
PARÁMETROS DE ENTRADA
| Parametro | Literal |
| CodArticulo | Codigo de Articulo |
| CodTit | Codigo de Titular |
| PorLote | S = Filta por Lote N= No filtra |
| NroLote | Numero Lote si se filtra por lote |
| PorBulto | S = Filtra Por Bulto N= No filtra |
| Codidentidad | Condicion Bulto si se filtra por bulto |
| PorUbicacion | S = Filtra Por Ubicacion N = No filtro |
| CodUbicacion | Codigo Ubicacion |
| Cantidad | Cantidad que se va a convertir |
Detalle
FORMATO DE SALIDA
Cantidad resultado de la conversión (double).
LÓGICA INTERNA
El servicio elige una tabla de stock según los flags:
1. PorUbicacion = S -> sa_stockubi
2. PorLote = S y PorBulto = N >sa_stocklote
3. PorBulto = S (con o sin PorLote) ->sa_stockident
4. Ninguno de los anteriores -> sa_stkxtit (por título)
Condiciones siempre incluyen cod_articulo y cod_tit; y opcionalmente nro_lote, cod_identidad,
cod_ubicacion, cod_estado.
Se consulta la tabla elegida con:
SELECT cantidad, cantidad2
FROM
WHERE
(trae la relación unidad primaria . unidad secundaria vigente para ese artículo y filtro).
Si se pasó CodUnidad, esto es para los casos donde existen más de 9 parámetros en el servicio,
actualmente no es usado en la estándar, pero se aclara:
Se consulta ct_articulos.cod_uni_stk2.
Si CodUnidad == cod_uni_stk2= se convierte hacia la unidad secundaria (cantidad2).
Si CodUnidad != cod_uni_stk2 = se convierte hacia la unidad primaria (cantidad).
Si no se pasó CodUnidad por defecto hacia secundaria (misma rama que CodUnidad ==
cod_uni_stk2].
Fórmulas (con redondeo Redondeo decimales; default 3):
Hacia unidad secundaria (cantidad > cantidad2):
resultado = Cantidad * (cantidad2 / cantidad)
Caso exacto: si Cantidad == cantidad = retorna cantidad2.
Hacia unidad primaria (cantidad2 > cantidad):
resultado = Cantidad * (cantidad / cantidad2)
Caso exacto: si Cantidad == cantidad2 = retorna cantidad.
Si el denominador es 0 o no hay filas = 0.
Detalle Técnico
EJEMPLO
En nuestra fuente de desarrollo contamos con varios formularios que usan este servicio ejmplo:
TbsuMovStkAF
CodArticulo = VEH0001
CodTit = 0001
PorLote = S
NroLote = 02082019
PorBulto = N
Codldentidad = 0
PorUbicacion = N
CodUbicacion = 0
Cantidad = 1
