| Home | Escopo | Processo | Design/Mockups | Gerência | Estudos | Arquitetura | Contratos | BD | Qualidade | Configuração | Instalação | Instruções | Utilização | Analytics | Infraestrutura | Dicas | 
|---|
Stock - estoque de lotes
fields:
export class Stock {
  id: number;
  document_number: string;
  document_date: Date;
  stock_moviment: Stock_Moviment;
  stock_items: StockItem[];
}
export class StockItem {
  id: number;
  stock_id: number;
  sequence: number;
  product_id: number;
  quantity: number;
  unit_price: number;
  total_price: number;
  lote: string;
  expiration: Date;
  persons: number;
  costumers: number;
  stock_location_id: number;
  observation: string;
}
endpoints:
FindAll
GET http://localhost:3000/stock/
response:
[
  {
    "id": 1,
    "document_number": "NFE123",
    "document_date": "2024-09-01T09:00:00.000Z",
    "stock_moviment": "INPUT",
    "is_balance": false,
    "document_type": "nota entrada",
    "created_at": "18/10/2024",
    "updated_at": "18/10/2024",
    "created_by": null,
    "updated_by": null,
    "stock_items": [
      {
        "id": 1,
        "product_id": 1,
        "lote": "LoteA123",
        "quantity": 100,
        "stock_id": 1,
        "sequence": 1,
        "created_at": "2024-10-18T03:09:25.922Z",
        "updated_at": "2024-10-18T03:09:25.922Z"
      },
      {
        "id": 7,
        "product_id": 7,
        "lote": "LoteA123",
        "quantity": 100,
        "stock_id": 1,
        "sequence": 1,
        "created_at": "2024-10-18T03:09:25.922Z",
        "updated_at": "2024-10-18T03:09:25.922Z"
      }
    ]
  },
  {
    "id": 2,
    "document_number": "OP124",
    "document_date": "2024-09-02T10:00:00.000Z",
    "stock_moviment": "INPUT",
    "is_balance": false,
    "document_type": "ordem de produção",
    "created_at": "18/10/2024",
    "updated_at": "18/10/2024",
    "created_by": null,
    "updated_by": null,
    "stock_items": [
      {
        "id": 17,
        "product_id": 9,
        "lote": "LoteKK123",
        "quantity": 100,
        "stock_id": 2,
        "sequence": 1,
        "created_at": "2024-10-18T03:09:25.922Z",
        "updated_at": "2024-10-18T03:09:25.922Z"
      }
    ]
  },
  {
    "id": 3,
    "document_number": "DOC123",
    "document_date": "2024-09-01T09:00:00.000Z",
    "stock_moviment": "OUTPUT",
    "is_balance": false,
    "document_type": "documento entrada",
    "created_at": "18/10/2024",
    "updated_at": "18/10/2024",
    "created_by": null,
    "updated_by": null,
    "stock_items": [
      {
        "id": 9,
        "product_id": 1,
        "lote": "LoteA123",
        "quantity": 20,
        "stock_id": 3,
        "sequence": 1,
        "created_at": "2024-10-18T03:09:25.922Z",
        "updated_at": "2024-10-18T03:09:25.922Z"
      }
      {
        "id": 10,
        "product_id": 2,
        "lote": "LoteC123",
        "quantity": 20,
        "stock_id": 3,
        "sequence": 2,
        "created_at": "2024-10-18T03:09:25.922Z",
        "updated_at": "2024-10-18T03:09:25.922Z"
      }
    ]
  }
]
FindById
GET http://localhost:3000/stock/1
response:
{
  "id": 1,
  "document_number": "NFE123",
  "document_date": "2024-09-01T09:00:00.000Z",
  "stock_moviment": "INPUT",
  "is_balance": false,
  "document_type": "nota entrada",
  "created_at": "18/10/2024",
  "updated_at": "18/10/2024",
  "created_by": null,
  "updated_by": null,
  "stock_items": [
    {
      "id": 1,
      "sequence": 1,
      "products": {
        "id": 1,
        "description": "batata branca",
        "code": "CODE001",
        "sku": "SKU001"
      },
      "lote": "LoteA123",
      "expiration": "2024-12-31T23:59:59.000Z",
      "quantity": 100,
      "unit_price": 10,
      "total_price": 1000,
      "image_link": null,
      "suppliers": null,
      "stock_location": {
        "id": 1,
        "description": "Câmara Fria A"
      },
      "created_at": "2024-10-18T03:09:25.922Z",
      "updated_at": "2024-10-18T03:09:25.922Z"
    },
    {
      "id": 7,
      "sequence": 1,
      "products": {
        "id": 7,
        "description": "uva",
        "code": "CODE007",
        "sku": "SKU006"
      },
      "lote": "LoteA123",
      "expiration": "2024-12-31T23:59:59.000Z",
      "quantity": 100,
      "unit_price": 10,
      "total_price": 1000,
      "image_link": null,
      "suppliers": null,
      "stock_location": {
        "id": 1,
        "description": "Câmara Fria A"
      },
      "created_at": "2024-10-18T03:09:25.922Z",
      "updated_at": "2024-10-18T03:09:25.922Z"
    },
    {
      "id": 8,
      "sequence": 2,
      "products": {
        "id": 8,
        "description": "Batata cubinhos",
        "code": "CODE016",
        "sku": "SKU007"
      },
      "lote": "LoteC123",
      "expiration": "2024-12-31T23:59:59.000Z",
      "quantity": 100,
      "unit_price": 10,
      "total_price": 1000,
      "image_link": null,
      "suppliers": null,
      "stock_location": {
        "id": 1,
        "description": "Câmara Fria A"
      },
      "created_at": "2024-10-18T03:09:25.922Z",
      "updated_at": "2024-10-18T03:09:25.922Z"
    },
    {
      "id": 2,
      "sequence": 2,
      "products": {
        "id": 2,
        "description": "mix de folhas verdes",
        "code": "CODE002",
        "sku": "SKU015"
      },
      "lote": "LoteC123",
      "expiration": "2024-12-31T23:59:59.000Z",
      "quantity": 100,
      "unit_price": 10,
      "total_price": 1000,
      "image_link": null,
      "suppliers": null,
      "stock_location": {
        "id": 1,
        "description": "Câmara Fria A"
      },
      "created_at": "2024-10-18T03:09:25.922Z",
      "updated_at": "2024-10-18T03:09:25.922Z"
    },
    {
      "id": 3,
      "sequence": 3,
      "products": {
        "id": 3,
        "description": "aipim",
        "code": "CODE003",
        "sku": "SKU002"
      },
      "lote": "LoteD456",
      "expiration": "2024-12-15T23:59:59.000Z",
      "quantity": 200,
      "unit_price": 20,
      "total_price": 4000,
      "image_link": null,
      "suppliers": null,
      "stock_location": {
        "id": 3,
        "description": "Pátio"
      },
      "created_at": "2024-10-18T03:09:25.922Z",
      "updated_at": "2024-10-18T03:09:25.922Z"
    },
    {
      "id": 4,
      "sequence": 4,
      "products": {
        "id": 4,
        "description": "mirtilo",
        "code": "CODE004",
        "sku": "SKU003"
      },
      "lote": "LoteE123",
      "expiration": "2024-12-31T23:59:59.000Z",
      "quantity": 100,
      "unit_price": 10,
      "total_price": 1000,
      "image_link": null,
      "suppliers": null,
      "stock_location": {
        "id": 1,
        "description": "Câmara Fria A"
      },
      "created_at": "2024-10-18T03:09:25.922Z",
      "updated_at": "2024-10-18T03:09:25.922Z"
    },
    {
      "id": 5,
      "sequence": 5,
      "products": {
        "id": 5,
        "description": "laranja",
        "code": "CODE005",
        "sku": "SKU004"
      },
      "lote": "LoteF123",
      "expiration": "2024-12-31T23:59:59.000Z",
      "quantity": 100,
      "unit_price": 10,
      "total_price": 1000,
      "image_link": null,
      "suppliers": null,
      "stock_location": {
        "id": 1,
        "description": "Câmara Fria A"
      },
      "created_at": "2024-10-18T03:09:25.922Z",
      "updated_at": "2024-10-18T03:09:25.922Z"
    },
    {
      "id": 6,
      "sequence": 6,
      "products": {
        "id": 6,
        "description": "couve",
        "code": "CODE006",
        "sku": "SKU005"
      },
      "lote": "LoteG456",
      "expiration": "2024-12-15T23:59:59.000Z",
      "quantity": 200,
      "unit_price": 20,
      "total_price": 4000,
      "image_link": null,
      "suppliers": null,
      "stock_location": {
        "id": 3,
        "description": "Pátio"
      },
      "created_at": "2024-10-18T03:09:25.922Z",
      "updated_at": "2024-10-18T03:09:25.922Z"
    }
  ]
}
AllStockLotes
GET http://localhost:3000/stock/batchs
response:
[
  {
    "productId": 1,
    "description": "batata branca",
    "lots": [
      {
        "lote": "P100020",
        "totalQuantity": 200,
        "expiration": "2024-01-01T00:00:00.000Z"
      },
      {
        "lote": "P100019",
        "totalQuantity": 200,
        "expiration": "2024-01-01T00:00:00.000Z"
      },
      {
        "lote": "LoteA123",
        "totalQuantity": 80,
        "expiration": "2024-12-31T23:59:59.000Z"
      },
      {
        "lote": "PD100022",
        "totalQuantity": 0,
        "expiration": "2024-01-01T00:00:00.000Z"
      }
    ]
  },
  {
    "productId": 2,
    "description": "mix de folhas verdes",
    "lots": [
      {
        "lote": "LoteC123",
        "totalQuantity": 80,
        "expiration": "2024-12-31T23:59:59.000Z"
      },
      {
        "lote": "PD100023",
        "totalQuantity": 0,
        "expiration": "2024-01-01T00:00:00.000Z"
      },
      {
        "lote": "P100021",
        "totalQuantity": 200,
        "expiration": "2024-01-01T00:00:00.000Z"
      }
    ]
  },
  {
    "productId": 3,
    "description": "aipim",
    "lots": [
      {
        "lote": "LoteD456",
        "totalQuantity": 180,
        "expiration": "2024-12-15T23:59:59.000Z"
      }
    ]
  },
  {
    "productId": 4,
    "description": "mirtilo",
    "lots": [
      {
        "lote": "LoteE123",
        "totalQuantity": 90,
        "expiration": "2024-12-31T23:59:59.000Z"
      }
    ]
  },
  {
    "productId": 5,
    "description": "laranja",
    "lots": [
      {
        "lote": "LoteF123",
        "totalQuantity": 90,
        "expiration": "2024-12-31T23:59:59.000Z"
      }
    ]
  },
  {
    "productId": 6,
    "description": "couve",
    "lots": [
      {
        "lote": "LoteG456",
        "totalQuantity": 180,
        "expiration": "2024-12-15T23:59:59.000Z"
      }
    ]
  },
  {
    "productId": 7,
    "description": "uva",
    "lots": [
      {
        "lote": "P100013",
        "totalQuantity": 10,
        "expiration": "2024-01-01T00:00:00.000Z"
      },
      {
        "lote": "LoteA123",
        "totalQuantity": 90,
        "expiration": "2024-12-31T23:59:59.000Z"
      },
      {
        "lote": null,
        "totalQuantity": 0,
        "expiration": null
      },
      {
        "lote": "ABRACADABRA",
        "totalQuantity": 0,
        "expiration": "2024-09-01T09:00:00.000Z"
      },
      {
        "lote": "P10001",
        "totalQuantity": 20030,
        "expiration": null
      },
      {
        "lote": "P100011",
        "totalQuantity": 10,
        "expiration": "2024-01-01T00:00:00.000Z"
      },
      {
        "lote": "P100012",
        "totalQuantity": 10,
        "expiration": "2024-01-01T00:00:00.000Z"
      },
      {
        "lote": "PD100014",
        "totalQuantity": 0,
        "expiration": "2024-01-01T00:00:00.000Z"
      }
    ]
  },
  {
    "productId": 8,
    "description": "Batata cubinhos",
    "lots": [
      {
        "lote": "LoteC123",
        "totalQuantity": 90,
        "expiration": "2024-12-31T23:59:59.000Z"
      }
    ]
  },
  {
    "productId": 9,
    "description": "cenoura cubinhos",
    "lots": [
      {
        "lote": "LoteKK123",
        "totalQuantity": 90,
        "expiration": "2024-12-31T23:59:59.000Z"
      }
    ]
  },
  {
    "productId": 10,
    "description": "Mandioca descascada",
    "lots": [
      {
        "lote": "LoteTY123",
        "totalQuantity": 90,
        "expiration": "2024-12-31T23:59:59.000Z"
      }
    ]
  },
  {
    "productId": 11,
    "description": "mirtilos selecionados",
    "lots": [
      {
        "lote": "LoteER56",
        "totalQuantity": 180,
        "expiration": "2024-12-15T23:59:59.000Z"
      }
    ]
  },
  {
    "productId": 12,
    "description": "laranja descascada",
    "lots": [
      {
        "lote": "LoteOI123",
        "totalQuantity": 90,
        "expiration": "2024-12-31T23:59:59.000Z"
      }
    ]
  },
  {
    "productId": 13,
    "description": "mix de verduras",
    "lots": [
      {
        "lote": "LoteABC123",
        "totalQuantity": 90,
        "expiration": "2024-12-31T23:59:59.000Z"
      },
      {
        "lote": "LOTE-TESTE",
        "totalQuantity": 0,
        "expiration": "2024-12-31T23:59:59.000Z"
      }
    ]
  },
  {
    "productId": 14,
    "description": "suco natural de uva",
    "lots": [
      {
        "lote": "LoteWW456",
        "totalQuantity": 180,
        "expiration": "2024-12-15T23:59:59.000Z"
      },
      {
        "lote": "LOTE-TESTE",
        "totalQuantity": 0,
        "expiration": "2024-12-15T23:59:59.000Z"
      }
    ]
  }
]
Create
POST http://localhost:3000/stock/
request:
{
  "document_number": "5001",
  "document_date": "2024-09-15T10:30:00.000Z",
  "stock_moviment": "INPUT",
  "stock_items": [
    {
      "product_id": 1,
      "quantity": 200,
      "unit_price": 10.5
    },
    {
      "product_id": 2,
      "quantity": 200,
      "unit_price": 10.5
    }
  ]
}
response:
{
  "stockDocument": {
    "id": 43,
    "document_number": "5001",
    "document_date": "2024-09-15T10:30:00.000Z",
    "stock_moviment": "INPUT",
    "created_at": "2024-10-19T06:31:44.819Z",
    "updated_at": "2024-10-19T06:31:44.819Z",
    "items": [
      {
        "id": 51,
        "stock_id": 43,
        "sequence": 1,
        "product_id": 1,
        "quantity": 200,
        "unit_price": 10.5,
        "total_price": 2100,
        "lote": "P100024",
        "expiration": "2024-01-01T00:00:00.000Z",
        "image_link": null,
        "photo": [],
        "supplier": null,
        "costumer": null,
        "stock_location_id": 1,
        "observation": null,
        "created_at": "2024-10-19T06:31:45.079Z",
        "updated_at": "2024-10-19T06:31:45.079Z",
        "created_by": null,
        "updated_by": null
      },
      {
        "id": 52,
        "stock_id": 43,
        "sequence": 2,
        "product_id": 2,
        "quantity": 200,
        "unit_price": 10.5,
        "total_price": 2100,
        "lote": "P100025",
        "expiration": "2024-01-01T00:00:00.000Z",
        "image_link": null,
        "photo": [],
        "supplier": null,
        "costumer": null,
        "stock_location_id": 1,
        "observation": null,
        "created_at": "2024-10-19T06:31:45.192Z",
        "updated_at": "2024-10-19T06:31:45.192Z",
        "created_by": null,
        "updated_by": null
      }
    ]
  }
}
Update
PATCH http://localhost:3000/stock/33
request:
response:
Delete (remoção física)
DELETE http://localhost:3000/stock/3
response:
{
  "message": "Stock ID 3 permanently removed successfully"
}