
«Canto temos aínda pendente con vostede?» Esta pregunta aparece con regularidade en toda carteira de clientes, case sempre preto do peche do trimestre, antes da auditoría das contas anuais ou cando a contabilidade do cliente prepara pagamentos. Quen non a responde por si mesmo recíbea por correo electrónico ou por teléfono, e alguén ten que exportar da contabilidade unha lista de partidas abertas (lista de OP) e enviala. Con Odoo 19 Community isto non funciona por si só: o portal de clientes mostra as facturas por separado, pero non unha lista das partidas abertas de toda a empresa, e moito menos a un día elixido libremente.
Para isto escribimos o módulo Partidas abertas no portal de clientes (portal_open_items) para Odoo 19. Os clientes con acceso habilitado ven no portal unha lista de todas as facturas abertas, notas de crédito e pagamentos aínda non asignados da súa empresa, poden elixir unha data de corte, descargar a lista como PDF e ven dunha ollada como está o seu comportamento de pagamento. O módulo é software libre baixo a licenza AGPL-3 e está en GitHub:
github.com/Alex0176/odoo-portal-open-items
Instalamos o módulo o 5 de novembro de 2026 no noso sistema produtivo. A opción está alí desactivada por defecto e só se marca tras acordalo con cada cliente. Polo tanto, a experiencia en funcionamento real aínda é curta; probámolo con trece probas automáticas e unha base de datos de proba con clientes de exemplo. Quen adopte o módulo debería ter en conta os apartados sobre o cálculo da data de corte, sobre o comportamento de pagamento e os límites .
Contido desta publicación
- O problema: a lista de OP baixo demanda
- A solución nunha ollada
- Habilitación por contacto: a opción
- A lista no portal de clientes
- Partidas abertas á data de corte
- Exportación a PDF
- Comportamento de pagamento: valoración dunha ollada
- Quen pode ver que? O modelo de acceso
- Implementación técnica
- Probas
- Instalación e configuración
- Límites e observacións
- Preguntas frecuentes
- Apoio de Biricon IT Services
O problema: a lista de OP baixo demanda
Unha lista de partidas abertas amosa que facturas dun cliente aínda non están pagadas, cales delas están vencidas e a canto ascende o saldo. Para o provedor é un instrumento de planificación da liquidez e de xestión de reclamacións de cobro. Para o cliente é a base para planificar pagamentos, conciliar as facturas coa súa propia contabilidade e aclarar dúbidas sen abrir cada factura por separado. Ocasións típicas:
- Peche trimestral e anual: a contabilidade do cliente quere saber que débedas existían o 31.12. Trátase dunha data de corte no pasado.
- Conciliación: o cliente cre ter pagado unha factura e nós aínda a vemos aberta. Unha lista común con data, vencemento e importe aclara isto máis rápido ca unha cadea de correos.
- Remesas de pagamento: quen prepara pagamentos cada semana ou cada mes necesita todas as facturas abertas dun provedor dunha ollada, coas vencidas arriba.
- Varias persoas de contacto: nunha empresa, unha persoa fai os pedimentos e outra paga. As partidas abertas pertencen á empresa, non a unha persoa individual.
Ata agora extraiamos estas listas a man da contabilidade e enviabámolas por correo. Isto leva tempo e, ao final, é unha instantánea que ao día seguinte xa está desactualizada. É mellor unha lista que o cliente abre el mesmo no portal en calquera momento, sempre co estado actual.
A solución nunha ollada
O módulo amplía o portal de clientes de Odoo cunha páxina Partidas abertas e un mosaico en A miña conta. As funcións:
- Opción por contacto: «Mostrar a lista de partidas abertas no portal». Só se está marcada, o usuario do portal ve o mosaico e a páxina. Por defecto está desactivada.
- Toda a empresa: a lista contén as partidas abertas de todos os contactos da empresa, non só as do usuario que iniciou sesión.
- Data de corte: o cliente elixe unha data e ve o que estaba aberto ese día.
- Exportación a PDF: a lista como PDF co deseño da súa empresa, con cabeceira, saldo e suma das partidas vencidas.
- Comportamento de pagamento: proporción de facturas pagadas en prazo, con pouco atraso e con atraso, a factura aberta máis antiga e unha valoración boa ou mala, no portal e no PDF.
- As partidas vencidas aparecen marcadas en cor e indican os días transcorridos desde a data de vencemento.
- As notas de crédito e os saldos a favor figuran na lista cun importe negativo e reducen o saldo.
- Vinculación: cada factura da lista leva á vista da factura no portal.
- Multilingüe: a interface e o PDF seguen o idioma do usuario; inclúese o alemán como tradución.

