Traspaso Articulos Inter-Empresas

TRASPASO DE ARTÍCULOS ENTRE EMPRESAS

QUÉ HACE EL PROGRAMA

Este es un programa de migración y sincronización automática de datos de artículos entre empresas del grupo en un ZGEST ERP . El programa realiza un traspaso completo y configurable de datos de artículos y sus relacionados desde una empresa origen a una o más empresas destino, incluyendo sincronización de precios, tarifas, stock, imágenes, factores de conversión y datos web.




RESUMEN EJECUTIVO

TRASPASO ARTICULOS INTER EMPRESAS es una herramienta ETL (Extract-Transform-Load) especializada en sincronizar catálogos de artículos entre múltiples divisiones/empresas de un grupo corporativo. Permite:

  1. Sincronización de Datos Maestros: Artículos, códigos EAN, imágenes
  2. Replicación de Configuración: Tarifas, escandallo, factores de conversión
  3. Actualización Inteligente: Según modelos, filtros contables, grupos estadísticos
  4. Datos Web: Integración completa con tablas web (categorías, características, promociones)
  5. Control Granular: Mediante opciones seleccionables por checkbox
  6. Automatización: Totalmente automatizado mediante tabla de selecciones
  7. Integridad: Transacciones SQL, validación de esquemas, logging detallado

Es esencialmente un replicador inteligente de catálogos de artículos diseñado para entornos multiempresa con requisitos complejos de sincronización selectiva.

 Traspaso de Artículos entre Empresas

Este ejecutable es una herramienta ETL de sincronización de catálogos de artículos entre empresas del grupo dentro del ERP ZGes. En esencia, es un replicador inteligente y selectivo de datos maestros de artículos.


¿Qué hace?

Lee artículos (y todos sus datos relacionados) de una empresa origen y los sincroniza hacia una o más empresas destino, con control granular mediante checkboxes.


Opciones de la pestaña General

Opción

Acción

Artículos según Modelo

Actualiza artículos en destino según su modelo

Tarifas sin cliente

Traspasa tarifas generales

Artículos-Proveedor

Sincroniza relaciones artículo-proveedor

Escandallo

Traspasa descomposición de artículos

Factores de Conversión

Replica factores (con opción de borrado previo)

Imágenes

Traspasa imágenes (fzg580, fzg581)

Grupos Estadísticos

Actualiza C1T, C2T, C3T según filtros (fzg798)

Cuentas Contables

Actualiza cuentas VTA/CPA según filtros (fzg535)

Modificación Ref/EAN/PVP

Traspasa historial de cambios

Envase-Embalaje

Sincroniza tablas fzg102/fzg1021/fzg1022

Opciones de la pestaña Web

Opción

Acción

Stock

Traspasa stock de almacenes públicos (fzg0011)

Idiomas

Descripciones multiidioma (fzg001_idi)

Complementarios / Sustitutivos

Artículos relacionados

Fabricantes/Marcas

Tabla fzg853/fzg8531

Datos Web

Truncate+Insert en fzi001/fzi002/fzi003/fzi004

Acuerdos Comerciales (tipo2)

Tabla fzg317

Promociones

Tabla fzg897

PCOSTE desde almacén 'EO'

Actualiza PNETO/PMP según modelo


Flujo de ejecución

Inicio

 └─ Lee SELECCIONES55 (parámetros guardados)

     └─ Para cada empresa destino de la lista:

         └─ Abre transacción SQL

             ├─ Borra registros coincidentes en destino

             ├─ Inserta datos de origen

             └─ Commit / Rollback si error

 └─ Escribe log en ..\temp2\PROC_ACT_ART_*.txt




FORMULARIO PRINCIPAL - TFORM_MANTENIMIENTO


