馃摑 Validaciones de RMAs externos, detalle de las validaciones

La opci贸n de "Validaciones de RMAs externos" incorpora una serie de controles para asegurar la coherencia e integridad de la informaci贸n de los RMAs creados desde procesos externos a la propia aplicaci贸n.

1. Selecci贸n de Datos (Criterios de Inicio y Filtros)

En el inicio del proceso, los RMAs a validar se seleccionan en funci贸n de los siguientes criterios:


2. Nomenclatura T茅cnica del Proceso

Para fijar la nomenclatura, se asigna un nombre a cada registro del proceso:

Nomenclatura Descripci贸n
Cabecera de validaci贸n Registro que aglutina las validaciones de una serie de RMAs localizados seg煤n unos filtros.
Detalle de validaci贸n Registro de validaci贸n de una cabecera de RMA.
Subdetalle de validaci贸n Registro de validaci贸n de una l铆nea de RMA.

馃殌 Proceso de Creaci贸n de Validaciones de RMAs

Cuando se ejecuta el proceso de creaci贸n de Validaciones, el programa realiza los siguientes pasos:

A. Localizaci贸n y Filtrado de Documentos

  1. Se leen todos los documentos aplicando los siguientes filtros:

    • Fechas, series y motivos de detenci贸n definidos en la cabecera.
    • Las series deben ser de pedidos de ventas (soporte=PV).
    • Las series deben ser de tipo RMA.
    • Los documentos no pueden estar traspasados (deben estar pendientes o detenidos).
  2. Para cada RMA encontrado, se graba un registro de "detalle de validaci贸n".

B. Creaci贸n del "Detalle de Validaci贸n" (Validaciones a nivel de Cabecera de RMA)

Al crear el registro de "detalle de validaci贸n", se ejecutan los siguientes pasos:

  1. Se busca en la tabla cialdocorel un registro que relacione el RMA en proceso con un "pedido de venta".
  2. Si no se encuentra el "pedido de venta":
    • Se marca el "detalle de validaci贸n" con error y se finaliza la validaci贸n del detalle.
    • EXCEPCI脫N: Si el detalle est谩 marcado con "Permitir rehacer con error", NO se marca el error y el proceso contin煤a.
  3. Se asigna el "pedido de venta" al "detalle de validaci贸n".
  4. Se busca en las validaciones hist贸ricas para saber si existe alg煤n RMA anterior del mismo pedido. Si lo hay, se marca el "detalle de validaci贸n" con error y se contin煤a.
    • EXCEPCI脫N: Si la validaci贸n de RMA antigua tiene marcado el indicador "Pedido repetido", no se considera como error.
  5. Si la cuenta del RMA es diferente de la cuenta del "Pedido de Venta", se marca el "detalle de validaci贸n" con error y se contin煤a.
  6. C谩lculo del % de Descuento Te贸rico:
    • Se calcula el tanto por ciento de "descuento te贸rico" del "pedido de venta" (Importe de los "productos de tipo descuento" respecto al total del pedido excluyendo: productos descuento, l铆neas de kit, y productos no stockables que no sean kits).
    • El porcentaje se graba en el "detalle de validaci贸n".
  7. Si el importe total del RMA es cero o positivo, se marca el "detalle de validaci贸n" con error y se contin煤a.
    • EXCEPCI脫N: Si el detalle est谩 marcado con "Permitir rehacer con error", NO se marca el error y se contin煤a.
  8. C谩lculo del Importe del Pedido:
    • Se calcula el importe del "pedido de venta" (sumando l铆neas excluyendo l铆neas de kit y "productos a excluir").
    • Se asigna este importe al "detalle de validaci贸n" como "Importe del pedido".
  9. B煤squeda de Documentos Relacionados:
    • Se buscan por trazabilidad sobre el "pedido de venta" los albaranes pendientes y las facturas (deben ser del mismo cliente para excluir reclamaciones de transporte).
    • Se asignan los totales de albaranes pendientes y facturas (separando positivos de negativos) al "detalle de validaci贸n".
  10. Validaci贸n de Devoluciones Totales:
    • Se calcula el Total de Devoluciones Hechas (suma del RMA en proceso, albaranes pendientes negativos y facturas negativas) en valor absoluto.
    • Si el total de devoluciones supera el total del pedido, se marca el "detalle de validaci贸n" con error y se contin煤a.
    • EXCEPCI脫N: Si el detalle est谩 marcado con "Permitir rehacer con error", NO se marca el error y se contin煤a.

C. Creaci贸n del "Subdetalle de Validaci贸n" (A nivel de L铆nea de RMA)

En caso de que se haya encontrado un "pedido de venta" 煤nico, se crean los registros de "subdetalle de validaci贸n":

  1. Se leen todas las l铆neas del RMA, que no sean l铆neas de kit, y se registran en el "subdetalle de validaci贸n".
  2. CASO ESPECIAL: Si el producto de la l铆nea de RMA es un "producto autovalidado", se marca el "subdetalle de validaci贸n" con el indicador de "autovalidada".

馃攷 Proceso de Validaci贸n de los RMAs

Sobre una "cabecera de validaci贸n" se lanza el proceso de validaci贸n, que ejecuta los siguientes pasos:

A. Preparaci贸n y Filtrado

  1. Se leen los registros de "detalle de validaci贸n", excluyendo aquellos que tengan un error en la creaci贸n.
    • EXCEPCI脫N: Si el detalle est谩 marcado con "Permitir rehacer con error", s铆 se procesar谩 (ya que no se marc贸 como error durante la creaci贸n).
  2. Para cada "detalle de validaci贸n", se leen todos los registros de "subdetalle de validaci贸n" relacionados.

