[FIX] sale_ux: default pricelist#1465
Conversation
95ed9c7 to
915985a
Compare
There was a problem hiding this comment.
Pull Request Overview
Este PR corrige el comportamiento de asignación de listas de precios predeterminadas al crear partners, evitando que se asigne una lista de precios específica cuando la primera lista de precios en secuencia requiere un país y el partner no tiene país configurado.
- Agrega lógica condicional (
skip_specific) para evitar asignarspecific_property_product_pricelistcuando hay incompatibilidad de requisitos de país - Incluye archivo de configuración de IDE (
.vscode/settings.json) que no debería estar en el repositorio
Reviewed Changes
Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| sale_ux/models/res_partner.py | Implementa la lógica de skip_specific para evitar asignar listas de precios incompatibles basadas en requisitos de país |
| sale_ux/.vscode/settings.json | Agrega configuración de IDE que debería excluirse del repositorio mediante .gitignore |
| skip_specific = False | ||
| if pricelist.country_group_ids and not partner.country_id: | ||
| # La primera lista requiere país y el partner no tiene país | ||
| # → Si el default es distinto, NO asignamos specific | ||
| skip_specific = True | ||
|
|
||
| if default_pricelist_id: | ||
| if default_pricelist_id != pricelist.id: | ||
| partner.specific_property_product_pricelist = default_pricelist_id | ||
| if not skip_specific: | ||
| partner.specific_property_product_pricelist = default_pricelist_id | ||
| else: | ||
| partner.specific_property_product_pricelist = None | ||
| else: | ||
| partner.specific_property_product_pricelist = None |
There was a problem hiding this comment.
Se modificó la lógica del método create en models/res_partner.py pero no se incrementó la versión en __manifest__.py. Según las reglas del proyecto, cuando hay cambios en modelos se debe hacer un bump de versión (por ejemplo, de 18.0.1.12.0 a 18.0.1.13.0).
| if pricelist.country_group_ids and not partner.country_id: | ||
| # La primera lista requiere país y el partner no tiene país | ||
| # → Si el default es distinto, NO asignamos specific | ||
| skip_specific = True |
There was a problem hiding this comment.
La condición en la línea 29 no verifica si pricelist está vacío. Si search([], limit=1, order="sequence") no encuentra ninguna lista de precios, pricelist será un recordset vacío y acceder a pricelist.country_group_ids podría resultar en un recordset vacío (que es falsy), evitando el error pero potencialmente ocultando un problema de configuración.
Considera agregar una validación explícita al inicio del bucle:
if not pricelist:
continue # o raise un error apropiado
No description provided.