Opciones básicas de traspaso de artículos:

  • cb_cuentas - Actualizar Cuentas Contables según Filtros
  • cb_modelos - Actualizar Artículos según Modelo
  • cb_tarifas - Traspasar Tarifas sin cliente
  • cb_traspasar_articulos_proveedor - Traspasar Artículos-Proveedor
  • cb_borrar_articulos_proveedor - Borrar previamente Artículos-Proveedor
  • cb_traspasar_escandallo - Traspasar Escandallo
  • Cb_modif - Traspasar Modificación Ref, EAN, PVP
  • cb_borrar_factores_conversion - Borrar Factores de Conversión
  • cb_traspasar_factores_conversion - Traspasar Factores de Conversión
  • cb_traspasar_imagenes - Traspasar Imágenes
  • cb_borrar_imagenes - Borrar Imágenes previamente
  • cb_grupos_est - Actualizar Grupos Estadísticos s/ Filtros
  • cb_excluir_grupos - Excluir Grupos Estadísticos (C1T, C2T, C3T)
  • cb_traspasar_envase_embalaje - Traspasar Envase-Embalaje
  • cb_borrar_envase_embalaje - Borrar Envase-Embalaje
  • Campos editables:
    • edit_lista_empresas_d - Empresas Destino (lista separada por comas)
    • edit_lista_clases - Clases (lista separada por comas)

 Web:

Opciones específicas para datos web:

  • cb_stock - Traspasar Stock (almacenes públicos)
  • cb_idiomas - Traspasar Idiomas Artículos
  • cb_comple - Traspasar Artículos Complementarios
  • cb_susti - Traspasar Artículos Sustitutivos
  • cb_fabricantes - Traspasar Fabricantes/Marcas
  • cb_incidencias - Transferir Incidencias
  • cb_tipo2 - Traspasar Acuerdos Comerciales
  • cb_web - Traspasar Datos Web (vacía DB destino antes)
  • cb_proveedor - Borrar Proveedor de Servicios
  • cb_factores - Actualizar Factores de Conversión según Modelo
  • cb_precios - Actualizar Precio Neto Manual según Modelo
  • cb_coste - Traspasar PCOSTE del almacén 'EO'
  • cb_grupos - Actualizar C1T, C2T, C3T según Modelo
  • Opciones Web independientes:
    • cb_fzi001 - Condiciones Web (fzi001)
    • cb_fzi002 - Categorías (fzi002)
    • cb_fzi003 - Características (fzi003, fzi004)
    • cb_promo - Promociones
  • Campo editable:
    • Edit_lista_tipo2 - Acuerdos Destino (lista)

LÓGICA DE NEGOCIO PRINCIPAL

1. INICIALIZACIÓN Y VALIDACIÓN

2. PROCESO PRINCIPAL: TRASPASAR_EMPRESA()

A. VALIDACIONES PREVIAS:

  • Verifica que no se marque "borrar" sin "traspasar"
  • Valida que máximo 15 empresas/clases
  • Verifica que empresa origen NO esté en empresas destino
  • Verifica opciones condicionales (ej: si modelos=S, debe haber factores/precios/grupos)

B. PREPARACIÓN:

  • Lee lista de empresas destino (campo2_55)
  • Lee lista de clases (campo1_55)
  • Lee opciones de las selecciones almacenadas
  • Crea tabla temporal ##Art5391_NNNNN_usuario para excluir grupos estadísticos

C. INTROSPECCIÓN DE ESQUEMA: Detecta campos disponibles en tablas origen/destino:

  • fzg001 (Artículos)
  • fzg002 (Códigos EAN)
  • fzg0011 (Stock/Almacenes)
  • fzg0012 (Escandallos)
  • fzg0013 (Tarifas)
  • fzg0015 (Artículos-Proveedor)
  • fzg0016 (Factores de Conversión)
  • fzg038_new (Niveles)
  • fzg102, fzg1021, fzg1022 (Envase-Embalaje)
  • fzg580, fzg581 (Imágenes)
  • fzg001_idi (Idiomas)
  • temp_fzg003 (Modificaciones)
  • fzg535 (Filtros de Cuentas Contables)
  • fzg798 (Grupos Estadísticos)
  • fzi001, fzi002, fzi003, fzi004 (Datos Web)
  • fzg277, fzg317, fzg853, fzg8531, fzg807, fzg808 (Datos adicionales)

D. OPERACIONES DE TRASPASO (POR CADA EMPRESA DESTINO):

