Defaults de Impresion por Empresa
Los defaults de impresion son la configuracion predeterminada de impresion que se aplica automaticamente a las nuevas terminales POS de la empresa. Permiten estandarizar el comportamiento sin obligar al administrador a llenar los campos de impresion en cada caja nueva.
Endpoint API: GET/PUT /api/companyprintingdefaults
Cuando se aplican
Los defaults se aplican al crear una nueva terminal (POSTerminal). Solo se rellenan los campos que el administrador no especifico explicitamente.
Crear terminal "Caja 4"
↓
PrinterType vacio? → heredar DefaultPrinterType de la empresa
PaperWidth vacio? → heredar DefaultPaperWidth
Copies = 0? → heredar DefaultCopies
Encoding vacio? → heredar DefaultEncoding
FooterText vacio? → heredar DefaultFooterText
... etc.
Una vez creada la terminal, los cambios posteriores en los defaults no afectan a las terminales existentes — solo a las nuevas.
Campos disponibles
| Campo | Tipo | Predeterminado del sistema |
|---|---|---|
| DefaultPrinterType | Enum (PrinterType) | None |
| DefaultPaperWidth | string ("58mm" / "80mm" / "Letter") | 80mm |
| DefaultCopies | int (1-5) | 1 |
| DefaultEncoding | string (CP437/CP850/CP858/CP1252) | CP850 |
| DefaultFooterText | string (max 500) | (vacio) |
| DefaultOpenCashDrawer | bool | false |
| DefaultSilentPrint | bool | true |
| DefaultPrintShowLogo | bool | true |
| DefaultPrintShowProductDescription | bool | true |
| DefaultPrintShowUnitPrice | bool | true |
| DefaultPrintShowUnitOfMeasure | bool | false |
| DefaultPrintShowBarcode | bool | false |
| DefaultPrintShowTaxBreakdown | bool | true |
| AllowedPrinterTypes | string CSV (ids enum) | null (todas permitidas) |
| RequireSilentPrint | bool | false |
Restricciones por empresa
AllowedPrinterTypes
Lista CSV de los enteros del enum PrinterType que el operador puede elegir. Util cuando una empresa quiere limitar el catalogo a estrategias soportadas oficialmente.
Ejemplos:
| Valor | Significado |
|---|---|
null o vacio | Todas las estrategias permitidas |
"3,4" | Solo Red TCP (3) y Bluetooth ESC/POS (4) |
"2,6,9,10" | QZ Tray, WindowsDriver, WebPRNT y Web Bluetooth |
Mapping numero → estrategia:
| ID | PrinterType |
|---|---|
| 0 | None |
| 1 | Browser |
| 2 | QZTray |
| 3 | NetworkEscPos |
| 4 | BluetoothEscPos |
| 5 | UsbEscPos |
| 6 | WindowsDriver |
| 7 | Sunmi |
| 8 | Imin |
| 9 | WebPrnt |
| 10 | WebBluetooth |
| 11 | AndroidIntent |
RequireSilentPrint
Cuando es true, el asistente filtra recomendaciones que requieran HTTPS sin satisfacerlo o que no sean silenciosas (ej. Browser). Util en operaciones de alto volumen donde no se tolera el dialogo del navegador.
API
GET /api/companyprintingdefaults/bycompany
Devuelve los defaults de la empresa autenticada (extraida del JWT). La primera vez que se llama, crea automaticamente una fila con valores del sistema.
Response 200:
{
"id": 1,
"companyId": 12,
"defaultPrinterType": 0,
"defaultPaperWidth": "80mm",
"defaultCopies": 1,
"defaultEncoding": "CP850",
"defaultFooterText": null,
"defaultOpenCashDrawer": false,
"defaultSilentPrint": true,
"defaultPrintShowLogo": true,
"defaultPrintShowProductDescription": true,
"defaultPrintShowUnitPrice": true,
"defaultPrintShowUnitOfMeasure": false,
"defaultPrintShowBarcode": false,
"defaultPrintShowTaxBreakdown": true,
"allowedPrinterTypes": null,
"requireSilentPrint": false,
"createdAt": "2026-04-26T16:48:00Z",
"updatedAt": null
}
PUT /api/companyprintingdefaults
Actualiza los defaults. El companyId del body se ignora — siempre se usa el del JWT (multi-tenant safe).
Request body: UpdateCompanyPrintingDefaultsDTO (mismos campos que el response).
Modelo de datos
Tabla CompanyPrintingDefaults:
| Indice | Columna | Notas |
|---|---|---|
IX_CompanyPrintingDefaults_CompanyId (UNIQUE) | CompanyId | Una fila por empresa |
FK Companies(Id) con ON DELETE CASCADE.
Buenas practicas
Para una empresa con varias sucursales
Configurar los defaults con la estrategia mas comun:
- Si la mayoria de terminales son Star WiFi →
DefaultPrinterType = 9 (WebPrnt). - Si la mayoria son PC + termica USB →
DefaultPrinterType = 2 (QZTray).
Asi, al crear una terminal en una nueva sucursal, casi todo viene heredado y solo hay que llenar el campo PrinterTarget (IP / nombre).
Para una empresa con politica de cumplimiento
RequireSilentPrint = trueevita que un operador deje terminales con dialogo del navegador.AllowedPrinterTypes = "3,9,10"restringe a las 3 estrategias aprobadas.
Para una empresa con marca personalizada
DefaultFooterText = "Gracias por su compra. Visite www.miempresa.com"aparece en todos los recibos nuevos.DefaultPrintShowLogo = trueasegura que el logo de la empresa siempre aparezca.