fix(logistique) : PDF — numéro dans le titre + bouton Imprimer réservé aux tickets terminés
- Titre du bon de pesée : « Ticket de pesée 86-TP-0001 » (numéro accolé, absent en brouillon). - Bouton « Imprimer » (edit) : v-if isValidated → masqué sur un ticket en attente (DRAFT, sans numéro).
This commit is contained in:
@@ -123,6 +123,14 @@ describe('Écran Modification ticket de pesée (page /weighing-tickets/{id}/edit
|
|||||||
expect(wrapper.find('[data-label="logistique.weighingTickets.form.validate"]').exists()).toBe(false)
|
expect(wrapper.find('[data-label="logistique.weighingTickets.form.validate"]').exists()).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('ticket en attente (DRAFT) : PAS de bouton « Imprimer », action principale « Valider »', async () => {
|
||||||
|
// Un brouillon n'a pas de numéro : le bon de pesée ne doit pas être imprimable.
|
||||||
|
mockFetchTicket.mockReset().mockResolvedValue({ ...DETAIL, status: 'DRAFT', number: null })
|
||||||
|
const wrapper = await mountPage()
|
||||||
|
expect(wrapper.find('[data-label="logistique.weighingTickets.form.print"]').exists()).toBe(false)
|
||||||
|
expect(wrapper.find('[data-label="logistique.weighingTickets.form.validate"]').exists()).toBe(true)
|
||||||
|
})
|
||||||
|
|
||||||
it('« Imprimer » ouvre le bon de pesée PDF servi par le back (RG-5.08)', async () => {
|
it('« Imprimer » ouvre le bon de pesée PDF servi par le back (RG-5.08)', async () => {
|
||||||
const wrapper = await mountPage()
|
const wrapper = await mountPage()
|
||||||
await wrapper.find('[data-label="logistique.weighingTickets.form.print"]').trigger('click')
|
await wrapper.find('[data-label="logistique.weighingTickets.form.print"]').trigger('click')
|
||||||
|
|||||||
@@ -115,7 +115,10 @@
|
|||||||
<!-- Bas d'écran : « Imprimer » (ouvre le PDF back) + action principale
|
<!-- Bas d'écran : « Imprimer » (ouvre le PDF back) + action principale
|
||||||
(« Valider » si brouillon, « Enregistrer » si déjà validé). -->
|
(« Valider » si brouillon, « Enregistrer » si déjà validé). -->
|
||||||
<div class="mt-12 flex justify-center gap-6">
|
<div class="mt-12 flex justify-center gap-6">
|
||||||
|
<!-- « Imprimer » uniquement sur un ticket terminé (VALIDATED) : un
|
||||||
|
brouillon n'a pas de numéro et ne doit pas produire de bon. -->
|
||||||
<MalioButton
|
<MalioButton
|
||||||
|
v-if="isValidated"
|
||||||
variant="secondary"
|
variant="secondary"
|
||||||
icon-name="mdi:printer-outline"
|
icon-name="mdi:printer-outline"
|
||||||
icon-position="left"
|
icon-position="left"
|
||||||
|
|||||||
@@ -83,7 +83,8 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="title">Ticket de pesée</div>
|
{# Numéro accolé au titre (ex. « Ticket de pesée 86-TP-0001 ») ; absent en brouillon (numéro attribué à la validation). #}
|
||||||
|
<div class="title">Ticket de pesée{% if ticket.number %} {{ ticket.number }}{% endif %}</div>
|
||||||
|
|
||||||
{#
|
{#
|
||||||
DSD de la pesée : valeur du pont en AUTO, valeur saisie par l'opérateur en
|
DSD de la pesée : valeur du pont en AUTO, valeur saisie par l'opérateur en
|
||||||
|
|||||||
Reference in New Issue
Block a user