DENTRO DE UNA TRANSACCIÓN:

  1. TRASPASO DE NIVELES (fzg038_new):
    • Para cada clase seleccionada:
      • Borra niveles clase X, empresa origen en destino
      • Borra niveles clase X, empresa destino en destino
      • Inserta niveles de empresa origen
      • Actualiza empresa destino a empresa destino real
  2. TRASPASO DE ARTÍCULOS (fzg001):
    • Borra artículos coincidentes en destino
    • Inserta artículos de origen
    • Si cb_excluir_grupos: preserva grupos estadísticos originales
  3. TRASPASO DE CÓDIGOS EAN (fzg002):
    • Borra códigos EAN coincidentes
    • Inserta códigos de origen
  4. TRASPASO DE IMÁGENES (fzg581, fzg580):
    • Si borrar: limpia imágenes por clase
    • Si traspasar: elimina duplicadas, inserta de origen
    • Dos tablas: fzg581 (imágenes), fzg580 (imágenes 2)
  5. TRASPASO DE FACTORES DE CONVERSIÓN (fzg0016):
    • Si borrar: elimina factores de la clase
    • Si traspasar: elimina duplicados, inserta de origen
  6. TRASPASO DE ENVASE-EMBALAJE (fzg102, fzg1021, fzg1022):
    • Procesa 3 tablas relacionadas
    • Elimina duplicados antes de insertar
  7. TRASPASO DE DESCOMPOSICIÓN (fzg00102):
    • Artículos descompuestos por niveles
    • Actualiza empresa_stock2_01 en fzg001
  8. TRASPASO DE TARIFAS (fzg0013):
    • Solo tarifas de cliente en blanco
    • Elimina duplicadas, inserta nuevas
  9. TRASPASO DE ARTÍCULOS-PROVEEDOR (fzg0015):
    • Opcional: borrado previo
    • Sincroniza con origen
  10. TRASPASO DE ESCANDALLOS (fzg0012):
    • Artículos descompuestos
    • Elimina duplicados, inserta nuevos
  11. TRASPASO DE COMPLEMENTARIOS (fzg00101) Y SUSTITUTIVOS (fzg00103):
    • Artículos relacionados
    • Sincronización bilateral
  12. TRASPASO DE IDIOMAS (fzg001_idi):
    • Descripciones multiidioma
    • Sincroniza por idioma
  13. TRASPASO DE MODIFICACIONES (temp_fzg003):
    • Historial de cambios (REF, EAN, PVP)
  14. TRASPASO DE STOCK (fzg0011):
    • Solo almacenes públicos
    • Inserta/actualiza inventario
  15. TRASPASO DE COSTES (fzg0011):
    • Si almacén 'EO' tiene PCOSTE en modelos
    • Actualiza PNETO, PMP en destino
  16. TRASPASO DE DATOS WEB:
    • fzi001: Condiciones Web (TRUNCATE + INSERT con IDENTITY)
    • fzi002: Categorías (TRUNCATE + INSERT)
    • fzi003/fzi004: Características (TRUNCATE + INSERT)
    • fzg277: Datos de relación
    • fzg317: Acuerdos comerciales tipo 2
  17. TRASPASO DE FABRICANTES (fzg853, fzg8531):
    • Marcas de origen a destino
  18. TRASPASO DE INCIDENCIAS (fzg807, fzg808):
    • Código de incidencias
  19. TRASPASO DE PROMOCIONES (fzg897):
    • Siempre TRUNCATE + INSERT
    • Tabla de promociones web

E. ACTUALIZACIÓN DE CUENTAS CONTABLES (cb_cuentas)

Para cada filtro en fzg535 de la clase:

  • Lee cuenta VTA, CPA, DEV_VTA, DEV_CPA
  • Actualiza artículos en destino según patrón COD_535
  • Procesa dentro de transacciones individuales

F. ACTUALIZACIÓN DE GRUPOS ESTADÍSTICOS (cb_grupos_est)

Para cada filtro en fzg798 de la clase:

  • Lee GRUPO, FAMILIA, SUBFAMILIA
  • Actualiza artículos en destino según patrón COD_798

G. ACTUALIZACIÓN SEGÚN MODELOS (cb_modelos)

3a. Borrado de Proveedor de Servicios:

  • Limpia PROV_SERV_01 si cb_proveedor=true

3b. Actualización de Factores de Conversión (cb_factores):

  • Por cada modelo de la clase:
    • Lee factores del modelo
    • Para cada artículo hijo del modelo:
      • Borra factores previos
      • Inserta factores del modelo

3c. Actualización de Precios Neto Manual (cb_precios):

  • Por cada modelo:
    • Copia PNETO_STD_01 a artículos hijo
    • Actualiza PNETO_STD_01

3d. Actualización de Grupos (cb_grupos):

  • Matriz de posiciones (construir_matriz_pos_NEW)
  • Actualiza C1T, C2T, C3T con mascara según nivel de agrupación