O mosaico aparece na páxina de inicio A miña conta, xunto aos pedimentos e ás facturas. Quen non ten a opción, non o ve.
Habilitación por contacto: a opción
Unha lista de OP mostra datos comerciais de toda unha empresa. Por iso o módulo non a habilita para todos os usuarios do portal, senón só onde vostede o desexe expresamente. No contacto, no formulario, baixo Sitio web, atópase a caixa de verificación «Mostrar a lista de partidas abertas no portal». É visible para usuarios con dereitos de facturación (grupo account.group_account_invoice) e actúa para ese único contacto.

Isto encaixa coa práctica: nunha empresa, a dirección ou a contabilidade deben ver a lista, mais non un empregado que só consulta tickets. A opción aplícase ao contacto, pero as partidas amosadas pertencen a toda a empresa. Marque, pois, a opción na persoa que deba ter a visión de conxunto da empresa.
A lista no portal de clientes
Un clic no mosaico abre /my/open-items. A páxina mostra o nome da empresa, a selección da data de corte e a táboa coas partidas abertas:

| Columna | Contido |
|---|---|
| Documento | Número de documento da factura ou nota de crédito, con ligazón á vista da factura no portal; debaixo, a referencia, se existe |
| Data | Data da factura ou do asento, respectivamente |
| Vencemento | Data de vencemento; nas partidas vencidas, debaixo, «vencido hai n días» en vermello |
| Importe | Importe orixinal da partida |
| Pendente | Importe aínda pendente (despois de pagamentos parciais) |
Baixo a táboa figuran o saldo, é dicir, a suma de todos os importes pendentes, e a suma das partidas vencidas. As filas vencidas teñen fondo de cor para que se vexan de inmediato nunha ollada rápida. As notas de crédito e os pagamentos que aínda non están asignados a ningunha factura aparecen con signo negativo e reducen o saldo; unha nota baixo a táboa explícallo ao cliente. Se a súa empresa traballa en varias moedas, o saldo amósase por moeda.
Partidas abertas á data de corte
Sobre a data figura «Partidas abertas á data de corte», e ao lado un campo de data e o botón Mostrar. Cunha data de corte no pasado, a lista mostra o que aínda non estaba pagado ese día. Esta é exactamente a análise que se necesita para peches, auditorías e conciliacións: «Que débedas tiñamos o 31.12. con este provedor?»

Como se calcula a data de corte
Para cada partida vale: pendente á data de corte = importe da factura menos todos os pagamentos que estaban conciliados ata a data de corte, inclusive. Unha partida entra na lista se á data de corte xa estaba contabilizada e aínda tiña un resto. Unha factura do 7 de setembro de 1.250,50 €, pagada parcialmente o 20 de outubro con 500,00 € e liquidada co resto o 5 de novembro, figura, pois, con 750,50 € na lista cunha data de corte do 2 de novembro e xa non aparece cunha data de corte do 5 de novembro.

O vencemento tamén se valora á data de corte: unha partida está vencida se a súa data de vencemento é anterior á data de corte e o resto é positivo. Os días de atraso contan ata a data de corte, non ata hoxe. Unha data de corte no futuro trátase como hoxe, igual que unha data baleira ou non válida na liña de enderezo. A lista non pode, pois, simular unha previsión.
Que significa aquí «data do pagamento»
O que conta é a data na que a factura e o pagamento foron conciliados entre si en Odoo (a maior das dúas datas de asento), non a data da factura. Este é o caso habitual: o pagamento rexístrase o día do ingreso e asígnase á factura. Quen asigna os pagamentos só días despois verá a factura como aberta durante máis tempo. O apartado límites trata isto con máis detalle.
Exportación a PDF
Mediante Descargar PDF, o módulo xera a lista como ficheiro PDF para a data de corte elixida. O botón Imprimir abre a mesma lista no diálogo de impresión do navegador. O PDF usa o deseño de documento da súa empresa en Odoo (logotipo, enderezo, pé de páxina tomados da configuración) e o formato de papel europeo:

- Título coa data de corte: «Partidas abertas á data de corte 02.11.2026», mesmo se a data de corte é hoxe. Se non hai partidas abertas, aparece «Non hai partidas abertas.»
- Enderezo do cliente no campo de enderezo do deseño da empresa, para que a lista, tamén impresa, quede ben ligada ao asunto.
- Partidas vencidas en grosa, para que destaquen tamén na impresión en branco e negro.
- Saldo e suma das partidas vencidas ao final da táboa, por moeda se hai varias.
- Nome do ficheiro con empresa e data, por exemplo
Open_items_Muster_Handels_GmbH_2026-11-02.pdf.
Comportamento de pagamento: valoración dunha ollada
Desde a versión 19.0.1.1.0 hai enriba da táboa unha breve análise de que tan puntualmente paga a empresa as súas facturas. A mesma análise aparece no PDF. Así o cliente ve por si mesmo onde está e vostede xa non ten que explicarllo por separado.

- Verde: «O 47 % pagouse dentro do prazo de pagamento.» Refírese a facturas pagadas na data de vencemento ou antes.
- Laranxa: «O 29 % pagouse na semana posterior ao fin do prazo de pagamento.» Son pagamentos feitos entre un e sete días despois do vencemento.
- Vermello: «O 24 % pagouse máis tarde, de media aos 39 días (25 días despois do fin do prazo de pagamento).» O primeiro número conta desde a data da factura e o número entre parénteses desde o vencemento. A liña só aparece se hai facturas deste tipo.
- «As facturas están abertas ata 60 días.» É a antigüidade da factura máis antiga que segue aberta na data de corte, contada desde a data da factura.
Debaixo figura a valoración do comportamento de pagamento: boa ou mala e, ao final da páxina (no PDF, ao final da folla), a advertencia «Os clientes con mal comportamento de pagamento pasan a pagamento por adiantado.» O PDF mostra as mesmas liñas co deseño de cabeceira:

Que se conta
- Valóranse as facturas emitidas ao cliente que están contabilizadas. As notas de crédito e os borradores non contan. En caso de pagamento a prazos, cada prazo conta por separado.
- Período: as facturas dos últimos doce meses e todas as facturas que seguen abertas, aínda que sexan máis antigas.
- O día de pagamento é a data da última conciliación cun pagamento, igual que na data de corte.
- Facturas abertas: se unha factura está vencida na data de corte, conta como se se tivese pagado na data de corte, é dicir, laranxa ou vermella. Unha factura aberta que aínda non venceu non se valora.
- Cunha data de corte no pasado vale a situación dese día: os pagamentos posteriores á data de corte aínda non contan.
- Se non hai nada que valorar, aparece «Non hai facturas dos últimos 12 meses que valorar.» e non hai valoración.
Cando é «bo» o comportamento de pagamento?
A valoración é boa se polo menos o 70 % das facturas son verdes ou laranxas (puntuais ou cun atraso máximo dunha semana) e ningunha factura aberta leva máis de 30 días vencida. Se non, é mala. Os limiares (7 días, 70 %, 30 días, 12 meses) están como constantes ao comezo de models/res_partner.py e pódense axustar alí.
Importante: o módulo non pasa a ninguén a pagamento por adiantado. A advertencia do pé de páxina é un texto fixo que mostra aos clientes con mala valoración o que pode derivarse diso. Se decide algo así, e cando, é cousa súa. Se a frase non lle convén, cámbiea nos dous modelos (páxina do portal e informe) ou na tradución.
Quen pode ver que? O modelo de acceso
As partidas abertas son datos sensibles; por iso o acceso era para nós máis importante ca calquera función adicional. O modelo é deliberadamente sinxelo:

