Tarea3448 - #1983
Open
abdedarghal111 wants to merge 2 commits into
Open
Conversation
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.
Añadir selección de fecha al transformar documentos (albarán → factura)
¿Qué se ha implementado?
Cuando se cambia el estado de un documento (albarán, pedido, presupuesto) a uno que genera un nuevo documento (por ejemplo, facturar un albarán), ahora se muestra un modal previo donde el usuario puede elegir la fecha del nuevo documento antes de confirmar la transformación.
Anteriormente la transformación se ejecutaba directamente al pulsar el estado en el desplegable, usando siempre la fecha del día. Con este cambio, el usuario tiene control sobre la fecha del documento generado.
Cambios realizados
Core/Lib/AjaxForms/CommonSalesPurchases.phpgeneradocya no ejecutan directamente la acción, sino que abren un modal.modalNewDocDate()que genera el HTML del modal con un campo de fecha (por defecto la fecha actual) y los botones Cerrar / Aceptar.salesFormSave/purchasesFormSave) con elidestadocorrecto.Core/Lib/AjaxForms/SalesController.phpyPurchasesController.phpsaveStatusAction()lee el parámetronew-doc-datetanto del POST directo como del JSONdatadel formulario.BusinessDocumentGenerator::setNewDocDate()antes de guardar el modelo, y se limpia en caso de error.Core/Lib/BusinessDocumentGenerator.phpsetNewDocDate()y la propiedad$newDocDate.$newDoc->fechay se resetea para no afectar a generaciones posteriores.Tests Ejecutados
Se añade el archivo
Test/Core/Lib/BusinessDocumentGeneratorTest.phpcon cuatro tests unitarios:testSetNewDocDateAppliedOnPurchaseApproval: crea un albarán de proveedor con una línea, establece una fecha personalizada mediantesetNewDocDate(), lo transforma al estado que genera documento y verifica que el documento generado (factura de proveedor) tiene exactamente esa fecha.testSetNewDocDateAppliedOnSalesApproval: mismo flujo para albaranes de cliente, comprobando que la fecha personalizada se aplica correctamente al documento de venta generado.testNewDocDateResetAfterUse: verifica que la variable$newDocDatese resetea automáticamente tras la primera generación, de modo que una segunda transformación posterior (sin volver a llamar asetNewDocDate()) no hereda la fecha anterior.testWithoutNewDocDateUsesTodayDate: comprueba que, cuando no se establece ninguna fecha personalizada, el documento generado toma la fecha del día como comportamiento por defecto.¿Cómo has probado los cambios?
Toda modificación debe haber sido mínimamente probada. Marca o describe las pruebas que has realizado: