Conversation
- Add project.project.allow_stock_picking, picking_type_id and picking_stage_ids to enable and scope the feature per project - Add stock.picking.task_id (indexed, check_company) as the missing link; project_id already comes from the native project_stock module - Add project.task picking_ids, picking_count, display_create_picking_button and the actions action_create_stock_picking / action_view_stock_pickings, which re-validate the same conditions server side - Plain m2o instead of stored related/compute, per ADR 0003 on transactional models; project and partner propagate through onchange and action defaults - Inherit project.project, project.task and stock.picking forms; header button and stat button restricted to stock.group_stock_user - Add TransactionCase covering the count, the actions, the stage gating and the cross company constraint Change note: En los proyectos donde se active "Transfer Management" (pestaña Ajustes, grupo Inventario), cada tarea suma un botón "New Transfer" que abre una transferencia de inventario con el contacto, el proyecto, la compañía y el documento de origen ya cargados. El proyecto puede fijar un tipo de operación por defecto y limitar en qué etapas de la tarea se permite crear transferencias. La tarea muestra además un contador "Transfers" con los movimientos originados en ella, y una transferencia existente se puede enganchar a una tarea desde el campo "Task" de su formulario. Todo esto lo ven únicamente los usuarios con permisos de Inventario.
Contributor
Contributor
|
@roboadhoc r+ nobump |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Qué duele
Cuando una tarea de proyecto mueve material —entregar algo en obra, sacar repuestos del depósito, devolver lo que sobró— la transferencia se crea aparte, desde Inventario, y el vínculo con la tarea queda en la cabeza de quien la hizo.
project_stock(nativo,auto_installconproject+stock) ya relaciona la transferencia con el proyecto, pero no con la tarea: falta el último eslabón. Desde la tarea no se ve qué material se movió, y desde la transferencia no se sabe a qué trabajo respondía.Qué cambia
Módulo nuevo
project_stock_quick. Replica el patrón de las cotizaciones extra de Servicios de Campo (industry_fsm_sale: casilla en el proyecto → botón de alta en el encabezado de la tarea → botón estadístico con el contador), aplicado a transferencias.project.project.allow_stock_picking— casilla Transfer Management en Ajustes, grupo Inventario (visible para usuarios de Inventario).project.project.picking_type_idypicking_stage_ids— opcionales: tipo de operación por defecto y etapas de la tarea en las que se permite crear transferencias. Vacíos, no restringen nada. Un@api.constrainsimpide un tipo de operación de otra compañía.stock.picking.task_id— el vínculo que faltaba, al lado delproject_idque aportaproject_stock.project.task— botón New Transfer en el encabezado y botón estadístico Transfers, ambos limitados astock.group_stock_user.task_ides un Many2one plano, sinrelatednicomputealmacenados, para no disparar recálculos sobre un modelo transaccional de alto volumen: proyecto y contacto se propagan por los defaults de la acción y por unonchange. La visibilidad del botón la resuelvedisplay_create_picking_button, yaction_create_stock_pickingvuelve a validar lo mismo del lado del servidor — esconder un botón no alcanza como control.Cómo probarlo
Verificación
0 failed, 0 error(s) of 11 tests, sin WARNINGs propios.pre-commiten verde sobre los 13 archivos (ruff,ruff-format,pylint-odoo,oca-checks-odoo-module,check xml,rstcheck).Pendiente
icon.png(128×128) enstatic/description/.i18n/es.po): el código quedó en inglés, como el resto del repo.