{"id":471,"date":"2025-09-25T08:49:18","date_gmt":"2025-09-25T08:49:18","guid":{"rendered":"https:\/\/sienna-manatee-218967.hostingersite.com\/blogs\/crear-un-dominio-dinamico-2\/"},"modified":"2026-05-01T18:54:31","modified_gmt":"2026-05-01T18:54:31","slug":"crear-un-dominio-dinamico","status":"publish","type":"post","link":"https:\/\/exdoo.mx\/blogs\/crear-un-dominio-dinamico\/","title":{"rendered":"Crear un dominio din\u00e1mico"},"content":{"rendered":"<div style=\"background:linear-gradient(135deg,#0A7099 0%,#0d8db8 100%);color:#fff;padding:28px 26px;border-radius:16px;margin:0 0 28px;box-shadow:0 4px 16px rgba(10,112,153,.2);\">\n<div style=\"display:inline-block;background:rgba(255,255,255,.18);padding:6px 14px;border-radius:20px;font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:12px;color:#fff;\">\ud83d\udcd8 ART\u00cdCULO T\u00c9CNICO<\/div>\n<p style=\"font-size:16px;line-height:1.6;margin:0;color:#fff;opacity:.95;\"><span>Nuestro ejemplo cubrir\u00e1 la siguiente necesidad.<\/span><\/p>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/banners-sitio-web_mesa-de-trabajo-1-03-AE07pRDRxRS2Epp1-2-scaled-1.jpg\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<h2 style=\"color:#0A7099;border-bottom:3px solid #F1B500;padding-bottom:8px;display:inline-block;margin-top:32px;\"><span>Los dominios din\u00e1micos permiten restringir las opciones disponibles en un campo relacional seg\u00fan criterios espec\u00edficos, lo que hace que la interfaz sea m\u00e1s intuitiva y evita selecciones incorrectas.<\/span><\/h2>\n<h2 style=\"color:#0A7099;border-bottom:3px solid #F1B500;padding-bottom:8px;display:inline-block;margin-top:32px;\"><span><strong>Problem\u00e1tica<\/strong><\/span><\/h2>\n<div style=\"background:linear-gradient(135deg,#0A7099 0%,#0d8db8 100%);color:#fff;padding:28px 26px;border-radius:16px;margin:0 0 28px;box-shadow:0 4px 16px rgba(10,112,153,.2);\">\n<div style=\"display:inline-block;background:rgba(255,255,255,.18);padding:6px 14px;border-radius:20px;font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:12px;color:#fff;\">\ud83d\udcd8 ART\u00cdCULO T\u00c9CNICO<\/div>\n<p style=\"font-size:16px;line-height:1.6;margin:0;color:#fff;opacity:.95;\">Odoo cuenta con un modelo llamado t\u00e9rminos de pago; se puede seleccionar un t\u00e9rmino de pago por defecto para cada cliente y, al crear la venta y seleccionarlo, el t\u00e9rmino de pago se selecciona autom\u00e1ticamente en la venta, estableciendo el que tiene el cliente seleccionado, pero es posible cambiar el t\u00e9rmino de pago a cualquier otro.<\/p>\n<\/div>\n<p class=\"body\" dir=\"auto\"><span>Lo que se realizar\u00e1 es poder agregar t\u00e9rminos de pago que ser\u00e1n permitidos seleccionar en la venta, estableci\u00e9ndolos dentro del cliente, y por cliente se podr\u00e1n definir diferentes t\u00e9rminos de pago para poder ser elegidos en la venta<\/span>.<\/p>\n<h3 style=\"color:#0A7099;margin-top:22px;font-size:16px;\">Implementaci\u00f3n del dominio din\u00e1mico<\/h3>\n<p dir=\"auto\" class=\"body\">Primero necesitamos definir un campo Many2many dentro de clientes con relaci\u00f3n al modelo de t\u00e9rminos de pago permitidos <em>(account.payment.term)<\/em><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-09-25-a-la-s-9.03.30a-a.m.-mp84nyaneEIvyJNK-2.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<h3 style=\"color:#0A7099;margin-top:24px;\"><span>Agregamos el campo en la vista formulario de clientes<em>(res.partner).<\/em><\/span><\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-09-25-a-la-s-9.07.53a-a.m.-dJoPJ9p09jIpK5BQ-2.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><br \/>\n<img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-09-25-a-la-s-9.10.26a-a.m.-mjE42nynvWuLB43L-2.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<p dir=\"auto\" class=\"body\">Agregaremos el dominio en el many2one de t\u00e9rmino de pago de la venta para que solo pueda seleccionar los t\u00e9rminos establecidos por cada cliente.<\/p>\n<p dir=\"auto\" class=\"body\">Para esto, primero crearemos un campo Many2many computado para obtener los valores de los t\u00e9rminos de pago permitidos para ese cliente. Este campo ser\u00e1 almacenado para que mantenga su valor al momento de seleccionar el cliente.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-09-25-a-la-s-9.14.32a-a.m.-m7VDpaVnMKTVk9Wa-2.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<p dir=\"auto\" class=\"body\">Tambi\u00e9n agregaremos el campo en la vista formulario de la venta para poder hacer referencia en el domain donde se necesita.<\/p>\n<div style=\"background:#EFF6FB;border-left:4px solid #0A7099;border-radius:8px;padding:14px 18px;margin:14px 0;color:#0A7099;\">\u26a1 <strong>Nota<\/strong>: Por el momento lo dejamos visible para asegurar su correcto funcionamiento.<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-09-25-a-la-s-9.19.09a-a.m.-Yle4MRzjX8CeaQzj-2.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<p dir=\"auto\" class=\"body\">A continuaci\u00f3n, debemos agregar el dominio al t\u00e9rmino de pago para que solo permita seleccionar los t\u00e9rminos de pago permitidos establecidos en el cliente. Cambiando \u00fanicamente el atributo de domain del campo <em>payment_term_id<\/em><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-09-25-a-la-s-9.22.08a-a.m.-AE07pJExMqU8EBkR-2.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<p dir=\"auto\" class=\"body\">Este ser\u00eda el resultado; solo podemos ver 3 t\u00e9rminos de pago que son los configurados en el cliente.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-09-25-a-la-s-9.25.21a-a.m.-YbN4aRn9WytVoR02-2.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<p class=\"body\" dir=\"auto\">Para finalizar, ocultamos el campo T\u00e9rmino de pagos permitidos en la venta.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-09-25-a-la-s-9.29.16a-a.m.-AE07pJpyJMikVGjx-2.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><br \/>\n<img decoding=\"async\" src=\"https:\/\/exdoo.mx\/blogs\/wp-content\/uploads\/2026\/05\/captura-de-pantalla-2025-09-25-a-la-s-9.30.54a-a.m.-YBgjpN48e4C07BXg-2.png\" alt=\"\"  style=\"max-width:100%;height:auto;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.12);display:block;margin:14px auto;\" \/><\/p>\n<p dir=\"auto\" class=\"body\">La implementaci\u00f3n de dominios din\u00e1micos en campos Many2one es una t\u00e9cnica poderosa en Odoo 18 que mejora significativamente la experiencia del usuario al filtrar opciones relevantes seg\u00fan el contexto. A trav\u00e9s de los m\u00e9todos demostrados\u2014uso de funciones <em>onchange<\/em>, par\u00e1metros din\u00e1micos en la definici\u00f3n del campo y expresiones en vistas XML\u2014los desarrolladores pueden crear interfaces m\u00e1s intuitivas y eficientes. <\/p>\n<p dir=\"auto\" class=\"body\">Es importante recordar que los dominios din\u00e1micos no solo mejoran la usabilidad, sino que tambi\u00e9n contribuyen a la integridad de los datos al evitar selecciones inconsistentes. Al dominar estas t\u00e9cnicas, los desarrolladores de Odoo pueden crear aplicaciones m\u00e1s robustas y adaptadas a las necesidades espec\u00edficas de cada negocio.<\/p>\n<h3 style=\"color:#0A7099;margin-top:24px;\"><span>Si tiene dudas, no dude en ponerse en contacto con nosotros a trav\u00e9s del correo: <a href=\"mailto:info@exdoo.mx\" class=\"qbe-widget\" rel=\"noopener noreferrer\" target=\"_blank\">info@exdoo.mx<\/a><\/span><\/h3>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcd8 ART\u00cdCULO T\u00c9CNICO Nuestro ejemplo cubrir\u00e1 la siguiente necesidad. Los dominios din\u00e1micos permiten restringir las opciones disponibles en un campo relacional seg\u00fan criterios espec\u00edficos, lo que hace que\u2026<\/p>\n","protected":false},"author":1,"featured_media":460,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-471","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/posts\/471","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/comments?post=471"}],"version-history":[{"count":3,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/posts\/471\/revisions"}],"predecessor-version":[{"id":1960,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/posts\/471\/revisions\/1960"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/media\/460"}],"wp:attachment":[{"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/media?parent=471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/categories?post=471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exdoo.mx\/blogs\/wp-json\/wp\/v2\/tags?post=471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}