IniConvUnidad - Conversion Unidades Stock

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

 

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.

 

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

 

PALABRAS CLAVES


Descargar o Imprimir


¿TE SIRVIÓ ESTE ARTÍCULO?