Este artículo trata sobre el objeto «positions» dentro del objeto «Document» (objeto «Document»).
En la sección de descargas del sitio web de RetailForce (Documentación del modelo de objetos.pdf), dentro del directorio de la versión correspondiente, se puede encontrar una descripción completa del RetailForce DOM, así como una descripción de los elementos individuales.
El objeto «positions» contiene información sobre la posición correspondiente del documento.
El objeto «positions» consta de:
- DocumentPositionBase: almacena información básica sobre la posición (independientemente del tipo de posición).
- Información específica del tipo de posición: en función del «tipo» de posición (DocumentPositionType), deben especificarse contenidos diferentes (el tipo de posición define el contenido de la misma).
DocumentPositionsBase
El siguiente objeto contiene datos de ejemplo.
"positions": [
{
"positionNumber": 0,
"positionReference": {
"positionNumber": 0,
"referenceType": "[0] = Cancellation",
"storeNumber": "string",
"terminalNumber": "string",
"documentType": "[0] = Receipt",
"documentNumber": "string",
"documentNumberSeries": "string",
"fiscalDocumentNumber": 0,
"documentGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"documentId": "string",
"documentBookDate": "2023-05-03T11:20:40.057+01:00",
"returnReasonType": "userMistake",
"returnReasonText": "string"
},
"cancellationPosition": true,
"deletedPosition": false,
"type": "[0] = Item",
"additionalFields": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"createDate": "2023-05-03T11:20:40.057+01:00",
"externalIdentifier": [
"string"
],
"user": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"salesPerson": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"FiscalAdditionalFields": {}
}
],El objeto DocumentPositionsBase contiene la siguiente información.
Información de la columna «Tipo»:
- M ... obligatorio / requerido
- M* ... obligatorio / requerido en determinados países o bajo determinadas condiciones
- R ... recomendado
- O... opcional
| Elementos | Tipo | Descripción | |
| PositionNumber | M |
Número de secuencia de la posición.
Nota:
El número de la primera posición es siempre «0».
|
|
| positionReference | O | Referencia a otra posición dentro del documento. Equivalente a «documentReference». | |
| {...} | O | ||
| cancellationPosition | M | «true» si esta posición anula una posición de otro documento; en caso contrario, «false». | |
| DeletedPosition | O | «true» si esta posición se ha eliminado; en caso contrario, «false». | |
| type | M |
especifica el tipo de posición «type» (DocumentPositionType). Enum:
Las explicaciones de los distintos tipos (DocumentPositionTypes) se encuentran a continuación de esta tabla. |
|
| AdditionalFields | O | ||
| {...} | |||
| CreateDate | M | Hora en la que se creó la posición. | |
| ExternalIdentifier | O | ID externo (del sistema anterior), destinado a uso interno, no relevante a efectos de fiscalización. | |
| usuario | O | Datos del usuario (de la caja registradora) que introdujo el artículo en cuestión. | |
| {...} | |||
| SalesPerson | O | Datos del personal de ventas del puesto correspondiente. | |
| {...} | |||
| FiscalAdditionalFields | O | ||
DocumentPositionType
[0] = Partida
El tipo «artículo» (DocumentPositionItem) representa un ítem de venta específico (bien o servicio).
Ejemplo de DocumentPositionItem:
positions": [
{
"itemCaption": "Prime rib steak house style",
"itemShortCaption": "PrimeRibSpec",
"itemSerialNumber": "string",
"discounts": [
{
"discountValue": 1.6900,
"caption": "Regular customer discount",
"discountOrder": 0,
"type": 1,
"typeValue": 10.00,
"promotionKeys": [],
"identifier": null
}
],
"type": 0,
"useSubItemVatCalculation": false,
"subItems": [],
"inHouse": true,
"itemGroupId": "1000",
"itemGroupCaption": "mains",
"costPrice": null,
"itemDateOfEntry": null,
"quantity": 1.0,
"quantityUnit": {
"id": null,
"isoCode": "1"
}
"itemId": "1028",
"itemType": "[0] = Article",
"baseNetValue": 14.08,
"baseGrossValue": 16.90,
"baseTaxValue": 2.82,
"baseTaxValue2": 0,
"gtin": "8718274490558",
"businessTransactionType": 0,
"itemTypeClassification": "[1] = AlcoholicBeverage",
"vatIdentification": 1,
"vatPercent": 20.00,
"vatPercent2": 5,
"additionalTax": {
"additionalTaxType": "alcohol",
"additionalTaxTypeIdentification": "string",
"taxPercent": 0,
"taxValue": 0
},
"netValue": 12.68,
"grossValue": 15.21,
"taxValue": 2.53,
"taxValue2": 0,
"accountingIdentifier": null,
"itemTaxType": null,
"positionNumber": 0,
"positionReference": null,
"cancellationPosition": false,
"deletedPosition": false,
"additionalFields": {},
"createDate": null,
"externalIdentifier": [
"string"
],
"user": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"salesPerson": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"FiscalAdditionalFields": {}
}
],El objeto DocumentPositionItem contiene la siguiente información.
Información de la columna «Tipo»:
- M ... obligatorio / requerido
- M* ... obligatorio / requerido en determinados países o bajo ciertas condiciones
- R ... recomendado
- O... opcional
| Elementos | Tipo | Descripción | |
| ItemCaption | M | Denominación del artículo, descripción del servicio | |
| ItemShortCaption | O | Nombre abreviado del artículo, empleado cuando existen restricciones en la longitud de los caracteres, como en las impresoras fiscales. | |
| ItemSerialNumber | M* |
Número de serie del artículo. Datos del país:
|
|
| descuentos | Detalles de descuentos, reducciones de precio, etc. | ||
| DiscountValue | M |
Importe del descuento / cuantía de la rebaja
Importante:
si DiscountType [1] = descuento, el importe del descuento debe introducirse con 4 decimales.
|
|
| caption | R |
Denominación del descuento Datos del país:
|
|
| DiscountOrder | M* |
Indica el orden en el que se calcula el descuento. El primer descuento que se tiene en cuenta tiene un valor de 0. Debe especificarse si se aplican varios descuentos a un artículo. |
|
| tipo | M |
Tipo de descuento Enum:
|
|
| TypeValue | M |
Valor del descuento (suma de la reducción) en el caso de [0] = Descuento fijo: el DiscountValue (=> DiscountValue = TypeValue) si [1] = Descuento: el porcentaje (p. ej., descuento del 10 %) |
|
| PromotionKeys | O | Claves de promoción: si se utilizan (p. ej., código de cupón) | |
| identificador | O | Identificador adicional para el descuento (puede utilizarse, por ejemplo, para agrupar descuentos en tipos de descuento). | |
| tipo | M | Tipo de posición (DocumentPositionType) | |
| UseSubItemVatCalculation | O | «true» si se debe aplicar el cálculo del Vat de las subpartidas (SubItems) y se debe ignorar el Vat de la partida principal; en caso contrario, «false». | |
| SubItems | O | Detalles de los SubItems. Véase: DocumentPositionType [1] = SubItem | |
| [...] | |||
| inhouse | O | Indica si se trata de una venta interna o externa (true/false). | |
| ItemGroupId | M* |
Indicador de grupo de artículos Datos del país:
|
|
| ItemGroupCaption | O | Denominación del grupo de artículos | |
| CostPrice | O/M* |
Precio unitario del artículo Datos del país:
|
|
| itemDateOfEntry | M* |
Momento de la creación del artículo. Detalles por país:
|
|
| cantidad | M | Información sobre la cantidad del artículo | |
| QuantityUnit | M* |
Especificación de la unidad de medida Datos del país:
|
|
| ID | M* |
Indicación de la unidad de medida. Datos del país:
|
|
| isoCode | M* |
Unidad de medida estándar conforme al código ISO/UCUM. Para obtener más información, consulte el artículo enlazado. | |
| ItemId | M | ID del artículo | |
| ItemType | M* |
Describe el tipo de artículo: bienes o servicios.
Datos del país:
|
|
| BaseNetValue | M* |
Total neto (sin Vat) antes de descuentos o recargos
Importante: se trata de
la suma (neta) de la línea o posición, NO del artículo. Si la cantidad es 2, ¡el BaseNetValue también equivale al precio unitario multiplicado por 2!
|
|
| BaseGrossValue | M* |
Total bruto (IVA incluido) antes de descuentos o recargos
Atención:
suma (bruta) de la línea o posición, NO del artículo. Si la cantidad es 2, ¡el «BaseGrossValue» también es el precio de la unidad multiplicado por 2!
|
|
| BaseTaxValue | M* |
Total del IVA (o suma del primer tipo impositivo) antes de descuentos o recargos
Atención:
suma (del Vat) de la línea o posición, NO del artículo. Si la cantidad es 2, ¡el «BaseTaxValue» también es el precio unitario multiplicado por 2!
Datos del país:
|
|
| BaseTaxValue2 | M* |
Suma del segundo tipo impositivo de la posición antes del descuento o recargo. Datos del país:
|
|
| GTIN | O |
Número global de artículo comercial (GTIN) Datos del país:
|
|
| BusinessTransactionType | M |
Tipo de operación comercial. Enum:
|
|
| ItemTypeClassification |
La propiedad «ItemTypeClassification» puede utilizarse para aplicar una clasificación adicional a un artículo. «ItemTypeClassification» solo puede establecerse si la propiedad «ItemType» se ha fijado en «[0] - Artículo» o en «ItemType»: 0. En el artículo enlazado se puede encontrar información detallada sobre la propiedad «ItemTypeClassification». Las clasificaciones disponibles son las siguientes.
Detalles del país:
|
||
| VatIdentification | M |
ID del tipo de Vat. Se puede consultar mediante GET /api/v1/information/client/{clientId}/getVatIdentification, especificando el tipo de IVA del país correspondiente. |
|
| VatPercent | M |
Tipo de Vat en porcentaje o primer tipo impositivo aplicable al artículo en el país correspondiente. Datos del país:
|
|
| VatPercent2 | M* |
segundo tipo impositivo aplicable al artículo, expresado en porcentaje en el país correspondiente. Datos del país:
|
|
| NetValue | M |
Total neto de la partida (menos cualquier descuento / más recargos), sin Vat. Debe indicarse siempre. |
|
| GrossValue | M |
Total bruto de la partida (menos los descuentos / más los recargos), IVA incluido. Debe indicarse siempre. |
|
| TaxValue | M |
Total del IVA (o suma del primer tipo impositivo) de la partida (menos cualquier descuento / más recargos) Debe indicarse siempre. Datos del país:
|
|
| TaxValue2 | M* |
Suma del segundo tipo impositivo del artículo tras aplicar el descuento o el recargo. Datos del país:
|
|
| AccountingIdentifier | O | Identificador adicional con fines contables (interfaz contable) | |
| ItemTaxType | M* |
Tipo de impuesto de la partida:
Datos del país:
|
|
| PositionNumber | M | Número de posición, comenzando por 0 | |
| positionReference | O | Especificación de un número de posición al que se debe hacer referencia | |
| cancellationPosition | O | «true» si esta posición anula una posición de otro documento; en caso contrario, «false» | |
| CreateDate | O | Hora de registro de la posición | |
[1] = SubItem
Los «subelementos» (DocumentPositionSubItem) permiten detallar la composición de los productos vendidos o las descripciones de los grupos de productos a nivel de artículo.
Ejemplo: Menú = Coca-Cola y hamburguesa.
Los SubItems tienen carácter meramente explicativo y su uso no es obligatorio; asimismo, no ejercen efecto alguno sobre el precio, las ventas ni el impuesto sobre el valor añadido.
[2] = Texto
Se emplea para definir la posición de un texto o un Barcode dentro del documento.
Ejemplo de DocumentPositionText:
positions": [
{
"type": 2,
"text": "Example text",
"barcodeType": code128,
"barcode": "Example text",
"positionNumber": 0,
"positionReference": null,
"cancellationPosition": false,
"deletedPosition": false,
"additionalFields": {},
"createDate": null,
"externalIdentifier": [
"string"
],
"user": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"salesPerson": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"FiscalAdditionalFields": {}
}
],El objeto DocumentPositionText contiene la siguiente información.
Información de la columna «Type»:
- M ... obligatorio / requerido
- M* ... obligatorio / requerido en determinados países o bajo ciertas condiciones
- R ... recomendado
- O... opcional
| Elementos | Tipo | Descripción | |
| tipo | M | Tipo de posición (DocumentPositionType) | |
| texto | O |
Campo de texto libre Datos del país:
|
|
| barcodeType | O |
Indicación del tipo de Barcode Enum:
|
|
| Código de barras | O | Datos del Barcode | |
| PositionNumber | M | Número de posición, comenzando por 0 | |
[3] = Reserva
Las posiciones de reserva (DocumentPositionBooking) se emplean para ingresos, reintegros y ventas de vales multiuso (PayIn, payOut, MultiPurposeVoucher, etc.).
Ejemplo de DocumentPositionBooking:
positions": [
{
"type": 3,
"caption": "Depositg",
"identifier": null,
"businessTransactionType": 11,
"payOutType": null,
"vatIdentification": 4,
"vatPercent": 0.00,
"netValue": 20.00,
"grossValue": 20.00,
"taxValue": 0.00,
"accountingIdentifier": null,
"itemTaxType": null,
"positionNumber": 0,
"positionReference": null,
"cancellationPosition": false,
"deletedPosition": false,
"additionalFields": {},
"createDate": null,
"externalIdentifier": [
"string"
],
"user": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"salesPerson": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"FiscalAdditionalFields": {}
}
],El objeto DocumentPositionBooking contiene la siguiente información.
Información de la columna «Tipo»:
- M ... obligatorio / requerido
- M* ... obligatorio / requerido en determinados países o bajo ciertas condiciones
- R ... recomendado
- O... opcional
| Elementos | Tipo | Descripción | |
| tipo | M | Tipo de posiciones (DocumentPositionType) | |
| legenda | M | Descripción de la posición de reserva | |
| identificador | O | Indicador de ID adicional de la operación contable | |
| BusinessTransactionType | M |
Tipo de transacción comercial. Enum:
|
|
| PayOutType | M* |
Indica el tipo de pago. Obligatorio en determinados países. Valores posibles:
Datos del país:
Nota:
Novedad a partir de DOM v1.2.0 / Client v1.7.6
|
|
| VatIdentification | M |
ID del tipo impositivo del Vat. Se puede consultar mediante GET /api/v1/information/client/{clientId}/getVatIdentification, especificando el tipo de Vat del país correspondiente. |
|
| VatPercent | M | Tipo de Vat en porcentaje | |
| NetValue | M |
Importe neto total de la partida (una vez aplicados los descuentos), sin Vat. Debe indicarse siempre. |
|
| GrossValue | M |
Total bruto de la partida (menos los descuentos que correspondan), IVA incluido. Debe indicarse siempre. |
|
| TaxValue | M |
Importe del Vat de la partida (menos los descuentos, si los hubiera) Debe indicarse siempre. |
|
| AccountingIdentifier | O | Identificador adicional con fines contables (interfaz contable) | |
| ItemTaxType | M* |
Tipo de impuesto de la partida:
Datos del país:
|
|
| PositionNumber | M | Número de posición, comenzando por 0 | |
| positionReference | O | Especificación del número de partida al que se debe hacer referencia | |
| cancellationPosition | O | «true» si esta posición anula una posición de otro documento; en caso contrario, «falso». | |
| DeletedPosition | O | «true» si esta posición se ha eliminado; en caso contrario, «false». | |
| CreateDate | O | Hora de registro de la posición | |
[9] = Subtotal
Posición «Subtotal»
[10] = Total
Posición «Total». Si se emplea «DocumentPositionTotal», debe configurarse siempre como la última posición del documento (el PositionNumber más alto).
Ejemplo de DocumentPositionTotal:
positions": [
{
"type": 10,
"rounding": null,
"baseValue": 200.00,
"value": "200.00",
"discounts": [
{
"discountValue": 1.6900,
"caption": "Regulars discount",
"discountOrder": 0,
"type": 1,
"typeValue": 10.00,
"promotionKeys": [],
"identifier": null
}
],
"caption": "Total",
"positionNumber": 0,
"positionReference": null,
"cancellationPosition": false,
"deletedPosition": false,
"additionalFields": {},
"createDate": null,
"externalIdentifier": [
"string"
],
"user": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"salesPerson": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"FiscalAdditionalFields": {}
}
],El objeto DocumentPositionTotal contiene la siguiente información.
Información de la columna «Type»:
- M ... obligatorio / requerido
- M* ... obligatorio / requerido en determinados países o bajo ciertas condiciones
- R ... recomendado
- O... opcional
| Elementos | Tipo | Descripción | |
| tipo | M | Tipo de posiciones (DocumentPositionType) | |
| redondeo | O |
redondeo aplicado. Si la suma de las posiciones (valor bruto) no coincide con la suma del pago. Por ejemplo, un valor de 0,01 permitiría diferencias de redondeo de ±0,01. Nota: utilícelo con precaución. Los valores elevados desactivarán la validación del importe del pago y del valor bruto del documento |
|
| BaseValue | M* | Importe base de la partida antes de aplicar los descuentos (solo si se aplican descuentos) | |
| valor | M | El valor de la posición, incluidos los descuentos. | |
| descuentos | Detalles de los descuentos, reducciones de precio, etc. | ||
| DiscountValue | M |
Importe del descuento / cuantía de la rebaja
Importante:
si DiscountType [1] = descuento, el importe del descuento debe introducirse con 4 decimales.
|
|
| caption | O | Denominación del descuento | |
| DiscountOrder | M* |
Indica el orden en el que se calcula el descuento. El primer descuento que se tiene en cuenta tiene un valor de 0. Debe especificarse cuando se aplican múltiples descuentos a un artículo. |
|
| tipo | M |
Tipo de descuento Enum:
|
|
| TypeValue | M |
Valor del descuento (suma de la reducción) en el caso de [0] = Descuento: el DiscountValue si [1] = Descuento: el porcentaje (p. ej., 10 % de descuento) |
|
| PromotionKeys | O | PromotionKeys: si se emplean (p. ej., código de cupón) | |
| identificador | O | Identificador adicional para el descuento (puede utilizarse, por ejemplo, para agrupar descuentos en tipos de descuento). | |
| legenda | O | La designación de la posición | |
| PositionNumber | M | Número de posición, con índice base 0 | |
| positionReference | O | Especificación de un número de posición al que se debe hacer referencia | |
| cancellationPosition | O | «true» si esta posición anula una posición de otro documento; en caso contrario, «falso». | |
| DeletedPosition | O | «true» si esta posición se ha eliminado; en caso contrario, «false». | |
| CreateDate | O | Hora de registro de la posición | |
Este artículo ha sido traducido automáticamente.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.