---
title: "Sales"
description: "Presupuestos y pedidos. Cada aplicación es un módulo sobre un único modelo de datos."
canonical: "https://obop.dev/es/apps/sales/"
lang: "es"
---

# Sales

## Para qué sirve

Write quotations for customers and turn them into confirmed orders. Orders point at a contact, carry a total and a currency, and confirmed orders are what Invoicing bills.

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

Quotations and confirmed orders for customers.

## Detalles del módulo

- **Versión:** `0.2.0`, se versiona con el núcleo
- **Autor:** SpaceCorps
- **Licencia:** [AGPL-3.0-or-later](https://spdx.org/licenses/AGPL-3.0-or-later.html)
- **Requiere núcleo:** `^0.2` (el núcleo actual es 0.2.0)
- **Madurez:** Estable
- **Categorías:** Ventas

## Modelos

### `sale_order`

A quotation or confirmed order for a customer

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

| Campo | Tipo | Clase de datos | Datos personales | Grupo | Los agentes ven | Descripción |
|---|---|---|---|---|---|---|
| `party_id` | ref → party | `none` | no | `sales.user` | en claro | Customer party id |
| `state` | select (draft, confirmed, cancelled) | `none` | no | `sales.user` | en claro | Lifecycle: draft, confirmed or cancelled |
| `total_minor` | money | `none` | no | `sales.user` | en claro | Order total in minor units |
| `currency` | text | `none` | no | `sales.user` | en claro | ISO 4217 currency code |

## Flujos de trabajo

### `sale_order`

| Acción | Mueve | Quién puede ejecutarla | Aprobación |
|---|---|---|---|
| `sale_order.confirm` | state: draft → confirmed | `sales.user` | no |
| `sale_order.cancel` | state: * → cancelled | `sales.user` | no |
| `sale_order.reset_to_draft` | state: cancelled → draft | `sales.user` | no |

## Grupos de permisos

Grupos que usa esta aplicación:

- `sales.user`

## Pasos con aprobación

Ningún paso de esta aplicación requiere aprobación, salvo eliminar registros.

## 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: `sale_order.delete`.

## Dependencias

Cada dependencia indica las versiones que acepta. Las aplicaciones integradas se versionan con el núcleo, así que un requisito sobre ellas se comprueba con la versión del núcleo.

- [Contacts](/es/apps/contacts/): `*` (integrada)
- [Products](/es/apps/products/): `*` (integrada)

## Instalación

Incluida. Está disponible en todas las instancias y no se puede quitar.

## Crea la tuya

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