Hola,
Si tu intención es llevar el stock por almacén y la nota de ventas te permite indicar uno solo, estás en un problema.
Por lo general el almacén o depósito de donde se saca la mercadería se indica en la línea detalle de la venta y no en la cabecera, de tal manera que se pueda manejar multi-depósito.
A su vez el que esté en consignación puede ser una propiedad del artículo, similar a como se manejan Lotes o Partidas de productos y que esto sea independiente del depósito físico, o sea, una cosa es donde almacenas la mercadería y otra en que condición la vendes.
CREATE TABLE NOTAVENTAS_CAB(;
NV_ID INTEGER NOT NULL PRIMARY KEY,;
NV_SERICE CHAR(20),;
NV_FECHA DATE,;
CLI_ID INTEGER)
CREATE TABLE NOTAVENTAS_DET(;
NVD_ID INTEGER NOT NULL PRIMARY KEY,;
NV_ID INTEGER,;
ART_ID INTEGER,;
DEP_ID CHAR(10),; && Indico el deposito a nivel linea detalle
LOTE_ID CHAR(10),; && Indico el lote
NVD_CANTIDAD NUMERIC(15,2),;
NVD_PRECIO NUMERIC(15,2))