Mandato OrderInvoiceStatus

El mandato OrderInvoiceStatus se utiliza cuando se recibe de un sistema de fondo un mensaje XML Update_WCS_OrderStatus cuyo código OrderStatusType tiene un valor OrderInvoice. El mandato actualiza la información relacionada con el estado de facturación de un pedido existente. Sus parámetros, comportamiento y condiciones de excepción son los mismos que los del mandato OrderStatus. La única diferencia entre los dos mandatos es que el mandato OrderInvoiceStatus establece el valor del parámetro orderStatus en el valor predeterminado I, que significa que el pedido se ha facturado si no se ha proporcionado en el mensaje.

Valores de parámetros

sequenceNumber
String. SequenceNumber es el número de secuencia de estado del pedido WCS para su serialización.
lastUpdateTimestamp:
Serie en formato de indicación de fecha y hora. La indicación de fecha y hora de la última actualización del estado de pedido de HCL Commerce para la serialización.
Control de versiones: Cadena "TRUE" o "FALSE". El valor predeterminado es FALSE.
Si su valor es TRUE, se habilitará el control de versiones.

Los parámetros listados a continuación corresponden a las columnas de la tabla ORDSTAT.

orderId: Entero.
El número de referencia de pedido de HCL Commerce tal como se ha definido en la columna ORDERS_ID en la tabla ORDSTAT. Es una clave foránea que hace referencia a la columna ORDERS_ID de la tabla ORDERS.
merchantOrderNumber: Cadena, obligatorio.
Número de pedido generado en el sistema de fondo según se define en la columna OSMORDER.
currency: Serie
El tipo de moneda ISO 4217 en el que está expresado el precio, según se define en la columna OSCPCUR.
priceTotal: BigDecimal(20,4)
El precio total de los productos del pedido, según se define en la columna OSPRTOT.
taxTotal: BigDecimal(20,4)
El total de impuestos del pedido, según se define en la columna OSTXTOT.
shippingTotal: BigDecimal(20,4)
El total de los costes de envío del pedido, según se define en la columna OSSHTOT.
shipingTaxTotal: BigDecimal(20,4)
El total de los impuestos aplicados a los costes de envío del pedido, según se define en la columna OSSHTXTOT.
orderStatus: Serie
El estado del pedido, según se define en la columna OSSTATUS.
placeDateTime: Indicación de fecha y hora
La fecha en que se ha formalizado realmente el pedido, según se define en la columna OSPLTIME.
requestShipDateTime: Indicación de fecha y hora
La fecha en que se ha solicitado el envío del pedido, según se define en la columna OSRSTIME.
scheduleShipDateTime: Indicación de fecha y hora
La fecha en que se ha planificado el envío del pedido, según se define en la columna OSSSTIME.
actualShipDateTime: Indicación de fecha y hora
La fecha en que se ha enviado realmente el pedido, según se define en la columna OSASTIME.
invoiceDateTime: Indicación de fecha y hora
La fecha en que se ha facturado el pedido, según se define en la columna OSINVTIME.
invoiceValue: BigDecimal(20,4)
El valor neto de facturación del pedido según se define en la columna OSINVVAL.
shipCondition: Serie
Código para designar si se aceptará el envío parcial del pedido según se define en la columna OSSCOND. 'SC': Envío completo, 'SP': Envío parcial.
shippingModeFlag: Serie
El código que indica que la dirección y la modalidad de envía están en el nivel de pedido o en el nivel de artículo del pedido, según se define en la columna OSSMFLAG. 'O': Nivel de pedido; 'I': Nivel de elemento.
comment: Serie
Los comentarios sobre el estado del pedido, según se define en la columna OSCMNT.
field1: Entero
El primer campo de personalización de estado del pedido como se define en la columna FIELD1.
field2: BigDecimal(15,2)
El segundo campo de personalización de estado del pedido como se define en la columna FIELD2.
field3: Serie
El tercer campo de personalización de estado del pedido como se define en la columna FIELD3.
elementos: Vector de tabla de totales de control.
Cada tabla de totales de control representa a los parámetros de un artículo.

Comportamiento

  • El primer estado de pedido de un pedido debe tener especificados orderId y merchantOrderNumber.
  • Comprueba si el pedido especificado en orderId existe en la tabla ORDERS.
  • Si hay información de serialización disponible, como por ejemplo, los parámetros sequenceNumber y lastUpdateTimestamp, comprueba si los valores son más recientes que los que ya existen en la tabla ORDSTAT; si no es así, no se lleva a cabo ninguna actualización.
  • Crea o actualiza una fila en la tabla ORDSTAT utilizando toda la información suministrada.
  • Si el control de versiones está habilitado y es el primer estado de pedido para el pedido, se creará una nueva fila en la tabla ORDSTAT, de lo contrario se hará una copia del último estado del pedido y su versión (OSVERNBR) se establecerá en el número máximo de la versión existente +1. Se creará una nueva fila que contiene toda la información proporcionada con el valor OSVERNBR establecido en 0.
  • Actualiza el valor de la columna STATUS de la tabla ORDERS en "G".

Condiciones de excepción

  • El valor de orderId especificado no es un número de pedido válido en la tabla ORDERS.
  • No se ha especificado orderId o merchantOrderNumber en el primer estado de pedido para un pedido determinado.
  • El valor de orderId y merchantOrderNumber no coinciden con el existente en la tabla ORDSTAT para un pedido determinado en una actualización de estado de pedido posterior.
  • Se proporciona información de serialización y el mensaje de estado de pedido está fuera de secuencia