- Só coa opción marcada. Sen a marca no contacto non hai mosaico, e unha chamada a
/my/open-itemsredirixe a A miña conta. - Sempre a propia empresa. A empresa determínase a partir do usuario que iniciou sesión, non a partir dun parámetro no enderezo. Non hai maneira de solicitar unha empresa allea a través da liña de enderezo.
- A mesma comprobación no PDF. Odoo ofrece os informes PDF, en principio, tamén a través dun enderezo xeral. Por iso o módulo comproba de novo no propio informe: só os usuarios con dereito de contabilidade ou os usuarios do portal coa opción marcada para a súa propia empresa obteñen un PDF; todos os demais, un erro de acceso.
- Só partidas contabilizadas. Os borradores e os documentos anulados nunca aparecen.
- Só os propios ámbitos contables: só se consideran os asentos das empresas ás que o usuario ten acceso.
Implementación técnica
O módulo depende só de account e portal, é dicir, de compoñentes de Odoo Community. Engade un único campo ao contacto e, polo demais, consta de controlador, clase de informe e modelos.
| Compoñente | Función |
|---|---|
Campo portal_open_items en res.partner | Opción booleana «Mostrar a lista de partidas abertas no portal», non copiable, desactivada por defecto. |
_open_items_data() | Busca as liñas de crédito da empresa que están contabilizadas e aínda non conciliadas e calcula por liña o resto, o vencemento e os días. Devolve liñas, sumas por moeda e a data de corte. |
_payment_morale() | Valora as facturas dos últimos doce meses e todas as facturas abertas á data de corte: proporcións de pagadas en prazo, ata sete días tarde e máis tarde, duración media, a factura aberta máis antiga e a valoración boa ou mala. |
_open_items_residual() | Resto dunha liña á data de corte: importe menos todas as conciliacións parciais con data ata a data de corte, na moeda da factura. |
Controlador /my/open-items | Mostra a páxina, avalía a data de corte (baleira, non válida ou no futuro = hoxe) e, sen a opción, redirixe a A miña conta. |
Controlador /my/open-items/pdf | Xera o PDF coa mesma data de corte e entrégao co nome de ficheiro. |
Informe report_open_items | Modelo QWeb no deseño da empresa (web.external_layout) con comprobación propia da autorización. |
| Modelos do portal | Mosaico en A miña conta, ruta de navegación, páxina con formulario de data e táboa. |
| Formulario de contacto | Opción na área Sitio web, visible só para o grupo account.group_account_invoice. |
| Tradución | Inclúense o alemán (de.po) e o modelo (.pot). |
As partidas abertas léense dos apuntes contables, non das facturas. Isto é importante: só así aparecen tamén as notas de crédito e os pagamentos aínda sen asignar, e só así se pode reconstruír o estado dun día anterior a partir das conciliacións (account.partial.reconcile). A consulta execútase para toda a empresa (commercial_partner_id) con dereitos elevados; a comprobación de se o usuario pode vela ten lugar antes.
Probas
O módulo inclúe trece probas automáticas, que na nosa instalación se executan en verde:
- acceso só coa opción marcada, se non, redirección a A miña conta,
- a lista contén as partidas de toda a empresa, pero nunca as doutra,
- a opción vale por contacto, non para todos os usuarios da empresa,
- as notas de crédito figuran na lista con importe negativo e reducen o saldo,
- data de corte: unha factura pagada máis tarde figura na lista antes, e despois non,
- páxina cunha data futura e cunha data non válida,
- o enderezo do PDF devolve un ficheiro PDF,
- informe en HTML e comprobación de acceso no informe,
- importe aberto á data de corte despois de pagamentos parciais anteriores e posteriores á data de corte,
- comportamento de pagamento: clasificación en puntual, ata unha semana tarde e máis tarde, cos valores medios, tamén para unha data de corte no pasado,
- comportamento de pagamento con facturas abertas e a valoración boa ou mala,
- comportamento de pagamento sen facturas e nunca con datos doutra empresa,
- comportamento de pagamento na páxina do portal e no PDF.
Ademais, percorremos a páxina no navegador nunha base de datos de proba con clientes de exemplo; as ilustracións desta publicación proceden de alí. Todos os nomes, números de documento e importes que aparecen nelas son inventados.
Instalación e configuración
git clone https://github.com/Alex0176/odoo-portal-open-items.git
ln -s /pfad/odoo-portal-open-items/portal_open_items /pfad/addons/
odoo-bin -c odoo.conf -d <datenbank> -i portal_open_items --stop-after-init
As dependencias son account e portal. Despois da instalación hai que reiniciar o servizo de Odoo, porque o módulo contén código Python. Quen opere un sistema produtivo debe instalar o módulo primeiro nunha copia da base de datos. Despois:
- abrir o contacto que deba ver a lista (persoa con acceso ao portal),
- no formulario, marcar a caixa de verificación Mostrar a lista de partidas abertas no portal e gardar,
- iniciar sesión no portal como ese usuario ou comprobalo xunto co cliente: mosaico, lista, data de corte e PDF.
Antes da habilitación, revise a configuración de remitente e de deseño da súa empresa, pois o PDF toma do deseño de documento o logotipo, o enderezo e o pé de páxina. O módulo non envía por si mesmo ningún correo electrónico nin xera notificacións.
Límites e observacións
- Estado de hoxe para documentos contabilizados. A data de corte calcúlase a partir dos asentos tal como están agora no sistema. Se despois da data de corte unha factura foi anulada ou devolta a borrador, a lista non a mostra. Non é unha instantánea inalterable «tal como se imprimiu daquela».
- Os pagamentos contan desde o día da conciliación. Se un pagamento se asigna só días despois da chegada dunha factura, a factura figura na lista como aberta ata entón. Quen queira análises de data de corte limpas debería asignar os pagamentos con prontitude. Unha conciliación bancaria con facturas non está incluída en Odoo Community; para iso usamos o noso módulo Bank-Statement-Matcher.
- O comportamento de pagamento vale tanto como a súa conciliación. Contabilízase cando se asignou un pagamento a unha factura. Os pagamentos que levan moito tempo sen conciliar fan que un cliente pareza peor do que é. Revise a valoración dos seus clientes antes de sacar conclusións dela.
- A valoración é visible para o cliente. Quen ten a opción ve tamén o resultado e a advertencia sobre o pagamento por adiantado. O módulo non cambia nada nas condicións de pagamento.
- Só dereitos de cobro. O módulo mostra o que o cliente lle debe a vostede, non as súas débedas co cliente.
- Sen niveis de reclamación nin ligazón de pagamento na lista. O cliente pode abrir unha factura desde a lista e pagala alí, tal como o permita o seu portal noutros casos.
- PDF e funcionamento multiproceso. Para xerar informes PDF, Odoo chama internamente ao seu propio enderezo web. Se o seu sistema funciona cun único proceso de traballo, isto pode bloquearse. Isto vale para todos os informes PDF do portal, non só para este módulo. Probe o botón de PDF unha vez en condicións reais despois da instalación.
- Probado só en Odoo 19.0 Community. Non o comprobamos para outras versións.
- Non substitúe a xestión de reclamacións nin o extracto de conta. A lista non substitúe un extracto de conta contable nin os seus procesos de reclamación; só fai transparente o estado.
Preguntas frecuentes
Que é unha lista de partidas abertas (lista de OP)?
Unha relación de todas as facturas que aínda non están pagadas ou non o están completamente, con data da factura, vencemento e importe pendente. Tamén se chama «facturas abertas», «conta de cliente» ou «balance de sumas e saldos», aínda que un balance de sumas e saldos, en sentido estrito, se refire aos saldos de todas as contas.
Por que o portal de Odoo non mostra xa de serie unha lista de OP?
O portal mostra pedimentos, facturas e pagamentos por separado, con estado e filtros. Unha lista global da empresa con saldo e unha análise á data de corte non forman parte do alcance de Community, polo que puidemos ver. Para iso está pensado o módulo.
Ven todos os usuarios do portal dunha empresa a lista?
Non. Só os contactos coa opción marcada. A lista amosada abrangue, con todo, toda a empresa, non só as facturas dese único contacto.
Podo elixir unha data de corte do pasado, por exemplo o 31.12. do ano anterior?
Si, calquera data ata hoxe. A lista mostra entón as partidas que estaban contabilizadas e aínda sen pagar ese día. Teña en conta as indicacións sobre o cálculo: o que conta é o día da conciliación do pagamento.
Admítese unha data de corte no futuro?
Non. As datas futuras trátanse como hoxe, para que a lista non mostre un estado que aínda non existe.
Aparecen na lista as notas de crédito e os anticipos?
Si. As notas de crédito e os pagamentos que aínda non están asignados a ningunha factura figuran na lista con importe negativo e reducen o saldo. Unha nota baixo a táboa explícallo ao cliente.
Como se recoñecen as partidas vencidas?
Unha partida está vencida se a súa data de vencemento é anterior á data de corte e aínda ten pendente un resto positivo. Os días de atraso contan ata a data de corte.
Hai o PDF tamén noutros idiomas?
Si, a interface e o PDF seguen o idioma do usuario. Inclúese a tradución alemá; para outros idiomas abonda cun ficheiro .po ou coa tradución a través da interface de Odoo.
Pode un cliente ver a lista doutra empresa se cambia o enderezo?
Non. A empresa dedúcese sempre do usuario que iniciou sesión. O enderezo contén só a data de corte. Tamén o enderezo de informes PDF de Odoo se comproba de novo no propio informe.
Como se calcula o comportamento de pagamento?
A partir das facturas de cliente contabilizadas dos últimos doce meses e de todas as facturas abertas. Para cada factura conta cantos días despois do vencemento se pagou: como máximo na data de vencemento (verde), ata sete días despois (laranxa) ou máis tarde (vermello). A valoración é boa con polo menos un 70 % de facturas verdes ou laranxas e ningunha factura aberta que leve máis de 30 días vencida. Os detalles están no apartado comportamento de pagamento.
O módulo pasa a pagamento por adiantado os clientes con mal comportamento de pagamento?
Non. Só mostra a valoración e a advertencia. As condicións de pagamento, o pagamento por adiantado e os bloqueos seguen sendo decisión súa e proceso seu en Odoo.
Envía o módulo correos electrónicos ou reclamacións?
Non. Só ofrece a páxina e o PDF. Non xera mensaxes, notificacións nin actividades.
Funciona o módulo con Odoo Enterprise?
Depende só de account e portal, que existen nas dúas edicións. Probámolo só na edición Community de Odoo 19.
Baixo que licenza está o módulo?
Baixo a AGPL-3. Pode empregalo, modificalo e redistribuílo se cumpre as condicións da licenza. Os erros e as propostas de mellora, como issue no repositorio de GitHub agradécense.
Apoio de Biricon IT Services
Atendemos instalacións de Odoo para pequenas e medianas empresas: desde a implantación, pasando por adaptacións e migracións, ata a operación continua. Se quere ofrecer aos seus clientes no portal partidas abertas, facturas e tickets, ampliar a contabilidade en Odoo Community ou levar un módulo con seguridade á súa instancia produtiva, axudámoslle con gusto. Outros desenvolvementos propios: Arquivar unha empresa xunto cos usuarios do portal, Rexistro mercantil e verificación de enderezos para clientes austríacos, Números de documento a partir de prefixo, ano e contador e Conxuntos de produtos na cotización como sección.
Estado: 6 de novembro de 2026. Versión do módulo 19.0.1.1.1. Cambios desde a primeira versión do 5 de novembro: comportamento de pagamento (19.0.1.1.0) e corrección do importe aberto á data de corte despois de pagamentos parciais (19.0.1.1.1). Todos os nomes, números de documento e importes das ilustracións son inventados.