---
title: "Purchase"
description: "Proveedores y pedidos de compra. Cada aplicación es un módulo sobre un único modelo de datos."
canonical: "https://obop-platform.sliplane.app/es/apps/purchase/"
lang: "es"
---

# Purchase

## Para qué sirve

Keep vendors and the purchase orders you send them, with order lines and a draft to received flow. Totals are entered, not summed from the lines.

## Qué hace y qué no hace el paquete

Vendors, purchase orders and order lines with a draft, sent, confirmed, received and cancelled flow. Order totals are entered, not summed from the lines.

## Modelos

### `purchase_vendor`

Purchasing terms for a contact you buy from

Grupo de lectura: `purchase.user`. Grupo de escritura: `purchase.manager`.

| Campo | Tipo | Clase de datos | Datos personales | Grupo | Los agentes ven | Descripción |
|---|---|---|---|---|---|---|
| `party_id` | ref → party | `none` | no | `purchase.user` | en claro | The contact record of the vendor |
| `vendor_reference` | text | `none` | no | `purchase.user` | en claro | Your customer number at this vendor |
| `payment_terms_days` | number | `none` | no | `purchase.user` | en claro | Days allowed to pay an invoice |
| `lead_time_days` | number | `none` | no | `purchase.user` | en claro | Usual days between order and delivery |
| `iban` | text | `financial` | sí | `purchase.manager` | retenido | Bank account the vendor is paid into |
| `active` | bool | `none` | no | `purchase.user` | en claro | Whether you still buy from this vendor |

### `purchase_order`

A request to a vendor to supply goods or services

Grupo de lectura: `purchase.user`. Grupo de escritura: `purchase.user`.

| Campo | Tipo | Clase de datos | Datos personales | Grupo | Los agentes ven | Descripción |
|---|---|---|---|---|---|---|
| `reference` | text | `none` | no | `purchase.user` | en claro | Order number printed on the document |
| `vendor_id` | ref → purchase_vendor | `none` | no | `purchase.user` | en claro | The vendor ordered from |
| `ordered_on` | date | `none` | no | `purchase.user` | en claro | Date the order was placed (YYYY-MM-DD) |
| `expected_on` | date | `none` | no | `purchase.user` | en claro | Date the goods are expected (YYYY-MM-DD) |
| `currency` | text | `none` | no | `purchase.user` | en claro | ISO 4217 currency code, for example EUR |
| `total` | money | `none` | no | `purchase.user` | en claro | Order total as agreed with the vendor (minor currency units, e.g. cents) |
| `notes` | longtext | `none` | no | `purchase.user` | en claro | Delivery instructions and remarks for the vendor |
| `state` | select (draft, sent, confirmed, received, cancelled) | `none` | no | `purchase.user` | en claro | Order status: draft, sent, confirmed, received, cancelled |

### `purchase_order_line`

One product or service on a purchase order

Grupo de lectura: `purchase.user`. Grupo de escritura: `purchase.user`.

| Campo | Tipo | Clase de datos | Datos personales | Grupo | Los agentes ven | Descripción |
|---|---|---|---|---|---|---|
| `order_id` | ref → purchase_order | `none` | no | `purchase.user` | en claro | The order the line belongs to |
| `product_id` | ref → product | `none` | no | `purchase.user` | en claro | The product ordered |
| `description` | text | `none` | no | `purchase.user` | en claro | Wording for the vendor if different from the product name |
| `quantity` | number | `none` | no | `purchase.user` | en claro | Units ordered |
| `unit_price` | money | `none` | no | `purchase.user` | en claro | Agreed price per unit (minor currency units, e.g. cents) |
| `received_quantity` | number | `none` | no | `purchase.user` | en claro | Units received so far |

## Flujos de trabajo

### `purchase_order`

| Acción | Mueve | Quién puede ejecutarla | Aprobación |
|---|---|---|---|
| `purchase_order.send` | state: draft → sent | `purchase.user` | no |
| `purchase_order.confirm` | state: sent → confirmed | `purchase.manager` | sí |
| `purchase_order.receive` | state: confirmed → received | `purchase.user` | no |
| `purchase_order.cancel` | state: draft → cancelled | `purchase.user` | no |

## Grupos de permisos

Grupos que usa esta aplicación:

- `purchase.manager`
- `purchase.user`

## Pasos con aprobación

Pasos que un agente solo puede proponer:

- `purchase_order.confirm`

## Qué pueden y qué no pueden hacer los agentes

Un agente puede leer, buscar, crear y actualizar registros de esta aplicación, y ejecutar las acciones que no requieren aprobación, dentro de los grupos de permisos de su token.

Solo puede proponer estos pasos, y una persona debe aprobarlos: `purchase_order.confirm`, `purchase_vendor.delete`, `purchase_order.delete`, `purchase_order_line.delete`.

Estos campos se retienen por completo y los agentes no los ven: `purchase_vendor.iban`.

## Dependencias

- `base`
- `product`

## Instalación

Instálala desde la aplicación Customize (Marketplace) o desde la línea de comandos:

```bash
obop modules install-from purchase
```

Requiere una base de datos y derechos de administrador.

## Crea la tuya

[La guía de módulos explica cómo se escriben aplicaciones como esta](/es/docs/reference/module-manifest/)
