Miniseries en Inventario - Series Detalladas V02 | Corporate

Modificado el Jue, 20 Nov a 3:26 P. M.

Descripción

En esta nueva versión, el módulo de Inventario incorpora mejoras en el manejo de Series Detalladas, permitiendo trabajar con cantidades, unidades de medida y extensiones de atributos. También se incluye la posibilidad de definir layout para las series. 


Esta funcionalidad aplica a productos que requieren trazabilidad detallada a nivel de unidad o subconjunto.



Configuración inicial

  • El uso de Series Detalladas se activa mediante la configuración del parámetro de ejecución SERIEDETALLADA = “S”
  • Una vez habilitada, los productos incorporan el atributo Utiliza Serie Detallada, cuya activación habilita las validaciones necesarias en las transacciones de inventario:





Funcionamiento general


1. Al activar Series Detalladas en un producto, las transacciones de Inventario publican el place Items Serie Detallada:




2. En este lugar se deben declarar las series asociadas al ítem, asegurando que la suma de sus cantidades coincida con la cantidad del ítem principal. Imágenes de ejemplo:




3. El sistema realiza validaciones automáticas según el tipo de transacción:

  • Ingresos: se valida que las series no existan previamente en el inventario.
  • Transferencias y Egresos: se valida que las series declaradas existan en el inventario.


4. En la Unidad Operativa de Inventario se incorporan vistas para consultar:

  • El listado de Series Detalladas dadas de alta.
  • El detalle de movimientos de cada serie.
  • El Kardex completo de Series Detalladas.


Imágenes de ejemplo para cada caso:













Scripts de importación desde Excel


Se incluyen tres scripts de ejemplo para facilitar la carga masiva de Series Detalladas en transacciones de Inventario. Cada script permite importar la información desde un archivo Excel específico.


Los scripts deben configurarse como métodos de usuario en el ítem de cada tipo de transacción y utilizan archivos Excel con formatos diferenciados según la operación.



1. INGRESO DE INVENTARIO

  • Nombre:  “Importar Series Detalladas en Ingreso de Inventario”.
  • Ámbito: Método de usuario en el Ítem de la Transacción de Ingreso de Inventario.
  • Resultado: importa series nuevas, creando automáticamente el registro de Serie Detallada y su correspondiente ítem dentro de la transacción.
  • Texto
' Importar Series Detalladas en Item de Transaccion de Ingreso de Inventario
' Autor: Claudio Fernandez 2024 enero 17
Sub Main

  set xProducto = self.ReferenciaTipo
  set xCompania = self.PlaceOwner.Compania
  set xUnidadOperativa = self.PlaceOwner.UnidadOperativa
  
  if not xProducto Is Nothing then
    if xProducto.UTILIZASERIEDETALLADA = true then
      xFileName = "C:\TEMP\SeriesDetalladas.xlsx" 

      SendDebug("Inicio Importar Series Detalladas")
        
      Set HojaExcel = CreateObject("Excel.Application")
      HojaExcel.Workbooks.Open xFileName 
  
      xCount = 0
      xFila = 2
      xSeriesImportadas = 0
      While HojaExcel.ActiveSheet.Cells(xFila, 1).Value <> ""
        xCodigo = HojaExcel.ActiveSheet.Cells(xFila, 1).Value
        xDescripcion = HojaExcel.ActiveSheet.Cells(xFila, 2).Value
        xDetalle = HojaExcel.ActiveSheet.Cells(xFila, 3).Value
        xCantidad = HojaExcel.ActiveSheet.Cells(xFila, 4).Value
        set xSerieDetallada = ExisteBO(self, "SERIEDETALLADA", "CODIGO", xCodigo, nil, false, false, " = ")
        if xSerieDetallada is Nothing then
          SendDebug("Creando Serie Detallada código: " & xCodigo)
          set xSerieDetallada = CrearBO("SERIEDETALLADA", self)
          xCompania.EntidadesComp.SERIESDETALLADAS.Add(xSerieDetallada)
          xSerieDetallada.CODIGO = xCodigo
          xSerieDetallada.DESCRIPCION = xDescripcion
          xSerieDetallada.DETALLE = xDetalle
          xSerieDetallada.UnidadOperativa = xUnidadOperativa

          set xItemSerieDetalladaIngreso = CrearBO("ITEMSERIEDETALLADAINGRESO", self)
          self.ITEMSSERIEDETALLADA.Add(xItemSerieDetalladaIngreso)
          xItemSerieDetalladaIngreso.SERIEDETALLADA = xSerieDetallada
          xItemSerieDetalladaIngreso.CANTIDAD = xCantidad
          xSeriesImportadas = xSeriesImportadas + 1
        else
          SendDebug("La Serie Detallada código: " & xCodigo & " ya existe.")
        end if
        xFila = xFila + 1 
      wend

      HojaExcel.Application.Quit
      Set HojaExcel = Nothing
      SendDebug("FIN PROCESO !!!! Series importadas: " & xSeriesImportadas)
    end if 'if xProducto.UTILIZASERIEDETALLADA = true then
  end if 'if not xProducto Is Nothing then
    
end sub


  • Ejemplo de archivo Excel para el ingreso llamado “SeriesDetalladas.xlsx” con el siguiente formato:





