Saltar al contenido principal

Esquema de datos

Articulos

Objetos complejos, con arrays de variantes y etiquetas

export enum TipoTalleColor {
NINGUNO = 0,
TALLES = 1,
COLORES = 2,
TALLES_COLORES = 3,
}

export interface Articulo {
articuloId: number;
codigo: string;
descripcion: string;
descripcionWeb: string;
nombre: string; // se genera automatico segun codigo y descripcion
talleColor: TipoTalleColor;

precio1: number;
precio2: number;
precio3: number;
precio4: number;
precio5: number;

stockTotal: number;

curva: ArticuloCurva[];
tags: ArticuloTag[];
}

export interface ArticuloCurva {
articuloId: number;
colorId?: number;
talleId?: number;
colorNombre: string;
colorCodigo: string;
talleNombre: string;
talleCodigo: string;
unidades: number;
}

Con curva incluida

Objeto plano, con variantes en raiz

export interface ArticuloConCurva {
articuloId: number;
version: number;
codigo: string;
descripcion: string;
descripcionWeb: string;
nombre: string; // se genera automatico segun codigo y descripcion
talleColor: TipoTalleColor;

precio1: number;
precio2: number;
precio3: number;
precio4: number;
precio5: number;

colorId?: number;
talleId?: number;
colorNombre: string;
colorCodigo: string;
talleNombre: string;
talleCodigo: string;

unidades: number;
}

Tags

En ninox las Tags son las Etiquetas y/o Categorias

export enum TipoTag {
TODAS = -1,
TAG = 0,
CATEGORIA,
MARCA,
TEMPORADA,
}

export interface ArticuloTag {
articuloId: number;
articuloTagId: number;
tipo: TipoTag;
tagId: number;
tagNombre: string;
padreId?: number;
destacada: boolean;
}

Pedido

Un pedido de tercero al enviarse a Ninox resultará en un Pedido de venta o una Preventa que reserva stock, esto dependerá de la configuración de la integración

enum CondicionIva {
SIN_CATEGORIA = 0,
CONSUMIDOR_FINAL = 1,
RESPONSABLE_INSCRIPTO = 2,
MONOTRIBUTO = 3,
EXENTO = 4,
RESPONSABLE_NO_INSCRIPTO = 5,
}

export interface PedidoTerceros {
ordenId: number;
numero: number;
detalle: string;
direccionEnvio: DireccionTerceros;
direccionFacturacion: DireccionTerceros;
productos: ArticuloTerceros[];
usuario: UsuarioTerceros;
subtotal: number;
descuento: number;
envio: number;
recargo: number;
total: number;
}

export interface DireccionTerceros {
provincia: string;
localidad: string;
direccion: string;
codigoPostal: string;
}

export interface UsuarioTerceros {
nombre: string;
email: string;
dni: string;
cuit: string;
telefono: string;
condicion: CondicionIva;
}

export interface ArticuloTerceros {
articuloId: number;
precio: number;
talleId?: number;
colorId?: number;
cantidad: number;
}

Pedido resultado

export interface PedidoResultado {
facturaId: number; // si llega en 0, no se realizó el pedido
numero: number;
pVNumero: number;
sref: string;
estado: number;
datos: { [key: string]: string };
electronica: boolean;
cae: string;
caevencimiento: string;
resultado: string;
observaciones: string;
errorFE: string;
saldo?: number;
errores: boolean;
}

Entidad

export interface Entidad {
entidadId: number;
version: number;
nombre: string;
razonSocial: string;
contacto: string;
provinciaId?: number;
localidadId?: number;
cuit: string;
dni: string;
telefono: string;
direccion: string;
codigoPostal: string;
email: string;
}

Comprobantes

export interface Factura {
facturaId: number;
comprobanteTipo: number;

numero: number;
numeroFull: string;
detalle: string;

sucursalId?: number;
sucursalNombre: string;
puntoVentaId?: number;

depositoId: number;
depositoNombre: string;

entidadId: number;
entidadNombre: string;
entidadRazonSocial: string;
entidadContacto: string;
entidadDireccion: string;
entidadEmail: string;

subtotal: number;
descuento: number;
envio: number;
recargo: number;
iva: number;
subTotal2: number;
total: number;

items: FacturaItem[];
}

export interface FacturaItem {
facturaItemid: number;
facturaId: number;

articuloId: number;
talleId?: number;
colorId?: number;

cantidad: number;
precio: number;
subTotal: number;
descuento: number;
total: number;
}