B. Determinaci贸n de Reglas Generales

Para los "subdetalles de validaci贸n":

  1. Se calcula si todos los "subdetalle de validaci贸n" tienen el indicador de "autovalidado".
  2. Se calcula si existe alg煤n "producto que fuerza el resto del RMA a precio cero".
  3. Si todos los "subdetalles" son autovalidados, se marcan todos con el indicador de "Asignar factura auto-validada".
  4. Si hay alg煤n "producto que fuerza el RMA a precio cero", se marcan todos los "subdetalles" con el indicador de "Asignar filtro productos precio 0".

C. Validaci贸n de Cada "Subdetalle" (Excluyendo los ya vinculados)

Se ejecuta el proceso de validaci贸n de cada subdetalle:

  1. Si el "subdetalle" tiene activo el indicador de "autovalidado", se finaliza la validaci贸n.
  2. B煤squeda de la L铆nea de Factura:
    • Se busca una l铆nea de factura con los filtros:
      • Documento origen: el "pedido de venta".
      • Cuenta: la del "pedido de venta".
      • Producto y combinaci贸n: los del "subdetalle".
      • Cantidad: positiva estrictamente.
      • No ser l铆nea de kit.
    • Resultado de la B煤squeda:
    • Si hay m谩s de una l铆nea de factura:
      • Si hay m谩s de una factura: error: "Se ha encontrado m谩s de una l铆nea de factura asociadas a la l铆nea del RMA" y finalizar.
      • Si solo hay una factura: error: "Hay m谩s de una l铆nea del mismo producto en la 煤nica factura encontrada" y finalizar.
    • Si no existe ninguna l铆nea de factura: error: "No se ha encontrado ninguna l铆nea de factura relacionada" y finalizar.
    • La l铆nea de factura encontrada se llama "l铆nea factura del RMA".
  3. Validaciones de Coincidencia de Documentos:
    • Si la cuenta del RMA no coincide con la de la Factura: error: "La CUENTA del RMA no coincide con la de la factura" y continuar.
    • Si la moneda del RMA no coincide con la de la Factura: error: "La MONEDA del RMA no coincide con la de la factura" y continuar.
  4. B煤squeda y Totalizaci贸n de RMAs Anteriores:
    • Se leen todas las l铆neas de RMAs relacionadas con la "l铆nea factura del RMA" (tipo origen: R+D, tipo doc origen: FV, documento origen: la factura del RMA, l铆nea origen: la l铆nea de factura del RMA, cantidad: positiva y excluyendo la l铆nea del RMA en curso).
    • Se totalizan las cantidades y los importes de los "RMAs anteriores".
  5. Validaciones de Precio y Descuento Cero:
    • Si el importe de la l铆nea de RMA en curso es positivo, se finaliza la validaci贸n.
    • Si el precio de la l铆nea de RMA en curso no es cero, y el producto no es uno de los que "fuerzan precio cero": error: "El precio de la l铆nea de RMA deber铆a ser 0 porque existen productos que fuerzan el resto del RMA a precio 0" y continuar.
  6. Validaciones Espec铆ficas (para productos estockables o cabeceras de Kit):
    • Si el producto no es de "precio 0 forzado", y tiene precio o descuento, se valida que el precio del RMA sea parecido al precio de la factura (diferencia m谩xima seg煤n el "importe m谩ximo de descuadre de precio"). Si no es correcto: error: "El PRECIO del RMA est谩 fuera del rango respecto al precio de la factura".
    • Si la cantidad de la l铆nea del RMA (en valor absoluto) sumada a la cantidad total de todos los "RMAs anteriores" es superior a la cantidad de la factura: error: "La CANTIDAD del RMA supera la cantidad total facturada".
    • Si el producto no es de "precio 0 forzado", tiene precio o descuento, existe un % de descuento te贸rico, y el descuento del RMA es inferior al del % te贸rico: error: "El descuento es inferior al descuento te贸rico del pedido".
  7. Validaciones Espec铆ficas (para productos NO estockables NI cabeceras de Kit):
    • Si el importe de la l铆nea del RMA (en valor absoluto) sumado al importe total de todos los "RMAs anteriores" es superior al importe de la factura: error: "El importe del RMA supera el importe total facturado".
  8. Validaciones de Impuestos:
    • Si el % de IVA de la l铆nea del RMA es diferente del % de IVA de la l铆nea de factura: error: "El % IVA del RMA no coincide con el de la factura".
    • Si el % de recargo de la l铆nea del RMA es diferente del % de recargo de la l铆nea de factura: error: "El % REC del RMA no coincide con el de la factura".
  9. Validaci贸n de Importes Totales:
    • Se leen todas las l铆neas de documentos que tienen como origen la l铆nea del "pedido de venta" (filtros: tipo documento: PV+AV+FV, documento origen: "pedido de venta", l铆nea documento origen: "l铆nea pedido de venta").
    • Se suman los importes de las l铆neas encontradas (separando positivos de negativos) para almacenarlo en el registro del "subdetalle".
    • Si el importe de la l铆nea de RMA en valor absoluto, sumado a los totales anteriores, es positivo: error: "La suma de importes es negativa".
  10. Validaci贸n de la Serie de Albaranaje:
    • Se lee la serie de la "l铆nea de factura del RMA". Si no tiene serie de albaranes de devoluci贸n: error: "No se ha encontrado la serie de albaranaje".