2. TRANSFERENCIA DE INVENTARIO

  • Nombre:  “Importar Series Detalladas en Transferencia de Inventario”.
  • Ámbito: Método de usuario en el Ítem de la Transacción de Transferencia de Inventario.
  • Resultado: importa series existentes y las asocia al ítem de transferencia. 
  • Texto:


' Importar Series Detalladas en Item de Transaccion de Transferencia de Inventario
' Autor: Claudio Fernandez 2024 enero 17
Sub Main

  set xProducto = self.ReferenciaTipo
  set xCompania = self.PlaceOwner.Compania
  set xUnidadOperativa = self.PlaceOwner.UnidadOperativa
  
  if not xProducto Is Nothing then
    if xProducto.UTILIZASERIEDETALLADA = true then
      xFileName = "C:\TEMP\SeriesDetalladasTRX.xlsx" 

      SendDebug("Inicio Importar Series Detalladas")
        
      Set HojaExcel = CreateObject("Excel.Application")
      HojaExcel.Workbooks.Open xFileName 
  
      xCount = 0
      xFila = 2
      xSeriesImportadas = 0
      
      While HojaExcel.ActiveSheet.Cells(xFila, 1).Value <> ""
        xCodigo = HojaExcel.ActiveSheet.Cells(xFila, 1).Value
        set xSerieDetallada = ExisteBO(self, "SERIEDETALLADA", "CODIGO", xCodigo, nil, false, false, " = ")
        if not (xSerieDetallada is Nothing) then
          set xItemSerieDetalladaTransf = CrearBO("ITEMSERIEDETALLADATRANSF", self)
          self.ITEMSSERIEDETALLADA.Add(xItemSerieDetalladaTransf)
          xItemSerieDetalladaTransf.SERIEDETALLADA = xSerieDetallada
          xSeriesImportadas = xSeriesImportadas + 1
        else  
          SendDebug("La Serie Detallada código: " & xCodigo & " no existe.")
        end if
        xFila = xFila + 1 
      wend

      HojaExcel.Application.Quit
      Set HojaExcel = Nothing
      SendDebug("FIN PROCESO !!!! Series importadas: " & xSeriesImportadas)
    end if 'if xProducto.UTILIZASERIEDETALLADA = true then
  end if 'if not xProducto Is Nothing then
    
end sub


  • Ejemplo de archivo Excel para la transferencia llamado “SeriesDetalladasTRX.xlsx” con el siguiente formato:




3. EGRESO DE INVENTARIO

  • Nombre:  “Importar Series Detalladas en Egreso de Inventario”.
  • Ámbito: Método de usuario en el Ítem de la Transacción de Egreso de Inventario.
  • Resultado: valida la existencia de la serie y la vincula al ítem de egreso. 
  • Texto:


' Importar Series Detalladas en Item de Transaccion de Egreso de Inventario
' Autor: Claudio Fernandez 2024 enero 17
Sub Main

  set xProducto = self.ReferenciaTipo
  set xCompania = self.PlaceOwner.Compania
  set xUnidadOperativa = self.PlaceOwner.UnidadOperativa
  
  if not xProducto Is Nothing then
    if xProducto.UTILIZASERIEDETALLADA = true then
      xFileName = "C:\TEMP\SeriesDetalladasEGR.xlsx" 

      SendDebug("Inicio Importar Series Detalladas")
        
      Set HojaExcel = CreateObject("Excel.Application")
      HojaExcel.Workbooks.Open xFileName 
  
      xCount = 0
      xFila = 2
      xSeriesImportadas = 0
      
      While HojaExcel.ActiveSheet.Cells(xFila, 1).Value <> ""
        xCodigo = HojaExcel.ActiveSheet.Cells(xFila, 1).Value
        set xSerieDetallada = ExisteBO(self, "SERIEDETALLADA", "CODIGO", xCodigo, nil, false, false, " = ")
        if not (xSerieDetallada is Nothing) then
          set xItemSerieDetalladaEgreso  = CrearBO("ITEMSERIEDETALLADAEGRESO", self)
          self.ITEMSSERIEDETALLADA.Add(xItemSerieDetalladaEgreso)
          xItemSerieDetalladaEgreso.SERIEDETALLADA = xSerieDetallada
          xSeriesImportadas = xSeriesImportadas + 1
        else  
          SendDebug("La Serie Detallada código: " & xCodigo & " no existe.")
        end if
        xFila = xFila + 1 
      wend

      HojaExcel.Application.Quit
      Set HojaExcel = Nothing
      SendDebug("FIN PROCESO !!!! Series importadas: " & xSeriesImportadas)
    end if 'if xProducto.UTILIZASERIEDETALLADA = true then
  end if 'if not xProducto Is Nothing then
    
end sub


  • Ejemplo de archivo Excel para el egreso llamado “SeriesDetalladasEGR.xlsx” con el siguiente formato:







Consideraciones generales

  • La activación de Series Detalladas modifica la operatoria habitual y habilita validaciones obligatorias para garantizar coherencia entre inventario físico y registros del sistema.
  • Las series importadas mediante los scripts deben respetar el formato de los archivos Excel definidos para cada operación.
  • La creación automática de Series Detalladas solo aplica al proceso de Ingreso; Transferencias y Egresos requieren que la serie exista previamente.




_________________________________







¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo